数据库学习纪要(十八):MySQL简介-2

18、基本查询语句
SELECT 属性列表
FROM 表名和视图列表
[WHERE 条件表达式1]
[GROUP BY 属性名1 [HAVING 条件表达式2]]
[ORDER BY 属性名2 [ASC|DESC]]

1)使用“*”查询所有字段
2)WHERE 条件表达式
3)[NOT] IN (元素1,元素2,...)
4)[NOT] BETWEEN 取值1 AND 取值2
5)[NOT] LIKE '字符串'
6)IS [NOT] NULL
7)条件表达式1 AND 条件表达式2
8)条件表达式1 OR 条件表达式2
9)ORDER BY 属性名 [ASC|DESC] //排序
10)GROUP BY 属性名 [HAVING 条件表达式] [WITH ROLLUP]
11)用LIMIT限制查询结果的数量
12)使用集合函数查询COUNT()/SUM()/AVG()/MAX()和MIN()

19、连接查询
1)内链接:当两个表中存在表示相同意义的字段时,可以通过该字段来连接这两个表
2)外连接:包括左连接查询和右连接查询
SELECT 属性名列表
FROM 表名1 LEFT|RIGHT JOIN 表名2
ON 表名1.属性名1 = 表名2.属性名2;

20、子查询
子查询是将一个查询语句嵌套在另一个查询语句中,内层查询语句的查询结果,可以为外层查询语句提供查询条件。
1)带IN关键字的子查询
一个查询语句的条件可能落在另一个SELECT语句的查询结果中,这可以通过IN关键字来判断。
2)带比较运算符的子查询
比较运算符包括=、!=、>、>=、<、<=、<>
3)带EXISTS关键字的子查询
使用EXISTS关键字时,内层查询语句不返回查询的记录,而是返回一个真假值。
4)带ANY关键字的子查询
使用ANY关键字时,只要满足内层查询语句返回的结果中的任意一个,就可以通过该条件来执行外层查询语句。
5)带ALL关键字的子查询
使用ALL关键字时,只有满足内层查询语句返回的所有结果,才可以执行外层查询语句。
6)合并查询结果
合并查询结果是将多个SELECT语句的查询结果合并到一起,进行合并操作使用UNION和UNION ALL关键字。
SELECT语句1
UNION | UNION ALL
SELECT语句2
UNION | UNION ALL
SELECT语句n;

21、使用正则表达式查询
MySQL中,使用REGEXP关键字来匹配查询正则表达式。
属性名 REGEXP '匹配方式'
1)查询以特定字符或字符串开头的记录
使用字符“^”可以匹配以特定字符或字符串开头的记录
例:从info表name字段中查询以字母“L”开头的记录:
SELECT * FROM info 
WHERE name REGEXP '^L';

2)查询以特定字符或字符串结尾的记录
使用字符“$”可以匹配以特定字符或字符串结尾的记录。
例:从info表name字段中查询以字母“c”结尾的记录:
SELECT * FROM info
WHERE name REGEXP 'c$';

3)使用符号“.”来代替字符串中的任意一个字符
例:从info表name字段中查询以字母“L”开头,以字母“y”结尾,中间有两个任意字符的记录:
SELECT * FROM info
WHERE name REGEXP '^L..y$';

4)匹配指定字符中的任意一个
使用方括号([])可以将需要查询字符组成一个字符集,例如通过“[abc]”可以查询包含a、b、c这三个字母中任何一个的记录。

5)匹配指定字符以外的字符
使用“[^字符集合]”可以匹配指定字符以外的字符。
SELECT * FROM info
WHERE name REGEXP '[^a-w0-9]';

6)匹配指定字符串
正则表达式可以匹配字符串,当表中的记录包含这个字符串时,就可以将该记录查询出来。如果指定多个字符串时,需要用符号“|”隔开。只要匹配这些字符串中的任意一个即可。

7)使用“*”和“+”来匹配多个字符
正则表达式中,“*”和“+”都可以匹配多个该符号之前的字符。但是“+”至少表示一个字符,而“*”可以表示零个字符。

8)使用{M}或者{M,N}来指定字符串连续出现的次数
“ab{2}”表示字符串“ab”连续出现2次,“ab{2,4}”表示字符串“ab”连续出现至少2次,最多4次。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值