文章目录
1. 数据添加(INSERT, IGNORE)
推荐用法:INSERT [IGNORE] 表名 SET 字段1=值1, 字段2=值2, ... ;
1.1 INSERT语句
- 用法:
INSERT INTO 表名 (字段1, 字段2, ...) VALUES (值1, 值2, ...), (值1, 值2, ...)
INSERT INTO 表名 (查询语句)
,把查询的结果集写入数据里,比如INSERT INTO t_dept(SELECT MAX(deptno)+10, "A部门", "北京" FROM t_dept)
- 可以不写字段名,但是执行效率会受到影响看,因为MySQL需要先帮你补齐字段名再添加。
- 一条语句可以像一张数据表内输入一条或多条记录
- 可以用子查询结果作为
VALUE
- 举例:创建技术部,并在技术部中添加一名员工
INSERT INTO t_dept (deptno, dname, loc)
VALUES (50, "技术部", "北京");
INSERT INTO t_emp
(empno, ename, job, mgr, hiredate, sal, comm, deptno)
VALUES (8001, "abc", "def", 8000, "1980-02-03", 2000, null,
(SELECT deptno FROM t_dept WHERE dname="技术部"));
1.2 MySQL的INSERT的方言用法
- 用法:
INSERT (INTO) 表名 SET 字段1=值1, 字段2=值2, ... ;
INTO
可以省略,这样写相对更加符合逻辑
1.3 IGNORE关键字
- 用法:
INSERT [IGNORE] INTO 表名 ...;
- 有时候我们需要输入多行记录的时候,因为有一个输错了,就会因为有语法错误,而导致所有数据输入失败。用
IGNORE
函数就能解决这个问题,如果碰到输入错误的就跳过,不会报错。
2. 数据修改(UPDATE)
UPDATE 表1 [LEFT/RIGHT] JOIN 表2 ON 条件
SET 字段1=值1, ...
[WHERE 条件1 ...] #没有WHERE就是全表更改,写了WHERE就是有条件修改
[ORDER BY ...] # 修改记录的时候会因为更改数据而导致冲突,因此可以降序或升序排列,这样可以避免冲突
[LIMIT ...]; #只能用一个参数,就是更改几个数据就写几个数
2.1 基本用法
- 用法:
UPDATE [IGNORE] 表名
SET 字段1=值1, 字段2=值2, ...
[WHERE 条件1 ...]