开篇
SQL查询语句总括:
select 字段名
from 表名
[where 条件表达式]
[group by 字段列表][having 条件表达式]
[order by 字段列表][asc/desc]
单表操练:
单表查询:
1 输出表中的所用的列select * from 表名
2 选择部分输出
select 列名1,列名2...列名n
from 表名
3 重命名输出的列名
第一中方式在字段名后,以空格作为分隔符,在写上需要输出的列名
第二种方式是在这两部分之间写上关键字“as”
select 列名1(空格)别名1,列名2 as 别名2
from 表名
4 去除重复记录
关键字 distinct
select distinct 列名
from 表名
这个列命就是可能出现重复的记录
5 使用where子句
where子句后边跟的是查询的时候是对表中数据的限制条件
select 列名1,列名2,...列名n
from 表名
where 限制条件
例子:
select namefrom student
where name='李华'
注:限制条件相应的写在where后边就好
等于(=):列名等于一个数或是一个字段
大于、小于(> 、<):一般和数字打交道
两者之间:(between A and B)也是和数字打交道求的是一个连续的范围
在...里面(in):表示不连续的范围
模糊查询(like)
通配符匹配
1 % 匹配多个字符
2 - 匹配单个字符
3 []匹配某个区域的数据
5 order by 子句
将查询的结果按照一定的顺序显示出来(一般和数字打交道)
select *
from 表名
order by age desc
姓名降序排列
多表操练
限制条件:表与表之间要有联系(多通过外键实现)
用作外键的最长用的就是利用不同的表相同的ID
例如:
select namefrom table1,table2
where table1.ID=table2.ID and name='李华'
前边的关联关系和后边的限制条件用and连接(多个限制条件就用多个and进行连接)
聚合数据
其实就是一些聚合函数(说白了就是数据库中已经封装好的一些函数的用法)
avg()对多个数值求平均值
sum()对多个数值求和
max()对多个数值求最大数
min()对多个数值求最小数
count()非空表达式的个数
count(*)返回所有记录个数
聚合表达式学的时候就在字段的位置
select avg(age),min(age)
from 表名
嵌套查询
在where子句的表达式汇总出现另一个查询的情况成为嵌套查询
注:也可以用于多个表的查询
例子:
select 列名1 ,列名2 from 表名1
where 列名1>
(select 列名1 from 表名2
where 列名n='字符串')
保存查询结果
select 输出表 into 新表名
from 列名
where 子句
总结:其实总的来说查询就是一句话
select 列名
from 表名
where 限制条件
group by 列名
order by 列名
书写查询语句的思路:
1 从那些表中选取满足条件的数据记录
2 输出是需要那些数据列
3 是否按照一定的次序输出