MySQL02--DMLDQL语言
Posted 东边日出西边雨zZ
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL02--DMLDQL语言相关的知识,希望对你有一定的参考价值。
数据库的意义:数据存储、数据管理
用于操作数据库对象中所包含的数据
包括:
INSERT INTO `数据表名`[(`字段1`,`字段2`,`字段3`)] VALUES ('值1','值2','值3')
字段和值之间用英文逗号隔开
`字段1,字段2...` 该部分可省略 , 但添加的值务必与表结构,数据列,顺序相对应,且数量一致
可同时插入多条数据 , values 后用英文逗号隔开
UPDATE `数据表名` SET `字段` = '值' [WHERE condition]
字段为要更改的数据列
值为修改后的数据 , 可以为变量 , 具体值 , 表达式或者嵌套的SELECT结果
condition 为筛选条件 , 如不指定则修改该表的所有列数据
DELETE FROM `数据表名` [WHERE condition]
TRUNCATE [table] table_name
相同:都是删除数据,不删除表结构,但TRUNCATE速度更快
不同:使用TRUNCATE table 会重置Auto_increment计数器;TRUNCATE不会对事务有影响。
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}] --指定查询的记录从哪条到哪条
可给查询的数据列作为别名
可给数据表作为别名
可给计算出的数据结果作为别名
操作符名称 | 语法 | 描述 |
IS NULL |
a IS NULL |
若操作符为NULL,则结果为真 |
IS NOT NULL |
a IS NOT NULL |
若操作符不为NULL,则结果为真 |
BETWEEN |
a BETWEEN b AND c |
若a范围在b和c之间,则结果为真 |
LIKE | a LIKE b |
SQL模式匹配,若a匹配b,则结果为真 |
IN |
a IN (a1,a2,a3,…) |
若a等于a1,a2….中的某一个,则结果为真 |
JOIN对比:
操作符名称 | 描述 |
INNER JOIN | 表中有至少一个匹配,则返回行 |
LEFT JOIN |
即使右表中没有匹配,也从左表返回所有的行 |
RIGHT JOIN |
即使左表中没有匹配,也从右表中返回所有的行 |
SELECT column FROM table1 A INNER JOIN table2 B ON A.id=B.id
LEFT JOIN
SELECT column FROM table1 A LEFT JOIN table2 B ON A.id=B.id
RIGHT JOIN
SELECT column FROM table1 A RIGHT JOIN table2 B ON A.id=B.id
FULL OUTER JOIN
SELECT column FROM table1 A FULL OUTER JOIN table2 B ON A.id=B.id
排序和分页
/*============== 排序 ================
语法 : ORDER BY
ORDER BY 语句用于根据指定的列对结果集进行排序。
ORDER BY 语句默认按照ASC升序对记录进行排序。
如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。
*/
-- 查询 数据库结构-1 的所有考试结果(学号 学生姓名 科目名称 成绩)
-- 按成绩降序排序
SELECT s.studentno,studentname,subjectname,StudentResult
FROM student s
INNER JOIN result r
ON r.studentno = s.studentno
INNER JOIN `subject` sub
ON r.subjectno = sub.subjectno
WHERE subjectname='数据库结构-1'
ORDER BY StudentResult DESC
/*============== 分页 ================
语法 : SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset
好处 : (用户体验,网络传输,查询压力)
推导:
第一页 : limit 0,5
第二页 : limit 5,5
第三页 : limit 10,5
......
第N页 : limit (pageNo-1)*pageSzie,pageSzie
[pageNo:页码,pageSize:单页面显示条数]
*/
-- 每页显示5条数据
SELECT s.studentno,studentname,subjectname,StudentResult
FROM student s
INNER JOIN result r
ON r.studentno = s.studentno
INNER JOIN `subject` sub
ON r.subjectno = sub.subjectno
WHERE subjectname='数据库结构-1'
ORDER BY StudentResult DESC , studentno
LIMIT 0,5
以上是关于MySQL02--DMLDQL语言的主要内容,如果未能解决你的问题,请参考以下文章
连接MySQL出现错误:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)(代码片段