Java工程师-15-16周MySQL基础-第五章(MySQL对数据的基本操作)

91 阅读1分钟

第五章 MySQL对数据的基本操作

5.1 数据操纵语言:INSERT语句

image.png

建议写上字段的声明。如果不写字段声明,MySQL还要去表中查询,降低效率。

INSERT INTO t_dept(deptno, dname, loc)
VALUES (60, "后勤部","北京"), (70, "保安部","北京");
# 向技术部中插入一名员工(要子查询技术部的部门编号)
INSERT INTO t_emp 
(empno,ename,job,mgr,hiredate,sal,comm,deptno)
VALUES(7845,"刘娜","SALESMAN",7944,"1988-12-20",2000,NULL,
(SELECT deptno FROM t_dept WHERE dname="技术部"));

image.png

INSERT INTO t_emp
SET empno=8002,ename="JACK",job="SALESMAN",mgr=8000,
hiredate="1985-3-14",sal=2500,comm=NULL,deptno=50;

INTO关键字也是可以省略的

INSERT t_emp
SET empno=8002,ename="JACK",job="SALESMAN",mgr=8000,
hiredate="1985-3-14",sal=2500,comm=NULL,deptno=50;

image.png

5.2 数据操纵语言:UPDATE语句

image.png

  • WHERE:有条件修改,不加条件则是全表修改
  • ORDER BY:保证不会发生冲突(比如修改员工编号,从大的开始+1,没有比最大的更大的,所以不会发生冲突)

执行顺序:

  1. UPDATE 2. WHERE 3. ORDER BY 4. LIMIT 5. SET
# 把每个员工的编号和上司的编号+1
UPDATE t_emp SET empno=empno+1, mgr=mgr+1
ORDER BY empno DESC;

# 把月收入前三名的员工底薪减100UPDATE t_emp
SET sal = sal - 100
ORDER BY sal + IFNULL(comm, 0) DESC
LIMIT 3;

image.png

SET后面修改的字段可以是不同表的字段

image.png

# 把ALLEN调往RESEARCH部门,职务调整为ANALYST
UPDATE t_emp e JOIN t_dept d
SET e.deptno=d.deptno, e.job="ANALYST",d.loc="北京"
WHERE e.ename="ALLEN" AND d.dname="RESEARCH";

image.png

5.3 数据操纵语言:DELETE语句

image.png

IGNORE是忽略外键约束

image.png

image.png

image.png