SQL基础5-数据库的条件语句

本文是数据库基础系列的第四篇,主要介绍SQL中进行条件查询的代码和概念,涉及结构类型、约束条件等内容,帮助读者理解如何在SQL中筛选所需数据。

第四篇##
数据库的基础数据代码本方将分为10个短文发布,此为第四篇,讲述了SQL条件查询的一些常用代码和对应分析,包括结构类型、约束条件等:

-查询操作符:
	1、in:看字段值在不在数据表中和数据集中。
	2、any:查询结果集中的任何一个值。
	3、all:查询结果集中的每一个值。
	4、exists:测试子查询结果集中有没有记录。
	5、[not]between...and...:测试字段在不在给定的两个值中间。
	6、is [not] null:测试字段是不是空值。
	7、[not]like:测试自段值是否与给定的字符模式匹配。
	8、AND:测试条件1与测试条件2是否都满足要求
	9、or:测试条件1与测试条件2其中一个是否满足要求。
	10、not:测试条件是否不满足要求。

-distinct:用来操作重复记录
		select distinct s_id from fruits;
-where总的子查询:
	子查询:写在()中把内层查询结果当做外层查询参数的数据表来用
	例1:用in操作符与子查询语句来查询所有f_id 对应的f_price在10到20之间的水果记录。
	select * from fruits where f_id in
							(select f_id from fruits where f_price between 10 and 20);
    例2:用any操作符和子查询语句来查询所有f_id对应的f_price在10到20之间的水果记录。
 	select * from fruits where f_id = any
 							(select f_id from fruits where f_price between 10 and 20);
 	例3:用all操作符与子查询语句来查询所有价格大于20的记录。
	select * from fruits where f_id > all
 							(select f_id from fruits where f_price <20);
 	例4:用exists操作符与子查询语句来查询是否存在f_price大于30元的水果记录
 	select * from fruits where f_id exists
 							(select f_id from fruits where f_price > 30);

-as:可以将表重命名,只在查询中有效。
	select f.* from fruits as f;
-limit:查询后只显示limit指定数字的行数结果。
	select * from fruits
		order by f_price desc
		limit 3;

-常用的数学函数:(主要用于处理数字值)
abs(x):返回x的绝对值。
bin(x):返回x的二进制(oct返回x的8进制,hex返回x的16进制)。
exp(x):返回值e的(自然对数的底)的x次方。
greatest(x1,x2,....,xn):返回集合中最大的值。
least(x1,x2,....,xn):返回集合中最小的值。
ln(x):返回x的自然对数。
log(x,y):返回x的以y为底的对数。
mod(x,y):返回x/y的余数。
pi():返回圆周率值。
rand():返回0到1内的随机值,可以通过提供一个参数(种子)是rand()随机数生成器生成一个指定的值。
floor(x):返回小于x的最大整数值,去掉小数取整。
geiling(x):返回大于x的最小整数值,进一取整。
round(x,y):返回参数x的四舍五入的有y位小数的值,(四舍五入)。
truncate(x,y):返回数字x截短为y位小数的结果。
sign(x):返回数字x的符号的值(正数返回1,负数返回-1,0返回0)。
sqrt:返回一个数的平方根。



-字符串函数:主要用于处理字符串值。
ascll(char):返回字符的ascll码值。
bit_length(str):返回字符串的比特长度。
concat(s1,s2,...,sn):将s1,s2,...,sn连接成字符串。
concat_ws(sep,s1,s2,...,sn):将s1,s2,...sn连接成字符串,并用sep字符分隔。
insert(str,x,y,instr):将字符串从第x个位置开始,y个字符长的子串替换为字符串instr,返回结果。
find_in_set(str,list):分析逗号间隔的list列表,如果发现str,返回str在list中的位置。
lcase(str)或lower(str):返回字符串str中所有字符改变为小写后的结果。
ucase(str)或upper(str):返回将字符串str中所有字符改变为大写后的结果。
left(str,x):返回字符串str中最左边的x个字符。
right(str,x):返回字符串str中最右边的x个字符。
length(str):返回字符串str的字符数。
position(substr,str):返回字符串substr在字符串str中第一次出现的位置。
quote(str):用反斜杠转义str中的单引号。
repeat(str,srchstr,rplctr):返回字符串str重复x次的结果。
reverse(str)返回颠倒字符串str的结果。
ltrim(str):去掉字符串str开头的空格。
rtrim(str):去掉字符串str结尾的空格。
trim(str):去除字符串首部和尾部的所有空格。


-日期函数:
date_format(date,fmt):依照指定的fmt格式格式化日期值。
from_unixtime(ts,fmt):依照指定的fmt格式,格式化unix时间戳ts。
monthname(date):返回date的月份名(英语月份:october)。
dayname(date):返回date的星期名(英语星期几:saturday)。
now():返回当前日期和时间。
curdate()和current_date():返回当前日期。
curtime()或current_time():返回当前的时间。
quarter(date):返回date一年中的季度。
week(date):返回一周年中的第几周(0~53周)。
dayofyear(date):返回date是一年中的第几天(1~366)。
dayofmonth(date):返回date是一个月的第几天(1~31)。
dayofweek(date):返回的date是一周中的第几天(1~7)。
year(date):返回日期date的年份。
month(date):返回日期date的月份。
day(date):返回日期date的天数部分。
hour(time):返回的time的小时值。
minute(time):返回的time的分钟值。
second(time):返回的time的秒数值。
date(datetime):返回的datetime的日期值。
time(datetime):返回的datetime的时间值。


-其他函数:
group_concat:返回由属于一组的列值连接组合而成的结果。常与关键字group_by一起使用,能够将分组后指定的字段值都显示出来。
例:使用group_concat函数查询不同s_id下对应的所有f_name信息
select s_id, group_concat(f_name) from fruits
					group by s_id;
cast:将一个值转换成指定的数据类型。


-为字段赋值update...set和删除记录delete:
	例:使用concat函数在f_name字段值前添加‘fruits_’信息
	update fruits set f_name = concat('fruit_',f_name);
	delete:删除数据表中的数据,语法为delete from 表名 [where clause],如果省略where的话则删除表中所有数据记录
	例:删除f_id为'b5'的数据记录
	delete from fruits where f_id='b5';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值