mysql语法,5分钟,从进门到入门

mysql增删改查

插入: insert into 表名 values()
更新:update 表名 set 列名 where 条件=""
删除:delete from 表名 where 条件=""
as起别名
distinct去重
​ where 条件1and/or/between/<> 条件2
​ where 条件is = ""
​ where 列名like "李%" %代表任意个字符 _:表示一个字符

聚合函数中的count统计的记录数量不包括null的数据
分页查询: limit 跳过的数据量,查询几条数据量
​ order by asc/desc 默认正序
​ 分组查询
​ SELECT gender,COUNT(*) FROM student GROUP BY gender;
​ 统计数量,统记的是student的性别
​ 例: 男 3 女 2

truncate 截断

​ 与delete不同的是,执行后会自动提交
​ truncate比delete快,会影响自增,truncate table 清空表

外键

​ 假如有一个部门表,有一个员工表, 这些员工肯定都属于某个部门,在mysql靠外键来设置这个约束
​ 假如id用来表示部门表中每个部门, 员工表靠deptId来写自己属于哪个部门
​ 所以deptId一定不存在id中没有的值
constraint 外键名 foreign key(自己的键) reference dept(参考的键)

级联操作

​ 有了外键之后,希望修改主表的值,副表的值也受到影响
在外键的语句后补加
cascade汉语小瀑布

级联修改: ON UPDATE CASCADE
级联删除: ON DELETE CASCADE
级联删除: ON DELETE SET NULL
	`constraint 外键名 foreign key(自己的键) reference dept(参考的键) on..... on....`

关联查询(多表查询)

SELECT empName,deptName FROM employee,dept; 一般这样查询,会产生笛卡尔积的情况,会有很多重复记录

​ 使用频繁的是内连接查询(有条件的查询)

SELECT empName,deptName       -- 2)确定哪些哪些字段
FROM employee,dept    -- 1)确定查询哪些表
WHERE employee.deptId=dept.id  -- 3)表与表之间连接条件

​ 内连接的另一种语法
​ SELECT empName,deptName
​ FROM employee
​ INNER JOIN dept
​ ON employee.deptId=dept.id;

左(外)连接查询(就是无论另一个表有没有和自身匹配的,自身的数据都是全部显示的)

SELECT d.deptName,e.empName
FROM dept d
LEFT OUTER JOIN employee e
ON d.id=e.deptId;
原文地址:https://www.cnblogs.com/qiuyehaha/p/13916316.html