SQL数据库基础三

MySQL笔记

1.limit语法

MySQL不支持top语法,那么在查询前xx条记录时应该怎么办呢?
limit可以很好的解决这个问题。

1.查询前10条记录

select * from table limit 10;

2.查询第11到50的40条的记录

select * from table limit 10,40;

3.查询后10条记录

select * from table 
order by id desc limit 10;

4.查询倒数第2到倒数第10的9条记录

select * from table 
order by id desc limit 1,9;
注意:limit的格式为 limit m,n。
m为查询记录的起始位置(从0开始),n为要查询的记录个数。当从头部或者尾部开始查询时,m为0,可以省略不写。而很多情况下,不会有明确的需求告知要查询多少条记录,而只给出需要查询从xx到xx的记录,所以在查询之前一定要清楚需要查询的记录条数,尤其是倒序查询时。

2.like语法

语法效果
'A%' 以A开头的
'%A' 以A结尾的
'%A%' 包含A的
'_A%' 第二个字符为A的
'_AB%' 第二个字符为A且第三个字符为B的
'2_%_%' 以2开头且长度至少为3的
'_2%3' 第二个字符为2且以3结尾的
'A%B' 以A开头并且以B结尾的

3.通配符

语法效果
'[ABC]%' 以A或B或C开头的
'[!ABC]%' 不以A或B或C开头的

4.写SQL语句的一般顺序

SELECT(字段)
FROM(表名)
WHERE(条件)
GROUP BY(分组表法师)
HAVING(分组条件)
ORDER BY(排序 默认为升序ASC,降序DESC)

5.子查询

1.any,some关键字

例如:
table1表中有(1), (5),(13),(27)四个值
table2表中有(6),(14),(11),(20)四个值

返回number1中任意大于number2的值

select number1 from table1
where number1 > any(select number2 from table2)

结果返回13,27

2.all关键字

返回number1中全部大于number2的值

select number1 from table1
where number1 > all(select number2 from table2)

结果返回27

3.exists关键字

查询suppliers表中是否存在s_id=107的供应商,若存在,则返回fruits表中的记录

select * from fruits
where exists(select s_name from suppliers where s_id=107)

只要内层查询语句返回至少一行数据,即返回true

4.in关键字

内层查询的结果集为外层查询的一个条件

5.比较运算符

“>”,"<","=",">=","<=","!="

6.合并结果集

合并结果集可以用union或union all连接两个单独的查询语句
区别:
union all:单纯的将两个(或多个)查询结果合并到一起,不去重,故效率高
union:去重复

7.as取别名

select s_name as 学生姓名 from student;

注:
1.as可以省略不写
2.as后面的别名不需要加’ ’
3.当表名取as后,返回结果中不会显示,只会显示新的字段别名

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值