SQL是Structured Query Language(结构化查询语言)的缩写
SQL是操作关系数据库的标准语言
SQL功能强大、简单易学、使用方便
SQL作用:
数据定义:定义数据库、基本表、视图和索引
数据操纵:数据查询、插入、修改、删除
数据控制
这次我们只关注第二类
基本格式:
SELECT 目标表的列名或列表达式集合 FROM 基本表或(和)视图集合 [WHERE条件表达式] [GROUP BY列名集合 [HAVING组条件表达式]] [ORDER BY列名[集合]…]
有选择地查询某些字段:
Select 字段1,字段2,字段3,… from 表名
例:
Select 编号,姓名,性别,年龄 from 学生表
查询所有字段:
Select * from 表名
例:
Select * from 学生表
and 和or 的使用
Select * from 学生表 where 年龄>20 and 性别=‘男’
And 表示两个条件都要满足
Select * from 学生表 where 年龄>20 or 性别=‘男’
Or 表示两个条件只要满足其中一个
排序:Order by asc/desc
Select * from 学生表 where 性别=‘女’ order by 学号
选出所有女生并且按学号排序(升序,默认)
Select * from 学生表 where 性别=‘女’ order by 学号 asc
Select * from 学生表 where 性别=‘女’ order by 学号 desc
in 枚举
select * from 学生表 where 年龄 in(18,19,20)
In 前面加上not in,表示不在枚举范围:
比如查询18岁以外所有学生信息
select * from 学生表 where 年龄 not in(18)
多表查询
SELECT 学生表.姓名, 选课表.课程编号, 课程表.课程名称, 选课表.成绩
FROM 学生表 ,课程表 , 选课表
简单连接
连接查询在FROM子句中,用于将多个表按照一定的字段关系连接起来
语法是:
FROM <表1> <连接类型> JOIN <表2> ON <连接条件>
连接类型包括:内连接、外连接、交叉连接等
连接条件,往往是两个表之间的关联字段,一般是等值比较
多表连接
在实际应用中,参与连接的表可以不止两个,可以为多个
多表连接,一般是分部进行的,以内连接为例,语法如下
FROM <表1> INNER JOIN <表2> ON <条件> INNER JOIN <表3> ON <条件>
我们可以理解为先连接前两个,形成一个新表,然后新表再连接第三个表
聚集
一个聚集函数从多条记录计算出一个结果
count(数目), sum(和),avg(平均值), max(最大值)和min(最小值)
对行集合的特定域进行计算