MySQL 教程
快速掌握 MySQL 的基本知识,并轻松使用 MySQL 数据库
什么是数据库?
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。
每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。
也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。
所以,现在使用关系型数据库管理系统(RDBMS)来存储和管理大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
RDBMS 即关系数据库管理系统(Relational Database Management System)的特点:
1.数据以表格的形式出现
2.每行为各种记录名称
3.每列为记录名称所对应的数据域
4.许多的行和列组成一张表单
5.若干的表单组成database
RDBMS 术语
在开始学习MySQL 数据库前,让先了解下RDBMS的一些术语:
数据库: 数据库是一些关联表的集合。
数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
列: 一列(数据元素) 包含了相同类型的数据, 例如邮政编码的数据。
行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。
主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
外键:外键用于关联两个表。
复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。
MySQL 为关系型数据库(Relational Database Management System), 这种所谓的"关系型"可以理解为"表格"的概念, 一个关系型数据库由一个或数个表格组成:
表头(header): 每一列的名称;
列(col): 具有相同数据类型的数据的集合;
行(row): 每一行用来描述某条记录的具体信息;
值(value): 行的具体信息, 每个值必须与该列的数据类型相同;
键(key): 键的值在当前列中具有唯一性
MySQL数据库
MySQL 是关系型数据库管理系统,瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,就增加了速度提高了灵活性。
MySQL 开源,不需要支付额外的费用。
MySQL 支持大型的数据库。可处理有上千万条记录的大型数据库。
MySQL 使用标准的 SQL 数据语言形式。
MySQL 可运行于多个系统上,且支持多种语言。这些编程语言包括 C、C++、Python、Java、Perl、PHP、Eiffel、Ruby 和 Tcl 等。
MySQL 对PHP很好支持,PHP 是目前最流行的 Web 开发语言。
MySQL 支持大型数据库,支持 5000 万条记录的数据仓库,32 位系统表文件最大可支持 4GB,64 位系统支持最大的表文件为8TB。
MySQL 可定制,用 GPL 协议,修改源码来开发自己的 MySQL 系统。
在开始学习本文前你应该了解?
在开始学习本文前你应该了解 PHP 和 HTML 的基础知识,并能简单的应用。
本文的很多例子都跟 PHP 语言有关,实例基本上是采用 PHP 语言来演示。
如果你不了解 PHP,你可以通过本站的 PHP教程来了解该语言。
千年的回眸
create database bbsgo;
create user 'bbsgo'@'localhost' identified by '^bbsGo2022$';
grant ALL PRIVILEGES on bbsgo.* to 'bbsgo'@'localhost';
FLUSH PRIVILEGES;
千年的回眸
MySQL-this is incompatible with sql_mode=only_full_group_by
原理在mysql 5.7 版本及以上版本,默认sql配置 sql_mode="ONLY_FULL_GROUP_BY"
严格执行 "SQL92标准",为了尽量兼容程序 可调整 sql_mode 使其保持跟5.6一致
在sql执行时出现该原因:输出的结果是叫 target list就是select后面跟着的字段
还有group by column 是group by后面跟着的字段,由于开启了ONLY_FULL_GROUP_BY 所以如果字段没有在target list 和group by字段中同时出现或聚合函数的值,那么这条sql被mysql认为非法 错误
查看sql_mode的语句
select @@GLOBAL.sql_mode;
解决方案 推荐解决方案 完美解决
修改mysql配置文件 添加sql_mode方式强制指定不需要ONLY_FULL_GROUP_BY属性
etc文件夹下 my.cnf 光标移到最后,添加
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
重启mysql服务,顺利解决
千年的回眸
HeidiSQL
What's this?
HeidiSQL is free software, and has the aim to be easy to learn.
"Heidi" lets you see and edit data and structures from computers running one of the database systems
MariaDB, MySQL, Microsoft SQL, PostgreSQL and SQLite.
Invented in 2002 by Ansgar,
HeidiSQL belongs to the most popular tools for MariaDB and MySQL worldwide.
Download HeidiSQL, read further about features, take part in discussions or see some screenshots
open source
heidisql.com/download.php