MySQL基础命令表及补充说明
MySQL基础命令
文章目录
- MySQL基础命令
- 前情提要:
- 常用操作汇总表
- 补充内容
前情提要:
该博客为学习 SQL 3小时快速入门 的学习笔记,其内容均为视频内容。
[]
为参数- 命令由关键字和参数组成。关键字小写也行,但是一般都用大写,以示区分;参数尽量小写
- 参数可以和关键字重复,但此时要是用``
将其包裹起来,注意不是英文单引号,而是
esc`下方那个符号 - 每条指令后面必须要跟上一个
;
做结尾
常用操作汇总表
操作名称 | 命令 | 补充说明 |
---|---|---|
创建数据库 | CREATE DATABASE [数据库名称] | / |
查询数据库 | SHOW DATABASES | / |
删除数据库 | DROP DATABASE [数据库名称] | / |
选择数据库 | USE [数据库名称] | / |
创建数据表 | CREATE TABLE [表配置项] | 配置项补充 |
查看数据表 | DESCRIBE [数据表名称] | / |
删除数据表 | DROP [数据表名称] | / |
表添加属性 | ALTER TABLE [数据表名称] ADD [属性名] [属性描述] | 添加表属性 |
删除表属性 | ALTER TABLE [表名称] DROP COLUMN [属性名] | / |
表添加数据 | INSERT INTO [表名称] VALUES([需要插入的数据]) | 插入数据 |
查询表数据 | SELECT [查询条件] FROM [表名称] | 查询数据 |
修改表数据 | UPDATE [表名称] SET [赋值语句] WHERE [条件] | 修改数据 |
删除表数据 | DELETE FROM [表名称] WHERE [条件] | / |
添加FOREIGNKEY | 请见补充说明 | Foreign Key |
聚合函数 | 操作数据时做一些简单的逻辑处理 | 聚合函数 |
条件补充 | 补充一些利用条件筛选定位数据时的东西 | 条件补充 |
合并查询结果 | SELECT … UNION SELECT … | 多个查询用UNION连接 |
连接多个表 | SELECT [查询条件] FROM [表名] JOIN [表名] ON [条件] | / |
子查询 | 用小括号包裹一个查询语句,即采用查询结果替代小括号 | 在一查询中用另一查询结果 |
补充内容
1. 创建数据表
CREATE TABLE `students`(
`id` INT PRIMARY KEY,
`name` VARCHAR(20),
`major` VARCHAR(20)
);
同时对PRIMARY KEY
的定义除了可以像上面那样,在定义的时候写出,也可以这样:
CREATE TABLE `students`(
`id` INT,
`name` VARCHAR(20),
`major` VARCHAR(20)
PRIMARY KEY(`id`)
);
属性特殊限定词:
- UNIQUE:必填,该属性为必填属性
- DEFAULT:默认值 =>
DEFAULT '...'
- AUTO_INCREMENT:自增长,插入数据的时候自动根据上一条数据+1
2. 添加表属性
ALTER TABLE `student` ADD grade DECIMAL(3,2);
3. 插入数据
INSERT INTO `students` VALUES(1, '沧州刺史', '通信工程');
注意:上面VALUES中填写的数据,其顺序需要和创建时一致
如果想修改填写数据的顺序,可以在表名称后面跟上一个括号,指定顺序:
INSERT INTO `students`('name', 'major', 'id') VALUES('沧州刺史', '通信工程', 1);
如果不填,空着的那个数据默认为NULL
4. 查询数据
*是所有的意思,如果想要只筛选出一部分出来,这样写:
SELECT `name` FROM `students`;
这个就是单独把name
这个属性读出来,如果想要多个属性,只需要用,
隔开就行。
如果想要读取的时候顺便排序,在后面加上ORDER BY
:
SELECT *
FROM `students`
ORDER BY `id` DESC;
默认是由低到高,加上DESC则是由高到低。如果有多个排序依据,则当前一个相同的时候,再根据后面一个继续比较。
如果想只要前几个,例如在后面添加LIMIT 3
,就是只读取前三个出来。
当不想要查询出来的某个属性重复,在属性前加上 DISTINCT
5. 修改数据
修改之前需要关闭系统预设模式:
SET SQL_SAFE_UPDATES = 0;
将通信工程这个名字修改成通宵工程:
UPDATE `students`
SET `major` = '通宵工程'
WHERE `major` = '通信工程';
条件查询时可以通过OR
、AND
综合不同条件,修改时也可以通过,
分割,修改多个数据。
UPDATE `students`
SET `major` = '通宵工程'
WHERE `major` = '通信工程' or `major` = ;
6. Foeign Key
有两种添加模式:
-
在创建表格的时候就添加:
FOREIGN KEY( [1] ) REFERENCES [2] ( [3] ) ON DELETE SET NULL
1:当前表中指定为Foreign Key的属性
2:需要链接到的表的名称
3:链接表中对应的属性
FOREIGN KEY(`manager_id`) REFERENCES `employee`(`emp_id`) ON DELETE SET NULL;
-
后续通过添加属性的形式通过命令操作:
ALTER TABLE `employee` ADD FOREIGN KEY(`branch_id`) REFERENCES `branch`(`branch_id`) ON DELETE SET NULL;
上面的操作即为:在 employee 这个数据表中,将 branch_id 这个属性设置为 Foreign Key,并且该 Foreign Key 链接至 branch 这个表中的 branch_id 属性
ON DELETE SET NULL:当REFERENCES 后的数据不存在,把前面对应的那个数据设为NULL
ON DELETE CASCADE:如果REFERENCES后的数据不存在,把前面对应的那一条数据也删了
7. 聚合函数
-
统计数据条数
SELECT COUNT(*) FROM `employee`;
上面的操作会返回 employee 这个表中所存数据的总条数
-
计算某属性的平均值
SELECT AVG(`salary`) FROM `employee`;
算出表中所有员工的工资平均值
-
计算总和
SELECT SUM(`salary`) FROM `employee`;
计算所有员工工资总和
-
获取最大最小值
SELECT MAX(`salary`) FROM `employee`;
上面是获取最大值,最小值就是把MAX换成MIN
8. 条件补充
-
多个判断条件
使用 OR 或者 AND 连接,分别对应 或、与 逻辑
-
比大小
除了不等于,其余和常规一样,例如大于等于是 >=。而不等于是 <>,一个小于一个大于连起来。
-
查询匹配一定格式的数据
比如要查询手机尾号是123的用户,则条件查询这样写:
WHERE `phone` LIKE '%123'
其中,LIKE 表示模糊查询,
%
百分号表示匹配多个字元,而__
一个下划线表示匹配一个字元。