MySQL之查询

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 条件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值