前言
什么是SQL?简单地说,SQL就是访问和处理关系数据库的计算机标准语言。也就是说,无论用什么编程语言(Java、Python、C++……)编写程序,只要涉及到操作关系数据库,比如,一个电商网站需要把用户和商品信息存入数据库,或者一个手机游戏需要把用户的道具、通关信息存入数据库,都必须通过SQL来完成。所以,现代程序离不开关系数据库,要使用关系数据库就必须掌握SQL。
初始SQL
MySQL背景
前身属于瑞典的一家公司,MySQL AB,08年被sun公司收购,09年sun被oracle收购。
MySQL的优点
1、开源、免费、成本低
2、性能高、移植性也好
3、体积小,便于安装
DQL语言详解
DQL语言指的是主要针对查询的语句,除此之外还有针对增删改的DML语句和关于库和表的定义的DDL语句。下面主要讲DQL语句:
一、基础查询
-
select 字段名 from 表名;
注意:字符型和日期型的常量值必须用单引号引起来,数值型不需要。 -
去重
select distinct 字段名 from 表名; -
“ +”
作用:做加法运算
select 数值+数值; 直接运算
select 字符+数值;先试图将字符转换成数值,如果转换成功,则继续运算;否则转换成0,再做运算
select null+值;结果都为null
二、条件查询
- 语法
select 字段名 from表名 where 筛选条件 - 基本的筛选条件:
< <> >= > <= != <=> &&and ||or !not - 模糊查询
like:一般搭配通配符使用,可以判断字符型或数值型
通配符:%任意多个字符,_任意单个字符
三、排序查询
- select 字段名 from表名 where 筛选条件 order by 排序条件【asc\desc】
- 排序列表 支持 单个字段、多个字段、函数、表达式、别名
四、常见函数
- 字符函数:
concat连接
substr截取子串
upper大写
lower 小写
replace 替换
length 获取字节长度
trim 去前后空格
lapd 左填充
rapd 右填充
instr 获取子串第一次出现的索引 - 数学函数
ceil 向上取整
round 四舍五入
mod 取模
floor 向下取整
truncate 截断
rand 获取随机数(0-1) - 日期函数
now 返回当前日期和时间
date_fromat 将日期转换成字符
curdate:返回当前日期,不包含时间
curtime: 返回时间,不包含日期
str_to_date:将字符转换成日期
curtime:返回当前时间
hour:小时
minute:分钟
second:秒
datediff:返回两个日期相差的天数
monthname:以英文形式返回月
五、分组查询 - select 分组函数,分组后的字段 from 表【where 筛选条件】group by 分组的字段【having 分组后的筛选】【order by 排序列表】
- 注意要筛选的表是哪一个!!!!