SQL 语句积累

   最近在复习软考知识,在SQL数据库这一章,视频中讲了很多SQL语句。大部分都很熟悉,但是具体些的时候又会出错,还是写的少。下面,我一遍看,一遍尝试着自己写,再次复习了一遍。

接下来是以机房合作中的userInfo表为例,复习一下简答的sql语句。

一、查找某个范围内的数。

两种方法,用Between...and语句和简单的连接的大于小于语句。

<span style="font-family:KaiTi_GB2312;font-size:18px;">select * from T_userInfo where head between 2 and 5
select * from T_userInfo where head > =2 and head <5
</span>

二、字符匹配

 谓词like可以用来进行字符串的匹配,格式是:like,或者not like。含义是找到指定的属性列值与匹配串相匹配的元组。匹配串 可以是一个完整的字符串,也可以含有通配符% 和_。其中,%百分号:代表任意长度的字符串。例如a%b代表以a开头,以b结尾的任意长度。例如:ab、acb、addcb都满足该匹配串。

_下划线:代表任意单个字符。例如:a_b代表以a开头,b结尾的长度为3 的字符串。例如abc、adb均满足匹配串。

<span style="font-family:KaiTi_GB2312;font-size:18px;">--查询所有姓刘的学生的姓名、head
select userName,head from T_userInfo  where userName like '刘%'

-查询姓为栗且全名为三个汉字的姓名(一个汉字要占2个字符的位置)
select userName,head from T_userInfo  where userName like '栗__'

--查询第二个二为小的学生姓名
select username from T_userInfo where userName like '__振%' 

--查询所有不为刘学生姓名
select userName from T_userInfo where userName not like '刘%'
</span>

三、排序

降序用Desc,升序是ASC,默认是升序。

<span style="font-family:KaiTi_GB2312;font-size:18px;">--降序
select * from T_userInfo  order by head desc
--升序
select * from T_userInfo  order by head asc
</span>

四、查询记录总数、最大值最小值

<span style="font-family:KaiTi_GB2312;font-size:18px;">--查询表中多少条记录
select COUNT(*) from T_userInfo

 --计算一列(数值类型)值总和
select SUM(head) from T_userInfo 

--计算一列(数值类型)值的平均值
 select AVG(head) from T_userInfo

 --求一列中最大值
 select MAX(head) from T_userInfo

 --求一列中最小值
 select MIN(head) from T_userInfo</span>

五、group by having 字句

GroupBy语句从英文的字面上,理解是“根据(by)一定的规则进行分组(Group),它的作用是将一个数据集划分为若干个小的区域,然后对小的区域进行数据处理.,group by是先排序,然后分组.。having 函数需要跟聚合函数一块使用。having 和where 类似,与where的唯一区别,当查询语句中有聚合函数时候,就不能够使用where了,只能够使用having。

下面是一张表,我以它为例,说一些group by 的一些用法。参考博客:博客链接


                                           

<span style="font-family:KaiTi_GB2312;font-size:18px;">--计算出每组的数量
select type,SUM(num) as 数量之和 from test group by type

--条件是大于10的类型
select TYPE,SUM(num) as 数量之和 from Test group by TYPE having SUM(num) >10

</span>
<span style="font-family:KaiTi_GB2312;font-size:18px;">--评选三好学生,条件是至少两门课程在90分以上才能够有资格,列出所有有资格的学生号以及90分以上的课程数。
select sno,count(*) from sc where grade>=90 by sno having count(grade)>=2 

select head,count(*)from T_userInfo group by head having COUNT(*)>1
</span>

总结:

 知道是知道了,熟练的运用还要在实践中不断的扎实。再次看软考,其实觉得也没有多少难点,重要的到是基础知识占了很大部分。基础知道扎实了,通过其实so easy,也不会再因为1分2分打擦边球了。






 


评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值