SQL简介
全称:结构化查询语言
SQL的组成
》DML ---->数据操作语言
》DDL ---->数据定义语言
》DQL ---->数据查询语言
》DCL ---->数据控制语言
DQL语句:
语法:
select <列名|表达式|函数|常量>
from <表名>
[where <查询条件表达式>]
[order by <排序的列名>[ASC或DESC]]
示例:
1.查询所有数据
select * from student
2.查询地址是河南新乡的学生信息
select * from student where address='河南新乡';
3.查询地址不是河南新乡的学生信息
select * from student where address <> '河南新乡';
4.AS字句可以改变结果集中列的名称
select sName AS 姓名 from student ;
5.使用计算、合并得到新的列名
select firstName+'.'+lastName AS 姓名 from teacher;
6.查询空值
在SQL语句中采用“IS NULL”或者“IS NOT NULL”来判断是否为空
select * from student where address IS NULL;
7.在查询中使用常量列
select sName AS 姓名, address AS 地址, '北京新兴桥' AS 学校名称 from student;
常用函数:
》AVG() ---->返回某字段的平均值
》COUNT() ---->返回某字段的行数
》MAX() ---->返回某字段的最大值
》MIN() ---->返回某字段的最小值
》SUM() ---->返回某字段的和
字符串函数
》CONCAT(str1,str2) ---->连接字符串
》INSERT(str,pos,len,newStr) ---->将字符串str从pos位置开始,len个字符长的子串替换为newStr 注意:下标从1开始
》LOWER(str) ---->转化为小写
》UPPER(str) ---->转化为大写
》SUBSTRING(str,num,len) ---->返回字符串str的第num位置开始的长度为len的子字符串
时间日期函数
》CURDATE() ---->获取当前日期
》CURTIME() ---->获取当前时间
》NOW() ---->获取当前日期和时间
》WEEK(date) ---->返回日期date为一年中的第几周
》YEAR(date) ---->返回日期date的年份
》HOUR(time) ---->返回时间time的小时值
》MINYTE(time) ---->返回时间time的分钟值
》DATEDIFF(date1,date2) ---->返回日期参数之间的天数
》ADDDATE(date,n) ---->计算日期参数date加上n天后的日期
数学函数
》CEIL(x) ---->返回大于或等于数值x的最小整数
》FLOOR(x) ---->返回小于或等于数值x的最大整数
》RAND() ---->返回0~1之间的随机数
-----------------------------
ORDER BY 字句
按照一定的顺序排序查询语句选中的行
ASC(升序、默认)或DESC(降序)
-----------------------------
子查询
语法:
select .... from 表1 where 字段1 比较运算符 (子查询);
比较运算符:>、<、=、<=、>=、<>
注意:将子查询和比较运算符联合使用,必须保证返回的值不能多于一个。
IN 和 NOT IN 子查询
IN后面的子查询可以返回多条记录
语法:
select .... from 表1 where 字段1 IN (子查询);
EXISTS 和 NOT EXISTS 子查询(存在和不存在)
语法:
select .... from 表1 where 字段1 EXISTS (子查询);
子查询注意事项:
》子查询可以嵌套在SQL语句中任何表达式出现的位置
》只出现在子查询中而没有出现在父查询中的表不能包含在输出列中
--------------------------------------------
GROUP BY 分组查询
HAVING 字句进行分组筛选(对分组后的数据进行筛选,将“组”看作“列”来限定条件)
--------------------------------------------
多表连接查询
通过各个表之间共同列的关联性来查询数据
》内连接
根据表中共同的列来进行匹配(特别是两表之间存在主外键关联时)
INNER JOIN 表2 ON 条件
[where 筛选条件]
》外连接
至少返回一个表中的所有记录
>>左外连接 LEFT OUTER JOIN 表2 ON 条件
>>右外连接 RIGHT OUTER JOIN 表2 ON 条件