欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SQL数据库Select语句的基本语法、条件查询

程序员文章站 2023-09-19 21:24:59
Select基本语句 基本语法: select 列名 from  表名 【例】从学生表(Student)中查询所有学生的学号 单列 select 学号 from  Stud...

Select基本语句

基本语法

select 列名 from  表名

【例】从学生表(Student)中查询所有学生的学号 单列

select 学号 from  Student

【例】查询课程表课程号、课程名、学分 多列用逗号“,”分隔符

select 课程号,课程名, 学分 from Course

【例】查询学生表(Student)中的所有信息 所有列用’ * ’ 代替

select  *  from  Student

当在select语句指定列的位置上使用*号时,表示选择表的所有列。

条件查询

【例】查询Student表中姓名为李明的相关信息 用where指明条件

select  * 
        from Student
        where 姓名=’李明’

【例】查询Student表中出生日期在1989-1-3以后的学生

select 姓名,出生日期
        from Student
        where 出生日期>’1989-1-3’

注:字符型或日期型的数据要用单引号引起来

and ,or

【例】查询Student表中学号为1101且姓名为李明的相关信息

select  * 
        from Student
        where 姓名=’李明’ and 学号=‘1101’

【例】查询Student表中姓名为李明或者学号为1101的相关信息

select  * 
        from Student
        where 姓名=’李明’ or 学号=‘1101’

between…and 在…范围之内

【例】查找总学分为60和70之间的学生所有信息

select * from Student where 总学分 between 60 and 70 --(大于60小于70)

【例】查找出生日期不在1980-8-26到1979-1-29的学生姓名

select 姓名,出生日期   from Student
   where出生日期 not between '1980-8-26 'and ‘1979-1- 29 ‘

* 注意时间的用法

in ==or

IN用于查找属性值属于指定集合的记录,与IN相对的谓词是NOT IN,in 关键字可以简化查询条件的书写

【例】查找分数为70和80的所有学生信息

use Grade
        select * from xs
        where 总学分 in(70,80) 

is关键字

在基本表中,如果那一列中没有输入数据,则它的值就为空,空值用一个特殊的数据NULL来表示,如果要判断某一列是否为空,不能用“=NULL”或“ <>NULL”来比较,只能用IS NULL或IS NOT NULL来运算

例:查询邮箱为空的学生记录

select * from Student 
where Email is null

distinct关键字

Distinct:从返回的结果数据集合中删除重复的行

【例】查询Grade数据库中Student表中的总学分,但是不能有重复的

use Grade
        select distinct 总学分
        from Student
        order by 总学分
        go

使用like子句进行模糊查询

like子句与通配符配合使用。Sqlserver提供4种通配符

1.%:表示任意字符

2. _:表示单个任意字符

3.[ ]:表示方括号里列出的任意一个字符.

4.[^]:表示任意一个没有在方括号里列出的字符.

基本语法:

select 字段名 from 目标表 where 字段名 like 条件

排序查询

order by排序:asc升;desc降

【例】查找学生的总学分以升序排列,出生日期以降序排列的学生姓名和学号

use Grade
        select  姓名,出生日期,总学分, 学号
        from Student
        order by 总学分 asc ,出生日期 desc

*以第一列为主序,再在第一列相等的基础上再对第二列排序;asc 默认,可省略

TOP关键字

top:关键字用于指定只返回前面一定数量的数据.

top n :表示返回最前面的n行.

【例】查询在Grade库中Student表中总学分最高的前5项的学生姓名

use Grade
         select top 5 总学分, 姓名   
         from Student
         order by 总学分 asc
         go

top. ..with ties 指定返回并列前N条记录

use northwind
select top 5 with ties orderid, productid, quantity
from [order details]
order by quantity desc
go

* with ties必须与order by连用