MySql的DDL和DML和DQL的基本语法

目录

MySql中的SQL语句分类

DDL语句操作数据库

DDL语句对库的操作

DDL语句对库中表的操作

DML语句的基本语法

数据增加(INSERT语句)

数据修改(UPDATE语句) 

数据删除(DELETE语句)

delete truncate drop 区别

DQL基本语句的基本语法(单表)

DQL高级语句的基本语法(多表)

子查询 

where 型子查询

from型子查询 

exists型子查询

 流程控制函数语句(特殊查询)


MySql中的SQL语句分类

SQL语句,即结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,是一 种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统,同时也是数据库 脚本文件的扩展名。

DDL语句操作数据库

DDL语句对库的操作

  • 创建数据库

  •  查看所有的数据库

         • 注意不要省略“s”

  •  删除数据库

  •  选择使用哪一个数据库

DDL语句对库中表的操作

  • 查看库中的表

  • 创建表 

例如: 

 

  •  查看创建的数据表结构

  •  修改表名

  • 修改表中的字段

  • 删除表中的字段

  • 添加表中的字段

  • 删除表

 

DML语句的基本语法

数据增加(INSERT语句)

        关键字INSERT,主要功能是给数据库表增加记录。

  •  语法:

 例如:

  •  选择字段进行插入数据

  •  全字段插入数据

        注意:全字段插入时,如果主键自增,要设置默认值,可以用default / null

  •   一次性插入多条数据

      不常用的新增方式

数据修改(UPDATE语句) 

        关键字是UPDATE,主要功能是修改数据库表中已有的记录。可以根据条件去做修改。

  • 语法

例如:

      注意:修改必须要有where子句条件,不加where条件指的是修改全部

数据删除(DELETE语句)

        关键字是DELETE,主要功能室删除数据库表中已有的记录。可以依照条件去做删除。

  • 语法

 例如:

         注意:删除必须要有where子句条件,不加where条件指的是删除全部

  • truncate 清空表 

 

delete truncate drop 区别

  • delete:只删除表中数据,保留索引,不会改变表结构
  • truncate:删除表中的数据+索引(重置索引),不会改变表结构
  • drop:删除表中的所有并且删除表结构(表没了)

DQL基本语句的基本语法(单表)

        关键字是SELECT,主要功能是查询数据库表中已有的记录。

  • 语法

 例如: 

  • 表别名和字段别名

  1. 方式一:字段名后添加 as+别名
  2. 方式二:字段名后添加别名用引号包裹
  3. 方式三:字段名后直接添加别名不使用引号

  • 去除重复 distinct 

 去掉SELECT查询返回的记录结果中重复的记录(所有返回列的值都相同),只返回一条

  • WHERE条件子句

  1. WHERE条件子句不是必须的;
  2. WHERE子句,可以给查询增加条件;
  3. 条件:为筛选条件,如不指定则修改该表的所有数据。

  •  LIKE 关键字(模糊查询)

  •  IN 关键字(范围查询)

  1. 查询的字段的值,至少与IN 后的括号中的一个值相同;
  2. 多个值之间用英文逗号隔开。

  •  NULL 值查询

  1. NULL代表“无值”;
  2. 区别于零值0和空符串;
  3. 只能出现在定义允许为NULL的字段;
  4. 须使用 IS NULL 或 IS NOT NULL 比较操作符去比较。

 DQL高级语句的基本语法(多表)

 

  • 等值查询(内联查询)和非等值查询

  1. 与单表查询类似,都是SELECT语句;
  2. 把多个表放到FROM后,并用逗号隔开;
  3. 可使用AS关键字取别名,便于引用;
  4. 如无重名查询字段则可省略数据表的指定。

 

  • 内联查询(inner join)

语法:SELECT * FROM 表1 INNER JOIN 表2 ON 条件

INNER JOIN:在表中至少一个匹配时,则返回记录。

 INNER JOIN举例: 

 

  •  外联查询(left join/right join)

语法:SELECT * FROM 表1 LEFT| RIGHTJOIN  表2 ON

LEFT JOIN:从左表(表1)中返回所有的记录,即便在右 (表2)中没有匹配的行。

RIGHT JOIN:从右表(table_2)中返回所有的记录,即便 在左(table_1)中没有匹配的行。 

如下图例所示:

 

 LEFT JOIN举例:

 RIGHT JOIN举例:

 

  • 求两个查询的并集(UNION) 

union是求两个查询的并集。

union合并的是结果集,不区分来自于哪一张表,所以可以合并多张表查询出来的数据。

注意:

  1. 列名不一致时,会以第一张表的表头为准,并对其栏目。
  2. union 会将重复的行过滤掉。
  3. 如果查询的表的列数量不相等时,会报错。
  4. 在每个子句中的排序是没有意义的,mysql在进行合并的时候会忽略掉。
  5. 如果子句中的排序和limit进行结合是有意义的。
  6. 可以对合并后的整表进行排序。
  7. union all 是求两个查询的并集,但是不会把重复的过滤掉,而是全部显示出来

 

子查询 

子查询,又叫内部查询,所有的子查询必须用小括号括起来

 

where 型子查询

 

from型子查询 

  • 把内层的查询结果当成临时表,供外层sql再次查询。
  • 查询结果集可以当成表看待。
  • 临时表要使用一个别名。

 

 exists型子查询

  • 把外层sql的结果,拿到内层sql去测试,如果内层的sql成立,则该行取出。
  • 内层查询是exists后的查询。

 

 流程控制函数语句(特殊查询)

 

  •  IF()函数

  •    IFNULL()函数

 

  • 简单case

 

  • 搜索case

 

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值