mysql入门--01运算符与多表查询

基本的SELECT语句

SQL的分类

  • DDL:数据定义语言;CREATE\ALTER\DROP\RENAME\TRUNCATE
  • DML:数据操作语言;INSERT\DELETE\UPDATE\SELECT
  • DCL:数据控制语言;COMMIT\ROLLBACK\SAVEPOINT\GRANT\REVOKE

SELECT语句

  • 基本查询为SELECT 字段名 FROM 表名 WHERE 查询条件
  • 字段名后面空一格可以给该字段取别名

运算符

比较运算符

  • =:等于
    • 用于判断是否相等
    • 数字与字符串比较,字符串会存在隐式转换,如果转换数值不成功会看作0
    • 只要有NULL参与运算结果就为NULL
  • <=>:安全等于
    • =的区别只有安全等于可以与NULL比较
  • A IS NULL:判断A是为空
  • A IS NOT NULL:判断A为非空
  • LEAST(a,b,c) \ GREATEST(a,b,c):得到a,b,c中最大 \ 最小值
  • BETWEEN num1 AND num2:查询范围在[num1,num2]的数据
  • IN(a,b,c)\NOT IN(a,b,c):查询在 \ 不在 a,b,c 里的数据
  • A LIKE B:模糊查询,用%来表示不确定个数的字符;_表示一个不确定的字符;\为转义字符
  • REGEXP:运用正则表达式匹配字符
    • ^:匹配以该字符后面的字符开头的字符串
    • $:匹配以该字符前面的字符结尾的字符串
    • .:匹配任何一个单字符
    • [...]:匹配在方括号内的任何字符
    • *:匹配零个或多个在它前面的字符

逻辑运算符

  • NOT 或 !:逻辑非
  • AND 或 &&:逻辑与
  • OR 或 ||:逻辑或
  • XOR:逻辑异或

排序与分页

  • ORDER BY A (DESC\ASC):按照A降序\升序排列,默认情况下是ASC升序排列
  • LIMIT 偏移量,数据条数
  • LIMIT (pageNo-1)*pageSize,pageSize:每页显示pageSize条记录,此时显示第pageNo页
  • LIMIT 12,3:则返回第13,14,15条数据

多表查询

内连接

  • A JOIN B ON C:将A与B按照条件C连接

外连接

  • A LEFT JOIN B ON C:将A与B按照条件C进行左外连接//右表内容可能会有有空
  • A RIGHT JOIN B ON C:将A与B按照条件C进行右外连接//左表内容可能会有空
  • A LEFT JOIN B ON C UNION A RIGHT JOIN B ON C :将A与B按照条件C进行全外连接//两表内容都有可能会有空

7种JOIN的实现

//内连接(A且B)
SELECT<select_list>
FROM TableA A
JOIN TableB B
ON A.Key=B.Key

//左外连接(A)
SELECT<select_list>
FROM TableA A
LEFT JOIN TableB B
ON A.Key=B.Key

//右外连接(B)
SELECT<select_list>
FROM TableA A
RIGHT JOIN TableB B
ON A.Key=B.Key

//A且非B
SELECT<select_list>
FROM TableA A
LEFT JOIN TableB B
ON A.Key=B.Key
WHERE B.Key IS NULL

//B且非A
SELECT<select_list>
FROM TableA A
RIGHT JOIN TableB B
ON A.Key=B.Key
WHERE A.Key IS NULL

//全外连接(A并B)
SELECT<select_list>
FROM TableA A
Union TableB B
ON A.Key=B.Key

//A并B且非A交B
SELECT<select_list>
FROM TableA A
LEFT JOIN TableB B
ON A.Key=B.Key
WHERE B.Key IS NULL
Union ALL
SELECT<select_list>
FROM TableA A
RIGHT JOIN TableB B
ON A.Key=B.Key
WHERE A.Key IS NULL

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值