- 数据操纵语言(Data Manipulation Language, DML)是SQL语言中,负责对数据库对象运行数据访问工作的指令集,以INSERT、UPDATE、DELETE三种指令为核心,分别代表插入、更新与删除,是开发以数据为中心的应用程序必定会使用到的指令,因此开发人员都把加上SQL的SELECT语句的四大指令以“CRUD”来称呼。
- DML 的主要功能即是访问数据,因此其语法都是以读取与写入数据库为主,除了INSERT以外,其他指令都可能需搭配WHERE指令来过滤数据范围,或是不加WHERE指令来访问全部的数据。
- DML(数据操作语言)用于操作数据库对象中所包含的数据
- INSERT ( 添加数据语句 )
- UPDATE ( 更新数据语句 )
- DELETE ( 删除数据语句 )
- 语法:insert into 表名(列名,列名,列名...) values(值,值,值...); 为数据表的每列进行赋值
- 插入值 类型必须和 列类型匹配
- 值长度不能超过 列定义长度
- 值的顺序和 列顺序对应
- 字符串和日期型值 必须写 单引号
- 插入空值 可以写 null
- 语法: update 表名 set 列名=值,列名=值.... where条件语句;
- 真正修改的内容是set 后面的
- Where 的作用是定位 - 选择,限制
- 如果不加where条件语句的话,会作用在所有的记录上
- 语法:delete from 表名 where条件语句 ;
- 如不指定则删除该表的所有列数据
- truncate tablename命令将快速删除数据表中的所有记录,但保留数据表结构。
- 这种快速删除与delete from 数据表的删除全部数据表记录不一样,delete命令删除的数据将存储在系统回滚段中,需要的时候,数据可以回滚恢复,而truncate命令删除的数据是不可以恢复的
- TRUNCATE TABLE是非常快的 ,delete相对慢一些
- TRUNCATE之后的自增字段从头开始计数了,而DELETE的仍保留原来的最大数值
- TRUNCATE删除的数据不可恢复,delete删除的数据可以恢复
-- INSERT 新增数据
-- 语法: insert into tableName(col1,col2....) values(val1,val2...)
-- 注意 :1、col是表中的列名,要对,否则报错
-- 2、列的数量和值的数量要保持一致
-- 3、值的类型需要和列的类型保持一致
-- 4、如果表的列比较多,进行新增的时候,每一列都要给值的话,此时表名后面的列名可以省略不写
-- 如果采用这样的简写方式,那么表中的每一个类都需要给出具体的值,包括主键,如果主键是自增的话,则null
-- 5、如果给了自增主键值的话,此时则会使用自己自定义的那个值,
-- 如果主键重复,则报错,新增数据的话,使用最大值自增作为新数据的主键
INSERT INTO koubei(name,phone) VALUES('李小明','1237123')
INSERT INTO koubei(username,pwd,age) VALUES('lanlan','123',12)
INSERT INTO koubei(username,pwd,name,age,sex,phone,address) VALUES('meimei','mei','梅超风',99,'女','111','桃花岛')
INSERT INTO koubei VALUES(null,'meimei','mei','梅超风',99,'女','111','桃花岛')
INSERT INTO koubei(username,pwd)
VALUES('aa','aa'),('bb','bb'),('cc','cc')
-- 删除 DELETE
-- 语法:delete from tableName where col1=VALUE1 AND col2 = VALUE2
-- where 后面的是条件语句,限制sql语句作用的条数
-- 只要满足条件的,都会被删除
DELETE from koubei -- 删除表中的所有的数据
-- 删除id为103的那条数据
DELETE from koubei where id=103
-- 删除姓名为梅超风的那个人的信息
DELETE from koubei WHERE name='梅超风'
-- 删除年龄大于30的
DELETE from koubei WHERE age > 30
-- 删除年龄在50-90之间的
DELETE from koubei WHERE age>= 50 AND age <= 90
DELETE from koubei WHERE age BETWEEN 50 AND 90
-- 删除地址是北京或者上海的
DELETE from koubei WHERE address='北京' OR address = '上海'
-- 修改:update
-- 语法:update tableName set col=val,col=val where ....
-- 修改密码
update koubei set pwd = '123' -- 如果没有条件,修改所有数据
-- 如果要修改具体的某些数据的话,此时则必须加上条件
-- 修改meimei2的密码为 abc
UPDATE koubei set pwd='abc' WHERE username='meimei2'
-- 年龄大于30岁,性别为男的所有人的地址修改为上海,电话修改为123
UPDATE koubei set address='上海',phone='123'
WHERE age>30 AND sex = '男'