李优秀 发表于 2024-10-31 12:00:01

SQL 简朴查询

目录
一、投影查询
1、指定特定列查询
2、修改返回列名查询
3、计算值查询
二、选择查询
1、使用关系表达式
2、使用逻辑表达式
3、使用 BETWEEN关键字
4、使用 IN关键字
5、使用 LIKE关键字
6、使用 IS NULL/ NOT NULL关键字
7、符合条件查询
三、聚合函数查询
一、投影查询
   --  投影查询
SELECT   [ ALL | DISTINCT ]  [ TOP n [ PERCENT ] ]
{ * | { { column_name | expression | IDENTITYCOL | ROWGUIDCOL }
        [ [ AS ]  column_alias ] | column_alias = expression } [ , ... n ] }

--  ALL:指定返回全部记录,也包罗重复行,默认设置。面向的是表中的数据(行)。
--  DISTINCT:指定显示全部记录,但不包罗重复行。
--  TOP  n [ PERCENT ]:指定从查询效果中返回前 n行,或前 n%行。
--  * :表现全部列。
--  column_name:指定要返回的列名。
--  expression:是列名、常量、函数以及由运算符连接的列名、常量和函数的恣意组合,或者是子查询。
--  column_alias:使用 AS关键字来给返回会合的字段设置别名。
本文中将以下标为列。
门生表 student
https://i-blog.csdnimg.cn/direct/0fcff78e16e746a09687b48bf69829df.png
效果表 sc
https://i-blog.csdnimg.cn/direct/4636466b3a194d2d84f7285860fe026f.png
课程表 course
https://i-blog.csdnimg.cn/direct/295bb525994e4821a33cb4de059a0255.png
1、指定特定列查询

   --  查询 student表中的全部记录。
select  * from  student
--  返回 student表中的学号,姓名和性别。
select  sno,sname,ssex  from student
--  查看 student表中有哪些专业。
select  distinct(specialty)  from  student
--  查看 student表中的前 3行信息。
select  top  3 * from student
--  查看 student表中前 50%行的信息
select  top  50 percent  * from student
2、修改返回列名查询

在 SQL中,使用 AS关键字来修改返回会合的列名。
   --  返回 student表中全部门生的学号、姓名、性别信息,要求使用中文标题。
select  sno  as  学号,sname  as 姓名,ssex as  性别 from student

select  sno  as  '学号',sname  as '姓名',ssex as  '性别' from student

select  sno '学号',sname '姓名',ssex  '性别' from student

select  '学号' =  sno,  '姓名' = sname,  '性别' = ssex  from student
3、计算值查询

在 SQL中,经常会对查询到的数据举行再次计算。
   --  查询 sc表中的数据,并将成 sc表中的效果从100分制改成150分制。
select  sno,cno,'150分制' = score*1.50 from sc
二、选择查询

1、使用关系表达式

   常用的查询条件查询条件条件比力运算符=,>,<,>=,<=,!=,<>(不即是),!>,!<确定范围BETWEEN  AND,NOT  BETWEEN  AND确定聚集IN,NOT  IN字符匹配LIKE,NOT  LIKE空值IS  NULL,NOT  NULL多重条件 AND,OR,NOT
   --  查看 sc表中,效果大于即是80分的学号,课程号,效果。
select  sno,cno,score  from  sc
where score >= 80
2、使用逻辑表达式

   逻辑表达式逻辑运算符形貌NOT非,对表达式的否定。AND与,连接多个条件,全部的条件都建立时为真。OR 或,连接多个条件,只要有一个条件建立时,就为真。
   --  查看计算机专业的男生信息。
select  *  from student
where  ssex = '男'  and  specialty = '计算机'
--  查看计算机专业或男生的信息。
select  * from student
where specialty = '计算机' or ssex = '男'
3、使用 BETWEEN关键字

        在 SQL中,使用 BETWEEN关键字可以很方便地限定查询数据的范围。BEWTEEN表达式完全可以使用含有 >=和 <=的逻辑表达式来代替。使用 NOT  BETWEEN 表达式完全可以使用含有 >和 <的逻辑表达式来代替。
   语法格式
