MySQL02--DMLDQL语言

Posted 东边日出西边雨zZ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL02--DMLDQL语言相关的知识,希望对你有一定的参考价值。

数据库的意义:数据存储、数据管理

管理数据库方法: Navicat 工具、 DML 语言
一、DML语言:数据操作语言
  • 用于操作数据库对象中所包含的数据

  • 包括:

          INSERT( 添加数据语句 )
          UPDATE( 更新数据语句 )
          DELETE( 删除数据语句 )
添加数据(INSERT)
INSERT INTO `数据表名`[(`字段1`,`字段2`,`字段3`)] VALUES ('值1','值2','值3')
注意:
  • 字段和值之间用英文逗号隔开

  • `字段1,字段2...` 该部分可省略 , 但添加的值务必与表结构,数据列,顺序相对应,且数量一致

  • 可同时插入多条数据 , values 后用英文逗号隔开

修改数据(UPDATE)
UPDATE `数据表名` SET `字段` = '值' [WHERE condition]
注意:
  • 字段为要更改的数据列

  • 值为修改后的数据 , 可以为变量 , 具体值 , 表达式或者嵌套的SELECT结果

  • condition 为筛选条件 , 如不指定则修改该表的所有列数据

删除数据(DELETE)
DELETE FROM `数据表名` [WHERE condition]
注意: condition 为筛选条件,如不指定则删除数据表列所有数据
清空数据(TRUNCATE)
TRUNCATE [table] table_name
作用:用于完全清空表数据 , 但表结构 , 索引 , 约束等不变
注意:与 DELETE 区别
  • 相同:都是删除数据,不删除表结构,但TRUNCATE速度更快

  • 不同:使用TRUNCATE table 会重置Auto_increment计数器;TRUNCATE不会对事务有影响。

二、DQL语言:数据查询语言
查询数据库数据,如 SELECT 语句
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}] --指定查询的记录从哪条到哪条
注意: [ ] 代表可选的, { } 代表必选的
 AS子句作为别名
  • 可给查询的数据列作为别名

  • 可给数据表作为别名

  • 可给计算出的数据结果作为别名

  DISTINCT关键字
作用:去掉 SELECT 查询出的重复结果,只保留一个结果
  WHERE关键字
作用:用于检索数据表中符合 condition 条件的记录, condition 可为一个或多个逻辑表达式
模糊查询:比较操作符
操作符名称 语法 描述

IS NULL

a IS NULL

若操作符为NULL,则结果为真

IS NOT NULL

a IS NOT NULL

若操作符不为NULL,则结果为真

BETWEEN

a BETWEEN b AND c

a范围在bc之间,则结果为真

LIKE

a LIKE b

SQL模式匹配,若a匹配b,则结果为真

IN

a IN (a1,a2,a3,…)

a等于a1,a2….中的某一个,则结果为真

连接查询
JOIN对比:
操作符名称 描述
INNER JOIN 表中有至少一个匹配,则返回行

LEFT JOIN

即使右表中没有匹配,也从左表返回所有的行

RIGHT JOIN

即使左表中没有匹配,也从右表中返回所有的行

INNER JOIN

SELECT column FROM table1 A INNER JOIN table2 B ON  A.id=B.id

LEFT JOIN

MySQL02--DML、DQL语言

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,StudentResultFROM student sINNER JOIN result rON r.studentno = s.studentnoINNER JOIN `subject` subON r.subjectno = sub.subjectnoWHERE 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,StudentResultFROM student sINNER JOIN result rON r.studentno = s.studentnoINNER JOIN `subject` subON r.subjectno = sub.subjectnoWHERE subjectname='数据库结构-1'ORDER BY StudentResult DESC , studentnoLIMIT 0,5


以上是关于MySQL02--DMLDQL语言的主要内容,如果未能解决你的问题,请参考以下文章

使用 Pygments 检测代码片段的编程语言

部分代码片段

linux中怎么查看mysql数据库版本

从mysql的片段中加载ListView

连接MySQL出现错误:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)(代码片段

使用 json rereiver php mysql 在片段中填充列表视图