10--数据库基本查询
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
---掌握select 的基本语法
select 要查的信息(字段)
from 从什么地方来(一般是表)
where 符合的条件
go
---实例:查询xs中的所有信息
use xscj
go
select 学号,姓名,专业名,性别,出生时间,总学分,备注
from XS
go
select *
from xs
go
--实例:查询课程表课程号、课程名、学时、学分
select 课程号,课程名,学时,学分
from dbo.KC
go
--【实例】从学生表(xs)中查询所有学生的学号、姓名
--和专业名
select 学号,姓名,专业名
from dbo.XS
go
---掌握AS的用法
-【实例】从学生表(xs)中查询所有学生的学号、姓名
--和专业名给外国人看。
select 学号 as xuehao ,姓名 as xingming ,专业名 as zhuangyeming
from dbo.XS
go
---as 可以省略
select 学号 xuehao ,姓名 xingming ,专业名 zhuangyeming
from dbo.XS
go
------注意:::字符和日期 数据类型 必须加单引号:::
--【例】查询xs表中姓名为李明的相关信息
select *
from xs
where 姓名='李明'
go
----------------------------------------------
--模糊查询
-------------------------------------------
--yu语法
select 字段
from 表名
where 字段 like xx
---实例:查询xs表中姓张的学生的信息
select *
from xs
where 姓名 like '张%'
go
--实例:查询xs表中姓张或者王的学生的信息
select *
from xs
where 姓名 like '张%' or 姓名 like '王%'
go
--实例:查询xs表中姓张或者王或者李的学生的信息
select *
from xs
where 姓名 like '张%' or 姓名 like '王%' or 姓名 like '李%'
go
select *
from xs
where 姓名 like '[张王李]%'
go
--实例:查找姓名中带”燕“的学生的信息
select *
from dbo.XS
where 姓名 like '%燕%'
go
--实例:查询xs表中不姓张或者王或者李的学生的信息
select *
from xs
where 姓名 not like '张%' and 姓名 not like '王%' and 姓名 not like '李%'
go
select *
from xs
where 姓名 like '[^张王李]%'
go
========================
========================
注意:字符类型和时间类型的数据需加引号标识
========================
========================
1:基本查询格式
select 字段名1,字段名2,...字段名n
from 表名
where 条件
例子1:
--查询学生成绩数据库(xscj)学生情况表(xs)中的所有列。
select 学号,姓名,专业名,性别,出生时间,总学分,备注
from dbo.XS
go
----
select 姓名,学号,专业名,性别,出生时间,总学分,备注
from dbo.XS
go
---
select *
from xs
go
注意:* 代表所有列。
2:给字段取别名
【
例】在xscj数据库中的xs表中对姓名取别名为a
,专业名为b,总学分为c
select 姓名,专业名,总学分
from XS
go
select 姓名 as a,专业名 as b,总学分 as c
from XS
go
select 姓名 a,专业名 b,总学分 c
from XS
go
3:where用法
最基本格式
select 字段名
from 目标表
where 字段名=‘内容’
go
例子:
--查询xs表中姓名为李明的相关信息
select *
from dbo.XS
where 姓名='李明'
go
======================================练习:===========
1:查询kc表的基本信息
2:查询课程表课程号,课程名的信息
3:查询课程表课程号 ,课程名的信息,并且分别取别名
4:查询课程名为“英语”的课程信息。
---and or not 逻辑查询
/*
and 两边的条件都必须满足,才是满足条件的
or 两边的条件,任何一方满足,就是满足条件的
not 取反,
and or not 三者的优先级不一样,and最高,or次之,not最低
*/
--实例:将姓名以’王’开头或总学分为60,且专业名为计算机的学生姓名
use xscj
go
select 姓名,专业名,总学分
from dbo.XS
where (姓名 like '王%' or 总学分=60) and 专业名='计算机'
go
---实例:查找总学分在20-50之间的学生的信息
select *
from dbo.XS
where 总学分>=20 and 总学分<=50
go
select *
from dbo.XS
where 总学分 between 20 and 50
go
select *
from dbo.XS
where 总学分 not between 20 and 50
go
--查找出生日期不在1980-8-26到1979-1-29的学生姓名
select 姓名,出生时间
from dbo.XS
where 出生时间 not between '1979-1-29' and '1980-8-26'
go
--实例: 查找总学分是10,20,25,30,35,40,45,50,55的学生的信息
select *
from dbo.XS
where 总学分=10 or 总学分=20 or 总学分=25 or 总学分=30 or 总学分=35 or 总学分=40 or 总学分=45 or 总学分=50 or 总学分=55
go
select *
from dbo.XS
where 总学分 in (10,20,25,30,35,40,45,50,55)
go
----为空的用法
select *
from xs
go
--查询备注字段为空的学生的信息
select *
from xs
where 备注 is null
go
select *
from xs
where 备注 is not null
go
4:模糊查询:
基本格式
select 字段名
from 表名
where 字段名 like 条件
====
掌握--通配符
===
% 代表 多个字符
_ 代表 单个字符
[] 代表匹配指定范围中的字符
[^] 代表匹配不在指定范围内的字符
-------------------
例子:----%---
查找学生姓名以‘王’开头的所有学生信息--
select *
from xs
where 姓名 like '王%'
go
例子2----_-----
查找学生姓名以‘王’开头并且姓名为2个汉字的所有学生信息--
select *
from XS
where 姓名 like '王_'
go
例子3 ----[]------
查找学生姓名以’王’或’刘’或’ 李’开头
select *
from xs
where 姓名 like '[王刘李]%'
例子4 ----[^]------
查找学生姓名不以’王’或’刘’或’ 李’开头
select *
from xs
where 姓名 like '[^王刘李]%'
=========================
5:逻辑运算:and or not
and 连接的两边条件必须同时满足,才是满足。
or 连接的两边的条件只要1个满足,就是满足。
not 取反面。
---例子:查找姓张并且性别是男的学生。
select *
from XS
where 姓名 like '张%' and 性别=1
go
--将姓名以’王’开头或总学分为60,
---且专业名为计算机的学生姓名
select *
from xs
where (姓名 like '王%' or 总学分=60) and 专业名='计算机'
go
=================注意=====================
逻辑运算优先顺序:and 优先级最高,or次之,not的优先级最低
6:在什么范围之内---------------between and ------------
--查找总学分在10到50分之间的学生信息
select
7: 在使用where 子句进行查询时,若条件表达式中出现若干条件相同的情况,
就会使表达式显得冗长,不便于用户使用,这时可用in 关键字来简化.
---------------in------------------------
查找总学分是10,20,30,40,50,60,70的学生的信息。
select *
from xs
where 总学分=10 or 总学分=20 or 总学分=30 or 总学分=40 or 总学分=50 or 总学分=60 or 总学分=70
go
select *
from xs
where 总学分 in (10,20,30,40,50,60,70)
go
8:--------------is null--------
--例子:查找备注为空的学生
select *
from xs
where 备注 is null
go