表达式  [ NOT ]  BETWEEN  表达式1  AND  表达式2
    --  查看效果在80 ~90之间的门生学号,课程号和效果。
select * from sc
where score >=80 and  score <= 90

select * from sc
where score between 80 and 90
--  查看效果不在80 ~90之间的门生学号,课程号和效果。
select * from sc
where  score not between 80 and 90
4、使用 IN关键字

        在 SQL中,使用 IN关键字,也是为了更方便地限定检索数据的范围。
   语法格式
表达式  [ NOT ]  IN  (表达式1,表达式2, ..., 表达式n)
    --  查看计算机专业 和通信工程专业的门生姓名,性别和专业。
select  sname,ssex,specialty  from  student
where  specialty  in ('计算机', '通信工程')
5、使用 LIKE关键字

        使用 LIKE关键字查询,又叫模糊查询,LIKE关键字搜刮与指定模式匹配的字符串、日期或时间值。字符串中可以包含 4种通配符的恣意组合。
   通配符通配符形貌%包含零个或多个字符的恣意字符串。_恣意单个字符。[ ]代表指定范围的单个字符,[ ] 中可以是单个字符(如 [ aceg ]),也可以是字符范围(如 [ a-g ])。[ ^ ]代表不在指定范围内的单个字符,[ ^ ] 中可以是单个字符,也可以是字符范围。   --  示例
like  'ac%':返回以 'ac' 开头的恣意字符串。
like  '%AB':返回以 'AB' 结尾的恣意字符串。
like  '%AC%':返回包含 'AC' 字符的恣意字符串。
like  '_ab%':返回包含 'ab' 结束的三个字符的字符串。
like  '[ ABC ]%':返回以 'A' ,'B', 'C' 开头的恣意字符串。
like  '[ A-Z ] ing%':返回4个字符串,结尾是 'ing',首字符是范围从 A到 Z。
like  'M [ ^ c]':返回以 M开始,且第二个字符不是 'c'的恣意长度的字符串。
    --  示例:查询 student表中张性的门生信息。
select  * from  student
where  sname  like '张%'
6、使用 IS NULL/ NOT NULL关键字

        在 WHERE子句中,不能使用比力运算符对空值举行判定,只能使用空值表达式来判定某个字段值是否为空。
   语法
表达式   IS  [ NOT ]  NULL
    --  示例:查看全部效果为空的门生的学号、课程号和效果。
select  sno,cno,score  from  sc
where  score  is  null
7、符合条件查询

        在 WHERE中,可以使用逻辑运算符把若干个搜刮条件合并起来,组合成复杂的符合搜刮条件。在一个 WHERE子句中,同时包含多个逻辑运算符时,其优先等级从高到底依次是:NOT、AND、OR。
   --  示例:查询 student表中,专业为计算机 和网络工程的女生的信息。
select  * from  student
where  ssex = '女'  and
( specialty = '计算机'  or specialty = '网络工程' )
三、聚合函数查询

        在 SQL中,提供了一系列聚合函数,这些函数把存储在数据库中的数据形貌为一个整体而不是一行行孤立的记录,通过使用这些函数可以实现数据聚集的汇总或是求平均值等各种运算。
   常用的聚合函数函数名形貌sum(列名)返回一个数字列的总和。avg(列名)对一个数据列计算平均值。min(列名)返回一个数字、字符串或日期列的最小值。max(列名)返回一个数字、字符串或日期列的最大值。count(列名)返回一个列的数据项数,条数。count(*)返回找到的函数         在 SELECT中子句中,可以使用聚合函数举行运算,运算效果作为新列出现在效果会合,但此列没有列名。在聚合运算的表达式中,可以包罗列名、常量以及由算术运算符连接起来的函数。
   --  示例:查看 sc表中效果的平均值,列标题为 ‘平均值’
select  '平均值' = avg(score)  from  sc
--  示例:查看 student表中专业个数。
select  '专业个数' = count( distinct  specialty)  from  student
--  示例:查看学号为 '201501001'的平均效果和最高效果。
select  avg(score),max(score)  from sc
where  sno = '201602001'
一样平常环境下,可以在两个地方使用聚合函数,即 SELECT子句 和 HAVING子句中。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: SQL 简朴查询