自学MySQL

-- 插入一行
-- INSERT INTO 表名 (字段1,字段2,...) VALUES (值1,值2,...);

-- 插入多行
-- INSERT INTO 表名 (字段1,字段2,...) 
-- VALUES 
-- (值1,值2,...),
-- (值1,值2,...);
INSERT INTO emp (ename,hiredate,sal,deptno) VALUES ('xxx','2000-01-01','1','1');
INSERT INTO emp VALUES ('x','2000-01-01','1','1');
INSERT INTO emp (ename,deptno) VALUES ('xxx','1');


-- 更新单表数据
-- UPDATE 表名 SET 字段1 = 值1,字段2 = 值2,... [WHERE 条件语句]
UPDATE emp SET sal = 4000 WHERE ename = 'x';

-- 更新多表数据
-- UPDATE 表名1,表2... SET 表名1.字段1 = 值1,表名2.字段2 = 值2,... [WHERE 条件语句]
UPDATE emp a,dept b SET a.ename = '谢兴铧', b.deptname = '技术' WHERE a.deptno = b.deptno;


-- 删除单表数据
-- DELETE FROM 表名 [WHERE 条件语句]
DELETE FROM emp WHERE ename = 'xxx';

-- 删除多表数据
-- DELETE 表名1,表名2,... FROM 表名1,表名2,... [WHERE 条件语句]
DELETE a,b FROM emp a,dept b WHERE a.deptno = b.deptno AND a.ename = 'xxh';


-- 查询记录
-- SELECT * FROM 表明 [WHERE 条件语句];
SELECT * FROM emp;
SELECT ename,hiredate,sal,deptno FROM emp;

-- 查询不从重复的记录
SELECT DISTINCT ename FROM emp;

-- 条件查询
SELECT * FROM emp WHERE sal = 100;
SELECT * FROM emp WHERE sal = 4000 AND deptno = 1;

-- 排序和限制
-- SELECT * FROM 表名 [WHERE 条件语句] [ORDER BY 字段名1 [DESC|ASC],字段名2 [DESC|ASC],...];
SELECT * FROM emp WHERE deptno = 1 ORDER BY sal ASC;

-- 分页功能
-- 第一个数字代表从第几行开始;
-- 第二个数字的意思就是一页多少
SELECT * FROM emp ORDER BY sal LIMIT 6,3;


-- 聚合
-- SELECT 字段名1,字段名2,... 函数名 
-- FROM 表名
-- [WHERE 条件语句]
-- [GROUP BY 字段名1 字段名2,... [WITH ROLLUP]]
-- [HAVING 条件]

-- 计算公司的总人数
SELECT COUNT(1) '总人数' FROM emp;

-- 统计各部门人数
SELECT deptno '部门',COUNT(1) '人数' FROM emp GROUP BY deptno;

-- 既要统计各部门人数,又要统计总人数
SELECT deptno,COUNT(1) FROM emp GROUP BY deptno WITH ROLLUP;

-- 统计人数大于1的部门
SELECT deptno,COUNT(1) FROM emp GROUP BY deptno HAVING COUNT(1) > 1;

-- 统计公司所有员工的薪水总额、最高和最低的薪水
SELECT SUM(sal),MAX(sal),MIN(sal) FROM emp;

-- 统计工资等于4000的总人数
SELECT sal,COUNT(1) FROM emp WHERE sal = 4000 GROUP BY sal;


-- 表连接
-- 内连接
-- 外连接
-- 左外连接
-- 右外连接

-- 内连接
-- 查询员工的名字和部门
SELECT ename,deptname FROM emp,dept WHERE emp.deptno = dept.deptno;

-- 左外连接
SELECT ename,deptname FROM emp
LEFT JOIN dept ON emp.deptno = dept.deptno;

-- 右外连接
-- 结果和左外连接一样,因为数据库名的位置交换了
SELECT ename,deptname FROM dept 
RIGHT JOIN emp ON emp.deptno = dept.deptno;

SELECT ename,deptname FROM emp
RIGHT JOIN dept ON emp.deptno = dept.deptno;


-- 子查询
SELECT * FROM emp WHERE deptno in(SELECT deptno FROM dept);


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农之斜杠青年King

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值