mysql排序语句 升序_mysql基础语句——增、删、查、改、聚合、排序

一、数据库操作1、创建数据库

create datebase 数据库名

2、选择数据库
在创建好了数据库之后要记得选择数据库,不然在新建查询的时候会出现问题。

use 数据库名

3、删除数据库

drop 数据库名

二、数据表

students表

61f8839bebcba80a2577c9ff44c57b09.png


teacher表

cb4d628c37ffb1d8ed6f81ee7dfc02b1.png

1、创建数据表
主键是id

create table teacher(
id int PRIMARY key auto_increment,
name varchar(20),
class int not null
)

2、删除数据表

drop table 数据表名

3、往数据库增加数据(增)

这里要注意,就是如果默认就全部的数据都添加的话,students后面的(id,name,class,score) 就可以不需要,但是如果只有添加一部分数据,比如只想添加id和name,其他为空的话,就必须在students后面加上(id,name)

INSERT into students(id,name,class,score) values
(2,"李四",2,344),
(3,"王五",2,244),
(4,"李四",2,325);

4、删除数据(删)

DELETE from students where id=4

5、查找数据(查)

#查找数据表里面所有的数据
select * from students
SELECT name from students where grade=(SELECT max(grade) from students)

6、修改数据(改)

update students set teacher="陈老师" where id=1
update students set teacher="李老师" where id=2
update students set teacher="小布老师" where id=3

三、查询

1、where
后面为条件

update students set class=4 where id=4;
SELECT name from teacher 
where class = (SELECT class from students where name="张三")

2、order by(排序)

#desc表示降序,去掉出现的是升序的效果
SELECT * from students order by grade,class desc

3、group by (分组)
根据一个或者多个列对结果集进行分组
在分组上,我们可以使用count、sum、AVG等函数(建议自己百度group by进行详细学习,分组后数据的组合)

组合到一起的数据求总和

select name,sum(grade) from students GROUP BY class

4、JOIN

两个表格的字段
INNER JOIN ,内连接:获取两个表中字段匹配的关系记录
LEFT JOIN:左连接,获取左表中的全部数据,根据左表的数据与右表进行配对
RIGHT JOIN :又连接,获取右表的全部暑假,根据右表的数据与左表进行配对

举例:
下面两个表tb1,和tb2

c2884b03af95d82c5d391df655e9cac4.png

5aa89f6705bc3b1642a5e4ca1956c468.png


INNER JOIN :
两边都配对的数据选择出来

SELECT * from tb1 INNER JOIN tb2 on tb1.id=tb2.id

a35e5d58682490a1fb26767d570a32fb.png


LEFT JOIN :

SELECT * from tb1 left JOIN tb2 on tb1.id=tb2.id

按照左表的id进行排列,把左表的都选择出来,右表没有适合的配对就默认空值

745551591b02a5564e144d536df2003e.png


RIGHT JOIN:

SELECT * from tb1 right JOIN tb2 on tb1.id=tb2.id

右边的全部显示出来,左边多余的部分就不选择出来

4ddc981dd4de891d43c347dc7e961c57.png

四、字段操作

五、函数数值:
ABS(数值):绝对值
MOD(被除数,除数):求余
ROUND(数值,保留的小数位数):四舍五入

字符串:
字符串1||字符串2:拼接
LENGTH(字符串):字符串长度
LOWER(字符串):小写转换
UPPER(字符串):大写转换
REPLACE(字符串,替换前字符串,替换后字符串)
SUBSTRING(字符串 from 截取的起始位置 for 截取的字符数):字符串的截取

日期函数:
CURRENT_DATE:当前日期
CURRENT_TIMESTAMP:当前日期和时间

六、谓词
LIKE、BETWEEN、IS NULL 、IS NOT NULL、IN

1、LIKE——字符串的部分一致查询
可分为前方一致、中间一致和后方一致三种类型

#后方包含有ddd的字符串
select * from tb1 
where str1 like '%ddd'
#前方包含有ddd的字符串
select * from tb1 
where str1 like 'ddd%'
#中间包含有ddd的字符串
select * from tb1 
where str1 like '%ddd%'

2、BETWEEN——范围查询

select * from tb1 where hai between 100 and 1000

3、IS NULL /IS NOT NULL ——判断是否为NULL

select * from tb1 where hai is null

4、IN、NOT IN

select * from tb1 where hai IN(320,500,5000)

七、表的加法

1、UNION(并集)
将 表上下进行连接
下面为tb1

b32c8a69e73708884995e512d4234be4.png


下面为tb2

848e4e33ef98747de2dbef7a7c9271eb.png

将两个表进行并集,就会得到下面的结果,但是重复的部分会被消除掉,不会显示出来

SELECT id,name from tb1
union 
SELECT id,name from tb2

1d10effed3efc4a31842da0427c6c7c8.png

如果想要重复的部分也显示出来的话,可以加上ALL

SELECT id,name from tb1
union ALL
SELECT id,name from tb2

904a6fa317dc8ebeebafbe90e6fee9c4.png
  • 1
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值