SELECT数据库查询
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
--2010_11_1 上课练习
--SELECT数据查询
USE Student
GO
--select基本用法
SELECT*FROM C-- * 即代表所有列
SELECT C#,CNAME,CREDIT,NOTE
FROM C
--查询的修改显示,但不会修改数据表的列名
SELECT S#学号,SNAME姓名,DEPARTNAME院系名称
FROM S
--查询时候调用函数,形成新列
SELECT SNAME,DATEDIFF(YEAR,SBIRTH,GETDATE())年龄FROM S
--使用CASE语句
SELECT S#,C#,GRADE,KIND=
CASE
WHEN GRADE>= 80 THEN'优秀'
WHEN GRADE>= 60 THEN'及格'
ELSE'不及格'
END
FROM SC
SELECT S#,C#,GRADE,
CASE
WHEN GRADE>= 80 THEN'优秀'
WHEN GRADE>= 60 THEN'及格'
ELSE'不及格'
END KIND
FROM SC
--取消重复元祖DISTINCT
SELECT S#FROM SC
SELECTDISTINCT S#FROM SC
-- 显示一个常量列(注意下面的5)
SELECT S#+1,C#, 5 常量列
FROM SC
-- select中的WHERE
SELECT S#学号,C#课程号,GRADE分数
FROM SC
WHERE GRADE< 60 AND C#=5
GO
--
SELECT S#学号,C#课程号,GRADE分数
FROM SC
WHERE (GRADE< 60 AND C#=5)
GO
-- 好玩一下~O(∩_∩)O~
SELECT NULL空列
FROM S
--模式匹配(关键字LIKE)
-- % 替代个或者多个字符
SELECT*FROM S
WHERE SNAME LIKE'王%'AND SSEX='男'
--[^...]不匹配集合中的任意一个字
--[...]匹配集合中的任意单个字符
SELECT*FROM S
-----------------------------------------------
WHERE SNAME LIKE'[^张]%'OR SNAME LIKE'[晨]'
GO
-----------------------------------------------
--试试看,说说下面的SQL语句是什么意思
SELECT*FROM S WHERE SNAME LIKE'王[建|亚]%'
SELECT*FROM S WHERE SNAME LIKE'王[^建|^亚]%'
SELECT*FROM S WHERE SNAME LIKE'王[^(建|亚)]%'
--以下的LTRIM函数,是在防止两个字的名字由于前面不下心加了空格而被认作个字符--类似的也会有RTRIM函数.
--两函数作用即删除前后空格
SELECT*FROM S
WHERE LEN(LTRIM(SNAME))=1
--结合运算COLUMN IN(...)
SELECT*FROM S
WHERE SNAME IN('王建国','张%')
GO