mysql as用法_MySQL掌握篇

有了MySQL的入门,今天就可以进一步学习SQL啦!

目录:

(一)SQL查询语言

包括多表连接查询、SQL复杂查询等

(二)SQL定义和操作语言

包括数据库和数据表的创建、删除和修改,以及数据表的插入等

ede568fc5826612e23a4e528bc562ebf.png

(一)SQL查询语言

1.SQL多表连接查询

当查询结果的列来自多张不同的表时,需要将多张表连接成一张大的数据表,再选择合适的列返回。目前常用的连接类型有:左连接、右连接、内连接。

语法结构:

select 

(1)左连接(LEFT JOIN):以左表为基准,查询的结果为两个表匹配到的数据,左表特有的数据,对于右表中不存在的数据使用null填充;

  • 将两个学生表相连, 不满足连接条件的数据会以NULL填充
SELECT 

1e61f500f375260d160d1ce7a5c57484.png

(2)右连接(RIGHT JOIN):以右表为基准,查询的结果为两个表匹配到的数据,右表特有的数据,对于左表中不存在的数据使用null填充;

  • right join 右外连接查询 使用的比较少,将数据表名字互换位置,用left join完成

(3)内连接(INNER JOIN):查询的结果为两个表中共有的数据。

  • 将两个学生表使用INNER JOIN连接起来
SELECT 

89fd1a700c41d00fcade6a80e35998b2.png

具体可参考

草莓女孩:SQL中常见的面试题​zhuanlan.zhihu.com

2.SQL复杂查询

2.1 条件查询

(1)case when

语法结构:

case 

如获取有奖金的员工相关信息

select 

ab765c5d27f8c7f80cdcc9b9fca8eb89.png

(2)if

if适用于只有两种条件的情况,比如是、否

语法结构:

if

2.2 排序函数

排序函数常用的为row_number()rank()dense_rank()。

语法结构:

# 

(1)仅按照成绩进行排名

SELECT 

b66d4bede5f41aa4238d2665aabcad17.png

(2)按照课程号进行分组,然后再进行排序

SELECT 

59c10fe0588825ce3893741511331a98.png

关于row_number()rank()dense_rank()的区别可以看我之前总结的面试题中的窗口排序函数。

草莓女孩:SQL中常见的面试题​zhuanlan.zhihu.com

2.3 嵌套查询

语法结构:

select 

2.4 子查询

语法结构:

select 

举栗子:在student_course表中查询每门课成绩都不低于80的学生id

SELECT 

2.4 组合查询

语法结构:

select 

union和union all的区别在于:(1)union做去重处理,返回去重后的结果;(2)union all不做去重处理,返回所有。具体的内容可参考

草莓女孩:SQL中常见的面试题​zhuanlan.zhihu.com

(二)SQL定义和操作语言

1.创建数据库/表

1.1 创建数据库

语法结构:

create 

1.2 创建表

语法结构:

create 

举栗子

create 

关于主键和外键的知识,可以看

草莓女孩:SQL中常见的面试题​zhuanlan.zhihu.com
-- 查看表的创建语句

2.插入数据

2.1 普通插入数据

(1)插入一行

-- insert into 表名(字段1,字段2,字段3,...) values(值1,值2,值3,....)

(2)插入多行

-- insert into 表名(字段1,字段2,字段3,...) values(值1,值2,值3,....),(值1,值2,值3,....),(值1,值2,值3,....)

2.2 如果没有则插入,如果表中有数据,则忽略

insert 

2.3 如果不存在就插入,存在就更新

insert 

3.更新表内数据

语法结构:

-- update 表名 set 字段=新值 where 字段=旧值(更新的条件)

4.更新表结构

4.1 修改表名

-- alter table 旧表名 rename to/as 新表名

4.2 增加列

-- alter table 表名 add 列名 数据类型及约束

4.3 修改列

-- 修改表-修改字段类型:不重命名版

-- alter table 表名 modify 列名 类型及约束;

-- 修改表-修改字段名称:重命名版

-- alter table 表名 change 原列名 新列名 类型及约束;

4.4 删除列

-- alter table 表名 drop 列名

5.删除数据库/表/某列

5.1 删除数据库

-- drop database 数据库名;

5.2 删除表

-- drop table 表名;

5.3 清空表

-- truncate table 表名;

5.3 删除行

-- delete from 表名 where 条件;

5.5 delete和drop的区别

(1)delete删除表中的内容,不删除表;

(2)drop删除表或者数据库。

到这里,关于SQL的内容就学的差不多啦!第三篇主要以练习为主,加深大家对SQL的理解和应用。

tips:多练习、多刷题、多总结解题思路

码字不易,喜欢我 ,给我点赞哦!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值