写在前面
MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 Relational Database Management System 即关系数据库管理系统简称RDBMS。
RDBMS 术语
- 数据库:一些有关联的表的集合
- 数据表:简单理解为Excel表格
- 列:一列(数据元素),是一组相同类型的数据,比如:新建了一个姓名列,则这一列存放的都是姓名。
- 行:一行(又称 元组 或 记录)是一组相关的数据。
- 主键:是唯一的且一个数据表中只能包含一个主键。
- 外键:用来关联两个表。
- 索引:可以用来快速访问数据库中的特定信息;是对数据库表中列的值进行排序的一种结构;简单理解为书的目录,通过目录快速定位到指定内容。
- 表头(header): 每一列的名称;
- 列(col): 具有相同数据类型的数据的集合;
- 行(row): 每一行用来描述某条记录的具体信息;
- 值(value): 行的具体信息, 每个值必须与该列的数据类型相同;
- 键(key): 键的值在当前列中具有唯一性。
它是由瑞典 MySQL AB 公司开发,目前属于 Oracle(甲骨文) 公司。在学习MySQL之前你需要知道:
- MySQL 使用标准的 SQL 数据语言形式。
- MySQL 是开源的。
- MySQL 可以运行于多个系统上,并且支持多种语言。这些编程语言包括 C/C++、Python、Java、PHP 等。
- MySQL 是可以自定义SQL语句的,可以通过修改源码开发属于自己的 MySQL 系统。
安装
参考这篇文章 点击查看安装教程(👈会花点时间)
安装教程视频版
正确安装MySQL后,在Win+R键输入CMD进入终端输入
mysql -u root -p
输入密码进入MySQL
出现以上界面则说明安装成功!
数据库的简单操作
注意MySQL语句的结束符号为英文的 ; 一定要是英文的
查询数据库
show databases;
此语句的意思是显示现在的数据库中一共有那些数据库;
下图就是我电脑中的数据库,有些没有是因为我之前创建过许多数据库了,不是一模一样的很正常。
创建数据库
语句:
create database 数据库名;
例如:创建一个名为物联网工程2班的数据库
出现 Querty OK 则创建数据库成功;
————————————————————————————————————
此时再次使用 show databases 查询的话,就会出现刚才创建的数据库。
注意:如果创建了重复的数据库会出现以下报错;
ERROR 1007 (HY000): Can't create database '物联网工程2班'; database exists
以上报错信息意思是 不能创建名为“物联网工程2班”数据库;因为已经存在这个数据库了;
————————————————————————————————————
在创建数据库时我们可以进行一下判断;判断要创建的数据库 是否 已经存在;
SQL语句👇
create database if not exists 数据库名;
这样可以避免报错,但是会有一条警告信息;
显示数据库的信息&操作
show create database 数据库名;
————————————————————————————————————
删除数据库SQL语句
drop database 数据库名;
————————————————————————————————————
更改数据库字符集的SQL语句
alter database 数据库名 character set utf8;
————————————————————————————————————
选择要使用哪个数据库的SQL语句
use 物联网工程2班;
————————————————————————————————————
MySQL中的数据类型
MySQL 中定义数据字段的类型对你数据库的优化是非常重要的。
MySQL 支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。
由于篇幅原因可以前往此处查看详细的解释:数据类型详解
创建和操作数据表
创建MySQL数据表的SQL通用语法:
CREATE TABLE table_name (column_name column_type);
数据表命名应遵循以下原则:
- 长度最好不超过30个字符;
- 多个单词之间用下划线 “_” 分割,不允许空格;
- 不允许使用MySQL关键作为表明;
- 同一数据库中不能存在相同名称的数据表
例:我们创建一个表名为goods的数据表并使用以下结构;
字段 | 数据类型 | 约束 | 说明 |
---|---|---|---|
goods_id | int(11) | 主键,自增 | 商品id |
goods_type | varchar(30) | 非空 | 商品类别 |
goods_name | varchar(30) | 唯一 | 商品名称 |
goods_price | decimal(7,2) | 无符号 | 商品价格 |
goods_num | int(11) | 默认值为0 | 商品库存 |
goods_time | datatime | 入库时间 |
创建:
CREATE TABLE goods (
goods_id INT ( 11 ) PRIMARY KEY AUTO_INCREMENT,
goods_type VARCHAR ( 30 ) NOT NULL,
goods_name VARCHAR ( 30 ) UNIQUE,
goods_price DECIMAL ( 7, 2 ) UNSIGNED,
goods_num INT ( 11 ) DEFAULT ( 0 ),
goods_time DATETIME
) ENGINE = INNODB DEFAULT CHARSET = utf8;
- 如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
- AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
- PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
- ENGINE 设置存储引擎,CHARSET 设置编码。
删除
删除MySQL数据表的通用语法:
DROP TABLE table_name ;
查看表结构
在向表中添加数据之前,一般需要先查看表结构;
MySQL中查看表结构的语句包括 DESCRIBE 和 SHOW CREATE TABLE
例:我们想查看刚才创建的goods表的表结构
DESCRIBE goods;
SHOW CREATE TABLE goods;
修改数据表
当系统需求变更或设计之初考虑不周全等情况发生时,就需要对表的结构进行修改。修改表包括修改表名、修改字段名、修改字段数据类型、修改字段的排列位置、加字段、删除字段、修改表的存储引擎和字符集等。
修改表名
修改表名语法格式如下:
ALTER TABLE 原表名 RENAME [TO] 新表名;
例:修改goods表名为product
ALTER TABLE goods RENAME TO product;
修改字段
修改字段的排列位置
添加字段
删除字段
修改表的存储引擎和字符集
复制数据表
在 MySQL 中,表的复制操作包括复制表结构和复制表中的数据。复制操作可以在同一个数据库中执行,也可以跨数据库实现。