目录
1. MySQL中的表
1.1 创建表
命令为: create table +表名 +表的参数[参数名 参数类型 不同参数用,分隔开](id int, name varchar(20));
1.2 查看当前有哪些表
命令为: show tables;
1.3 查看表的结构
命令为:desc + 表名;
1.4 删除表
命令:drop table + 表名;
如何避免删库/删表?
1. 监控报警
2.备份
3. 权限
2. MySQL表的增删改查
2.1 CRUD
注释:在SQL中可以使用“--空格+描述”来表示注释说明
CRUD 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写
2.2 新增(Create)
语法:
注:mysql默认不支持中文,需要手动设置
2.2.1 单行数据 + 全列插入
语法: insert into +表名 values +(参数列表);
2.2.2 多行数据 + 指定列插入
语法: insert into +表名 + (指定的列)values + (参数列表);
2.3 查询(Retrieve)
语法:
例子:
-- 创建考试成绩表
DROP TABLE IF EXISTS exam_result;
CREATE TABLE exam_result (
id INT,
name VARCHAR(20),
chinese DECIMAL(3,1),
math DECIMAL(3,1),
english DECIMAL(3,1)
);
-- 插入测试数据
INSERT INTO exam_result (id,name, chinese, math, english) VALUES
(1,'唐三藏', 67, 98, 56),
(2,'孙悟空', 87.5, 78, 77),
(3,'猪悟能', 88, 98.5, 90),
(4,'曹孟德', 82, 84, 67),
(5,'刘玄德', 55.5, 85, 45),
(6,'孙权', 70, 73, 78.5),
(7,'宋公明', 75, 65, 30);
2.3.1 全列查询
语法:select * from +表名 ;
2.3.2 指定列查询
语法: select +(指定的列)from +表名 ;
2.3.3 查询字段为表达式
语法: select +(指定的列进行运算) from +表名 ;
2.3.4 别名
为查询结果中的列指定别名,表示返回的结果集中,以别名作为该列的名称,语法:
2.3.5 去重
DISTINCT 使用DISTINCT关键字对某列数据进行去重:
如果要多列去重那么这两列的对应项必须相等
2.4 排序
使用 order by + 列名 , 有升序和降序两种方式,默认为升序asc
想要得到降序排列,列名后+desc
2.5 条件查询
where 子句
2.5.1 基本查询
-- 查询英语不及格的同学及英语成绩 ( < 60 )
SELECT name, english FROM exam_result WHERE english < 60;
-- 查询语文成绩好于英语成绩的同学
SELECT name, chinese, english FROM exam_result WHERE chinese > english;
-- 查询总分在 200 分以下的同学
SELECT name, chinese + math + english 总分 FROM exam_result WHERE chinese + math + english < 200;
2.5.2 范围查询
between and
or
in
2.5.3 模糊查询 like
两种写法
1. % 匹配任意多个(包括 0 个)字符
2. _ 匹配严格的一个任意字符
2.5.4 判空 null
<=>
isNULL
查找非空 is nut null
2.6 分页查询
目的:避免一次查询出过多数据
直接 limit + 数字
获取最多不超过limit值的数据量
可以搭配select的任意功能使用
搭配offset使用
2.7 修改
语法: update +表名 set +列名 = 修改值 [WHERE ...] [ORDER BY ...] [LIMIT ...]
给成绩倒数前3的同学数学成绩-10
修改后:
2.9 删除
语法:delete from [表名] where [条件];