本文章介绍了mysql的一些查询语句,对于判断方面的知识不在赘述
mysql有关查询的语句分别有
SELECT
FROM (ON)
WHERE
GROUP BY
HAVING
ORDER BY (ASC|DESC)
一般来说执行顺序也是上面所写
下面将分别解释每个语句的使用方法,带*的为必写语句
SELECT*
select中文意思为选择,即为从表中选择处列以显示(输出),用法如下
SELECT [列名],[列名],[列名]
SELECT后必跟着要显示(输出)的列名,输出多个列名需以“,”分
标题 .分别查询学生表和学生修课表中的全部数据。
–1.分别查询学生表和学生修课表中的全部数据。
SELECT * FROM student–查询学生表
SELECT * FROM course–查询课程表
–2.查询成绩在70到80分之间的学生的学号、课程号和成绩。
SELECT Sno 学号,Cno 课程号,Grade 成绩
FROM SC
WHERE Grade BETWEEN 70 AND 80
–3.查询C01号课程成绩最高的分数
SELECT TOP 1 Grade
FROM SC
SQL的ORDER BY 关键字,INSERT INTO语句,UPDATE语句,DELETE语句
ORSER BY 关键字
ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。默认为升序,如果想要降序排列,需要DESC关键字
ORDER BY的语法
SELECT column_name,column_name
FROM table_name
ORDER BY column_name,column_name ASC|DESC;
注:ASC为升序,DESC为降序
例子依然是老师给的虚
排序查询按单个字段排序按表达式 / 别名排序按函数排序按多个字段排序
排序查询:SELECT 查询列表 FROM 表 WHERE 筛选条件 ORDER BY 排序列表(ASC/DESC)
AEC/DESC = 升序/降序,默认为升序
ORDER BY 支持单个字段、多个字段、表达式、函数、别名
按单个字段排序
#1. 查询员工信息,要求工资从高到低排序
SELECT *
FROM employees
ORDER BY salary DESC
#2. 查询部门编号大于等于90的员工信息,按入职时间
什么是降序索引
大家可能对索引比较熟悉,而对降序索引比较陌生,事实上降序索引是索引的子集。
我们通常使用下面的语句来创建一个索引:
create index idx_t1_bcd on t1(b,c,d);
上面sql的意思是在t1表中,针对b,c,d三个字段创建一个联合索引。
但是大家不知道的是,上面这个sql实际上和下面的这个sql是等价的:
create index idx_t1_bcd on t1(b asc,c asc,d asc);
asc表示的是升序,使用这种语法创建出来的索引
如下所示:
from 表
where 条件
group by 字段
形成虚拟的表及字段,聚合及字段添加
having 筛选数据
distinct 去重
order by 字段 asc,desc
limit 限制条数
select 罗列记录
先根据where 约束条件 将数据从表中加载到内存,所以where的条件作用在数据之前,然后根据字段进行分组,在内存中形成一张虚拟的表包含字段,
如果此时有聚合函数则先执行聚合函数,并将聚合函数字段也加到虚拟的表中,接着进行having记录筛选,筛选完成后对数
密钥密码
'''
如密钥短语密码为: university -> universty
明文: abcdefghijklmnopqrstuvwxyz
密文:jklmopqwxzuniverstyabcdfgh
'''
构造映射字典
# 构造映射 asc ---> crypt
def dic(x):
list_x =[]
list_z = []
for i in x:
list_x.append(ord(i))
for i in ran