文章目录
一.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是基础中的基础 多加练习