DML语句就是对 已经建立好的表的操作及管理如 添加数据 insert into table ,删除数据 delete from table ,更新数据 update table set 。
一、添加数据
INSERT INTO t_name (列1,列2,列3) values
( 值1,值2,值3),
( 值1,值2,值3),
( 值1,值2,值3),
( 值1,值2,值3)
;向表中添加整行的数据。
二、删除数据
delete from t_name where 条件;一行一行的删除数据满足条件的行;有日志文件记录,可以恢复;后面可以跟where条件语句;执行的较慢。
truncate table t_name;整张表删除;没有日志文件,不可恢复;不能跟where条件。
三、更新数据
update t_name set 列名1=值,列名2=值2,列名3=值3 where 条件;
更新满足条件的行的属性值(列1,列2,列3)它是对 列中的值进行修改。
四、where条件
where后面可以跟上
算术运算符条件<,>,=,<=,>=,!=,<>也是不等于;
in(1,2,3)与集合里面的值相等;
between 值1 and 值2; 条件是在值1和值2之间。包括2个边界值;
模糊查询 %通配符
like '%k%';包含k字符的like 'k%';k字符开始的like '%k';k字符结束的
模糊查询 _ 单字符占位符
like '_k';k字符是第二个字符,它前面有一个字符。
空字符类型 null
表示什么都没有 数据库中显示为(NULL)没有定义数据
有的值 是空的,但不是(NULL) 里面是空字符串 ‘’
条件链接符
and 同时,or有一个,not 非;
列子:
CREATE DATABASE lesson4_dml;
CREATE TABLE t_department(
d_deptid INT PRIMARY KEY AUTO_INCREMENT,-- 部门id
d_deptname VARCHAR(50) NOT NULL,-- 部门名称
d_describe VARCHAR(500)-- 部门描述
)ENGINE=INNODB CHARSET='utf8';
CREATE TABLE t_employee(
e_employeeid INT PRIMARY KEY AUTO_INCREMENT,-- 员工工号
e_deptid INT NOT NULL,-- 所属部门id
e_employeename VARCHAR(50) NOT NULL,-- 姓名
e_gender CHAR(2) NOT NULL DEFAULT '男',-- 性别
e_birthday DATETIME NOT NULL,-- 生日
e_idcard VARCHAR(18) NOT NULL UNIQUE,-- 员工身份证号
e_degree VARCHAR(12) NOT NULL,-- 学历
e_graduateschool VARCHAR(50) NOT NULL,-- 毕业学校
e_graduatedate DATETIME NOT NULL,-- 毕业时间
e_specialty VARCHAR(50) NOT NULL,-- 专业
e_telephone VARCHAR(200) NOT NULL,-- 电话,可以存储多个
e_salary SMALLINT,-- 固定薪水
e_allowance DECIMAL(18,2),-- 住房补贴
e_skill VARCHAR(2000),-- 特长
CONSTRAINT c_valid CHECK(e_birthday<e_getdate() AND e_graduatedate<getdate() AND len(e_idcard)=18),
CONSTRAINT e FOREIGN KEY (e_deptid) REFERENCES t_department(d_deptid)
)ENGINE=INNODB CHARSET='utf8';
DROP TABLE t_department;
DROP TABLE t_employee;
CREATE TABLE t_goods(
g_id INT PRIMARY KEY AUTO_INCREMENT,
g_name VARCHAR(50)NOT NULL UNIQUE,
g_price INT NOT NULL,
g_describe VARCHAR(200) NOT NULL,
g_factory VARCHAR(50) NOT NULL
)CHARSET='utf8';
TRUNCATE TABLE t_goods;
INSERT INTO t_goods (g_name,g_price,g_describe,g_factory) VALUES('物理书1',12,'物理教材课本','新华出版社'),
('物理书2',22,'物理教材课本','新华出版社'),('物理书3',23,'物理教材课本','新华出版社'),('物理书4',25,'物理教材课本','新华出版社'),
('物理书5',34,'物理教材课本','新华出版社');
UPDATE t_goods SET g_price=10 WHERE g_id=4;
UPDATE t_goods SET g_price=12 WHERE g_id BETWEEN 2 AND 10;
UPDATE t_goods SET g_factory='华为' WHERE g_id IN(4,3,1);
DELETE FROM t_goods WHERE g_id<3;
UPDATE t_goods SET g_price=50 WHERE g_factory LIKE '%华为%';