一、DML是什么?
1.示例:DML数据操作语言(Data Manipulation Language,DML)由 DBMS 提供,提供给用户或程序员使用,实现对数据库中数据的操作
DML 是在 SQL 语句中负责对数据库对象运行数据访问工作的指令集,以 insert、update、delete 3 种指令为核心,分别代表插入、更新与删除
语法:
insert [into] table_name[( 字段列表 )] values( 值列表 )
2.如果需要修改或更新数据,可以使用update语句
语法:
update table_name set
字段名 1= 值 1, 字段名 2= 值 2, … , 字段名 n= 值 n;
[where 条件表达式 ]
3.删除表中数据
语法:
delete from table_name [where 条件表达式 ]
说明:
当删除有主从关系的表记录时,为避免发生删除时异常,一定要事先设置从表外键约束的“删除时”状态为 null,或者为“cascade”。
在通常情况下,都是设置从表外键约束的“删除时”状态为 null,而不是“cascade”,因为这样容易误删除从表数据。“不允许删除被从表引用的主表记录”这一法则,也符合现实的业务逻辑。
二、数据查询
1.select语句基本结构
select 语句具有强大的查询功能,允许从一个表或多个表中选择满足给定条件的一个或多个行或列
select <column1, column2, column3 … > from <table_name>
[where < 条件表达式 >]
[group by column1, column2, column3 … | having < 条件表达式 >]
[order by < column1, column2, column3 … > [asc 或 desc]]
2.查询结果排序
- 使用“order by 字段 1,字段 2…”可以对查询结果按照“字段 1,字段 2…”的次序进行升序或降序显示
- 关键字 asc 表示升序(默认为升序,故升序时可省略 asc),desc 表示降序
- 除可在单列进行排序外,还可以按多列进行排序。多列排序的规则为:依照排序列从左至右的次序依次降低
3.过滤重复字段
- 关键字“distinct”用于过滤重复的字段信息
示例:查询所有影片的导演名,要求所显示的导演名不能重复
select distinct director from movie
4.限定指定的记录
limit 子句可以被用于强制select 语句返回指定的记录数
- 参数 offset 和 rows 必须为整数,offset 可以省略。
- offset 指定第一个返回记录行的偏移量。注意:初始记录行的偏移量是 0,而不是 1
- rows 指定返回记录行的最大数目
select * from table limit [offset,] rows
5.模糊查询
在查询的过程中,如果遇到不能明确指明查询的限定条件时,就会用到模糊查询的 like 运算符进行模式匹配查询
在查询时可以使用如下几个通配符:
- %:包含零个或多个字符的任意字符串
- _(下划线):任意单个字符
- []:指定范围(如 [a-d])或集合([abcdef])中的任意单个字符