MySQL笔记

列的别名,也可以不用双引号,当别名比较特殊时,必须使用双引号

select user  as "用户" from student;

null值不等于0 并且可以参与运算, 任何值与null运算结果都为null,非要使用含有null值字段参与运算时使用IFNULL(字段名,0)

去除重复行,在需要去重的字段前加distinct去重,一般 单独 使用,后面子查询中也会用到

select distinct user  
from student;
为user字段去重示例

着重号``

表名为关键字时,使用``

查询常数

select '锅巴编程',name,age
from user

显示表结构

desc 表名;

过滤数据

where 过滤条件

算数运算符

在SQL中,+号没有连接的作用,就表示加法运算。如果有字母都按照数字0处理运算。 除运算,/ 的结果都为浮点型,不管能不能除净。保留后四位。

取模运算:% mod 结果的正负只与被模数有关,与模数无关。

比较运算符 =

排序 order by 升序 ASC 降序 DESC 位于SQL语句结尾

列的别名只能在order by 中使用,不能在where中使用

强调:where在from之后,order by之前

二级排序 order by 字段a desc,字段b asc 按照a降序,b升序

分页limit 0,5

not between 不在...之间 not between 2000 and 5000 不在2000到5000之间

练习 where email like '%e%' 邮箱包含e where email regexp '[e]'

多表查询 需要有连接条件 避免出现笛卡尔积

sql优化的角度,建议多表查询时,每个字段前都加上其所在的表

可以给表起别名 起别名后必须使用别名

如果有n个表连接查询,则需要至少n-1个连接条件 , 否则肯定会出现笛卡尔积错误

归纳式 : 总--分 直接给到,直接记忆 演绎式: 提出问题1--解决问题1,提出问题2--解决问题2...

多表查询的分类:角度1:等值连接--非等值连接 角度2:自连接--非自连接 角度3:内连接--外连接

自连接 :自己引用自己,自我引用

内连接 :只把逗号左边的表和逗号右边的表符合条件的一部分查出来,其他的都不要,就叫内连接。即

*结果集中不包含一个表与另一个表不匹配的行*

外连接:结果集包含了一个表与另一个表不匹配的行

分类 : 左外连接、右外连接、满外连接。

SQL99语法实现多表查询

内连接

select A.name,A.age,B.address,C.location
from A join B
on A.idCard = B.idCrad
jion C
on A.cityid=C.cityid

外连接

满外连接:满外连接的结果 = 左右表匹配的数据 + 左表没有匹配到的数据 + 右表没有匹配到的数据。

由于mysql不支持FULL JOIN,于是我们需要用 LEFT JOIN UNION RIGHT join代替。

union 的使用 合并查询的结果:可以将多条select语句之间使用union或union all关键字分隔。

语法:

select 字段名1,字段名2,...
from 表名1
union
select 字段名1,字段名2,...
from 表名2

说明:union操作符返回两个 查询的结果的并集,并去重!

union all 操作符 :返回查询两个结果的并集,不去重!

注意:union all执行效率高,但是不去重!union执行效率略低,但是去重!如果业务中不需要去重,或者已知结果无重复,尽量使用union all。

SQL99语法新特性1:自然连接natural :会自动查询两张表中所有相同的字段,然后进行等值连接

select a,b,c
from A jion B
on A.id = B.id
and C.id = B.id

select a,b,c
from A natural jion B

SQL99语法新特性2:using,指定属性连接 ,但是被连接的字段名称必须一样。

select a,b,c
from A jion B
on A.id = B.id

阿里巴巴规范:超过三个表禁止用join,因为效率会变差!

四舍五入

select ROUND(123.456,0),ROUND(123.456,-2),ROUND(123.456,3)
from DUAL

截断

select truncate(123.456,-1),TRUNCATE(123.456,2)
from
DUAL

posted @ 2022-06-23 20:33  锅巴编程  阅读(32)  评论(0编辑  收藏  举报