[Mysql]高阶语句

一.order by

按关键字排序
(1)语法
SELECT column1, column2, … FROM table_name ORDER BY column1, column2, …
ASC 是按照升序进行排序的,是默认的排序方式,即 ASC 可以省略。SELECT 语句中如果没有指定具体的排序方式,则默认按 ASC方式进行排序。
DESC 是按降序方式进 行排列。当然 ORDER BY 前面也可以使用 WHERE 子句对查询结果进一步过滤。

二.distinct

去重查询
语法:

select distinct 字段 from 表名﹔

三.计数(group by)

(1)语法
SELECT column_name, aggregate_function(column_name)FROM table_name WHERE column_name operator value GROUP BY column_name;

四.limit

limit 限制输出的结果记录
在使用 MySQL SELECT 语句进行查询时,结果集返回的是所有匹配的记录(行)。有时候仅 需要返回第一行或者前几行,这时候就需要用到 LIMIT 子句

(1)语法
SELECT column1, column2, … FROM table_name LIMIT [offset,] number

select id,name from info order by id desc limit 3;
#输出最后三行

五.alias(as)

在 MySQL 查询时,当表的名字比较长或者表内某些字段比较长时,为了方便书写或者 多次使用相同的表,可以给字段列或表设置别名。使用的时候直接使用别名,简洁明了,增强可读性

语法
对于列的别名:SELECT column_name AS alias_name FROM table_name;
对于表的别名:SELECT column_name(s) FROM table_name AS alias_name;

六.通配符

通配符主要用于替换字符串中的部分字符,通过部分字符的匹配将相关结果查询出来。

通常通配符都是跟 LIKE 一起使用的,并协同 WHERE 子句共同来完成查询任务。常用的通配符有两个,分别是:

%:百分号表示零个、一个或多个字符 *
_:下划线表示单个字符 .

七.子查询

子查询也被称作内查询或者嵌套查询,是指在一个查询语句里面还嵌套着另一个查询语 句。子查询语句是先于主查询语句被执行的,其结果作为外层的条件返回给主查询进行下一 步的查询过滤。

子语句中的sql语句是为了,最后过滤出一个结果集,用于主语句的判断条件

in: 将主表和子表关联/连接的语法
语法:<表达式> [NOT] IN <子查询>

八.视图

优化操作+安全方案
数据库中的虚拟表,这张虚拟表中不包含真实数据,只是做了真实数据的映射
视图是结果集,无法进行操作,和表中的真实数据不一样

语法:
create view 视图名字(数据) as select  表所对应的数据  from 对应表     where 条件判断;

修改表不能修改以函数、复合函数方式计算出来的字段
查询方便、安全性
查询方便:索引速度快、同时可以多表查询更为迅速(视图不保存真实数据,视图本质类似select)
安全性:我们实现登陆的账户是root ——》所拥有权限 ,视图无法显示完整的约束

九.null与空的区别

null值与空值的区别(空气与真空)
空值长度为0,不占空间,NULL值的长度为null,占用空间
is null无法判断空值
空值使用"=“或者”<>"来处理(!=)
count()计算时,NULL会忽略,空值会加入计算

十.连接查询

1.分类

1.1内连接

将几份表相同的部分列出来
内连查询:通过inner join 的方式将两张表指定的相同字段的记录行输出出来
语法
SELECT column_name(s)FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name;

1.2 左连接

SELECT column_name(s)FROM table1 LEFT JOIN table2 ON table1.column_name = table2.column_name;

左边作为主表全部显示,右边部分只显示两表相同的部分,其余地方用null值代替

1.3 右连接

和左连接相反
SELECT column_name(s)FROM table1 RIGHT JOIN table2 ON table1.column_name = table2.column_name;

右边作为主表全部显示,左边部分只显示两表相同的部分,其余地方用null值代替

十一.存储过程

类似脚本中的函数,给一段指令赋予新的名字,当调用该串命令时直接输入指令即可

1.存储过程优点

存储过程的优点:
(1)执行一次后,会将生成的二进制代码驻留缓冲区,提高执行效率
(2)SQL语句加上控制语句的集合,灵活性高
(3)在服务器端存储,客户端调用时,降低网络负载
(4)可多次重复被调用,可随时修改,不影响客户端调用
(5)可完成所有的数据库操作,也可控制数据库的信息访问权限

语法:

CREATE PROCEDURE <过程名> ( [过程参数[,…] ] ) <过程体>
[过程参数[,…] ] 格式
<过程名>:尽量避免与内置的函数或字段重名
<过程体>:语句
[ IN | OUT | INOUT ] <参数名><类型>

十二.总结

主要还是select 视图 存储过程 以及内外连接 select是基础中的基础 多加练习

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值