DML是一门数据操作语言,用于操作数据库对象中所包含的数据,包含:INSERT (添加数据语句)、UPDATE (更新数据语句)、DELETE (删除数据语句)。
insert 命令
基本语法:
INSERT INTO 表名[(字段1,字段2,字段3,...)] VALUES('值1','值2','值3')
! [] 表示可选,() 表示必选
注意:
update 命令
基本语法:
UPDATE 表名 SET 字段名=修改的值 [,字段名2=修改的值2,...] [WHERE 条件];
注意:
delete 命令
基本语法:
DELETE FROM 表名 [WHERE condition]
! condition为筛选条件 , 如不指定则删除该表的所有列数据
truncate 命令
基本语法:
TRUNCATE [TABLE] 表名
**!**truncate 命令用于完全清空表数据 , 但表结构 , 索引 , 约束等不变
两者区别
相同 : 都能删除数据 , 不删除表结构 , 但TRUNCATE速度更快
不同 :
DQL是一门数据查询语言 ,可以实现数据库数据的查询、简单的单表查询、多表的复杂查询和嵌套查询,是数据库语言中最核心、最重要、使用频率最高的语句。
主要语句语法结构(select语句)
SELECT [ALL | DISTINCT]
{* | table.* | [table.field1[as alias1][,table.field2[as alias2]][,...]]}
FROM table_name [as table_alias]
[left | right | inner join table_name2]
[WHERE ...]
[GROUP BY ...]
[HAVING]
[ORDER BY ...]
[LIMIT {[offset,]row_count | row_countOFFSET offset}]
注意:
[ALL | DISTINCT],ALL 为默认(即查询全部),DISTINCT为去重查询
as 为取别名,可作用于表和字段
left | right | inner join ,为联合查询
WHERE,为指定满足的条件
GROUP BY,指定结果按照哪几个字段来分组
HAVING,过滤分组须满足的条件
ORDER BY,排序,分ASC升序和DESC降序
LIMIT ,指定查询记录(分页)
! [ ] 括号代表可选的 , { } 括号代表必选得
上面语句顺序不能乱放
使用条件:如需要多张数据表的数据进行查询,则可通过连接运算符实现多个查询
join 对比
七种Join:
常用三种join对比:
自连接
数据表与自身进行连接
例如:从一个包含栏目ID , 栏目名称和父栏目ID的表中查询父栏目名称和其他子栏目名称
-- 把一张表看成两张一模一样的表,然后将这两张表连接查询(自连接)
SELECT a.categoryName AS '父栏目',b.categoryName AS '子栏目'
FROM category AS a,category AS b
WHERE a.`categoryid`=b.`pid`
order by 排序
基本语法:
ORDER BY 字段名 [DESC|ASC]
注意:默认按照ASC升序对记录进行排序,DESC为降序排序
limit 分页
基本语法:
LIMIT [offset,] rows | rows OFFSET offset
! 第一个参数指定第一个返回记录行的偏移量(索引),第二个参数指定返回记录行的最大数目(显示的个数)。初始记录行的偏移量是 0(而不是 1)
推导:
第一页 : limit 0,5
第二页 : limit 5,5
第三页 : limit 10,5
......
第N页 : limit (pageNo-1)*pageSzie,pageSzie
[pageNo:页码,pageSize:单页面显示条数]
概述
在查询语句中的WHERE条件子句中,又嵌套了另一个查询语句;
嵌套查询可由多个子查询组成,求解的方式是由里及外;
子查询返回的结果一般都是集合,故而建议使用IN关键字;
例:
-- 在student、result和subject三表中查询subjectname为'高等数学-2',Result不少于80的studentno,studentname
SELECT studentno,studentname FROM student WHERE studentno IN(
SELECT studentno FROM result WHERE StudentResult>=80 AND subjectno=(
SELECT subjectno FROM subject WHERE subjectname = '高等数学-2'
)
)
用于筛选数据,检索数据表中符合条件的记录
搜索条件为运算符
**!**注意 ‘<> ’有另一个写法‘ != ’ 。
搜索条件为逻辑操作符
! 可由一个或多个逻辑表达式组成 , 结果一般为真或假.
搜索条件为比较操作符
! 相同数据类型的数据之间才能进行比较.
学习资源路径