第四章 DML语句

来源:互联网 发布:换了网络之后连不上 编辑:程序博客网 时间:2024/05/15 11:24

           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,-- 部门idd_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,-- 所属部门ide_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 '%华为%';