一、数据操作语言
1、DML
DML(Data Manipulate Language 数据操纵语言)可以在下列条件下执行:
(1)向表中插入数据
(2)修改现存数据
(3)删除现存数据
2、事务是由完成若干项的 DML 语句组成的。
二、insert 插入语句
1、两种语法格式
(1)方式一
insert into 表名(列名1,...)
values(值1,...);
使用这种语法一次只能向表中插入一条数据。
(2)方式二
insert into 表名
set 列名=值, 列名=值,...
2、方式一案例
(1)插入的值的类型要与列的类型一致或兼容
INSERT INTO beauty(id, NAME, sex, borndate, phone, photo, boyfriend_id)
VALUES(13, '唐艺昕', '女', '1990-4-23', '1898888888', NULL, 2);
(2)向表中插入空值
① 隐式方式:在列名表中省略该列的值
INSERT INTO beauty(id, NAME, sex, borndate, phone, boyfriend_id)
VALUES(13, '金星', '女', '1990-4-23', '1898888888', 9);
② 显示方式:在 values 子句中指定空值
INSERT INTO beauty(id, NAME, sex, borndate, phone, photo, boyfriend_id)
VALUES(14, '唐艺昕', '女', '1990-4-23', '1898888888', NULL, 2);
(3)列的顺序可以调换,但插入的值与字段名要一一对应
INSERT INTO beauty(NAME, sex ,id, phone)
VALUES('蒋欣', '女', 15, '110');
(4)列数和值的个数必须一致,一一对应
INSERT INTO beauty(NAME, sex ,id, phone, boyfriend_id)
VALUES('关晓彤', '女', 16, '110');
(5)可以省略列名,默认所有列,而且列的顺序和表中列的顺序一致
INSERT INTO beauty
VALUES(17, '蔡文姬', '女', NULL, '119', NULL, NULL);
3、方式二案例
(1)插入新数据
INSERT INTO beauty
SET id = 19, NAME = '刘涛', phone = '999';
4、两种方式的对比
(1)方式一支持插入多行,方式二不支持
Demo:
INSERT INTO beauty VALUES
(21, '唐艺昕1', '女', '1990-4-23', '1898888888', NULL, 2),
(22, '唐艺昕2', '女', '1990-4-23', '1898888888', NULL, 2),
(23, '唐艺昕3', '女', '1990-4-23', '1898888888', NULL, 2);
(2)方式一支持子查询,方式二不支持
Demo:
INSERT INTO beauty(id, NAME, phone)
SELECT 26, '宋茜', '1180966';
INSERT INTO beauty(id, NAME, phone)
SELECT id, bodyname, '1833187'
FROM boys WHERE id > 30;
此时不必书写 values 子句;
子查询中的值列表应与 insert 子句中的列名对应。
5、其他注意点
① 字符和日期型数据应包含在单引号中;
② values 里面的值要去字段列名一一对应;
③ 可以使用函数;
④ 要求值的类型和字段的类型要一致或兼容;
⑤ 字段名可以省略,默认所有列,字段和值的个数必须一致;
⑥ 字段的个数和顺序不一定与原始表中的字段个数和顺序一致但必须保证值和字段一一对应;