SQL基础

SQL中"+"是运算符,若想连接字符串,需用concat(str1,str2,…)。若拼接参数中有NULL,则拼接结果为NULL。可使用IFNULL(可能为NULL的字段,若是NULL则返回的值)。

条件运算符:>,<,=,<>,>=,<=;逻辑运算符:&&,||,!或and,or,not;模糊查询:like,between and,in,is null.

通配符:%(任意多个字符),_(任意单个字符)。若想要匹配的字符为通配符,需使用转义字符。有两种用法:

1.select * from table where field like '__$_%' escape '$';#随意指定一个转义字符
2.select * from table where field like '__\_%'#使用转义字符

in 关键字的范围列表中的数据必须是同种类型的或者兼容的,而且不能使用通配符,因为判断原则是=而不是like。

=、<>不能判断NULL,需使用is、is not或者安全等与:<=>。二者特性如下:
is、is not:只能判断NULL,不能判断其他值,可读性高。
安全等于<=>:既可以判断NULL,又可以判断普通数值,可读性低。

函数:类似于Java的方法,将一组逻辑语句封装在方法体中,对外暴露方法名。好处:隐藏了实现细节,提高代码重用性。
调用:select 函数名(实参列表) from 表;
分类:
1.单行函数,如concat、length、ifnull等:传入一个值,返回一个值。
2.分组函数,用于统计,又称统计函数、聚集函数、组函数:传入一组值,返回一个值。
字符函数:

length()#获取参数的字节个数。
concat()#拼接字符串
upper()#字符串变大写、lower()字符串变小写。
substr(str,n)或substring(str,n)#截取str从第n个字符起的子串,str下标从1开始。
substr(str,start,len)#截取str从第start个字符起,长度为len的子串。
instr(str,substr)#返回子串第一次出现的索引,若找不到,返回0。
trim(str)#去除str的前后空格。
trim(char from str)#去除str中的前后字符char。
Lpad(str,n,char)#用指定字符char左填充指定长度n的str。
Rpad(str,n,char)#用指定字符char右填充指定长度n的str。
replace(str,oriStr,desStr)#用desStr替换str中的所有的oriStr。

数字函数:

round(num)#四舍五入
round(num,n)#四舍五入,小数点后保留n位
CEIL(num)#向上取整,返回>=num的最小整数
FLOOR(num)#向下取整,返回<=num的最大整数
truncate(num,n)#截取到num小数点后的第n位
mod(a,b)#等价于a%b(计算方法:a-a/b*b)
rand()#返回0到1之间的随机数,左闭右开

日期函数:

now()#返回当前系统日期+时间
current_date()#返回当前系统日期
current_time()#返回当前系统时间
year\month\day\hour\minute\second(str)#f返回str的年、月、日、时、分、秒
str_to_date(str,format)#把str转换成指定format的日期
date_format(date,format)#将日期转换成指定format的字符
datediff(date1,date2)#返回两个日期之间相差的天数(date1-date2)

日期时间格式参照表:
在这里插入图片描述
其他函数:

version()#当前版本
database()#当前数据库
user()#当前用户
password(str)#返回str的加密形式

流程控制函数:

if(条件,str1,str2)#与三元运算符用法一致
#case的用法1:
case 要判断的字段或表达式
when 常量1 then 要显示的值1或语句1;
when 常量2 then 要显示的值2或语句2;
...
else 要显示的值n或语句n;
end
#case的用法2:
case 
when 条件1 then 要显示的值1或语句1;
when 条件2 then 要显示的值2或语句2;
...
else 要显示的值n或语句n;
end
#case两种用法的区别:第一种是等值判断,第二种是区间判断。

分组函数:和分组函数一同查询的字段通常为group by后的字段。
分组函数的筛选条件分为两类:
1.分组前筛选:数据源是原始表,条件位于group by的前面。
2.分组后筛选:数据源是分组后的结果集,条件位于group by的后面。
分组函数做条件一定是位于having子句中。
sum、avg一般处理数值型,忽略空值。
max、min、count可以处理任何类型,忽略空值。
count(*)用来统计表的总行数。

子查询:
在这里插入图片描述在这里插入图片描述
分页查询:
在这里插入图片描述
联合查询:
在这里插入图片描述
删除数据:
在这里插入图片描述
修改数据库的字符集:alter database name character set gbk\utf-8;

创建表:
在这里插入图片描述

修改表:
在这里插入图片描述在这里插入图片描述
复制表:
在这里插入图片描述
复制表的某些字段结构:
在这里插入图片描述
数据类型:
1.整形:
关键字unsigned:无正负符号。
关键字zerofill:左边可以填充0,默认无正负符号。
在这里插入图片描述2.小数:
在这里插入图片描述
在这里插入图片描述字符类型:
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述char:固定长度的字符类型。
varchar:可变长度的字符类型。

枚举类型:
在这里插入图片描述
c1字段只能插入’a’,‘b’,'c’中的任意一个。

集合类型:
在这里插入图片描述在这里插入图片描述日期类型:
在这里插入图片描述datetime和timestamp的区别:
在这里插入图片描述约束:
在这里插入图片描述外键的特点:
在这里插入图片描述
约束的分类:
1.列级约束:外键不支持列级约束。
2.表级约束:非空、默认值不支持表级约束。
在这里插入图片描述
创建约束的时机:
1.创建表时:
添加列级约束:
在这里插入图片描述添加表级约束:
在这里插入图片描述
2.修改表时:
在这里插入图片描述删除约束:
在这里插入图片描述标识列(自增长列):
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值