没有合适的资源?快使用搜索试试~ 我知道了~
sqlserver语句精华DOC
4星 · 超过85%的资源 需积分: 3 2 下载量 30 浏览量
2010-10-08
22:42:20
上传
评论 3
收藏 108KB DOC 举报
温馨提示
试读
26页
一个初学sqlserver数据库最好的学习文档。
资源推荐
资源详情
资源评论
【例 1-1】查询 XSCJ 数据库中所有学生基本信息。
使用查询分析器实现这个查询的具体步骤如下:
① 依照本章 1.3.1 节中介绍的方法登录到服务器,打开查询分析器窗口,如图 1-26 所示。
② 在查询编辑窗口中用户可以输入 SQL 语句如下:
USE XSCJ
GO
SELECT * FROM 学生基本信息表
GO
例 1-2】查询学生成绩信息。
在查询分析器中运行如下命令:
USE XSCJ
GO
SELECT * FROM 成绩表
GO
【例 1-2】查询 pubs 示例数据库中 authors 表的信息。
USE pubs
GO
SELECT * FROM authors
GO
【例 2-1】在数据库 XSCJ 中定义一个长度为 12 的字符串类型变量@student,对该变量进行
赋值,并且查询出“学生基本信息表“中该变量所指定姓名的学生信息。
在查询分析器中运行如下命令:
USE XSCJ
GO
DECLARE @student CHAR(12)
SET @student = '王倩倩'
SELECT * FROM 学生基本信息表 WHERE 姓名 = @student
【例 2-2】在数据库 XSCJ 中定义两个日期时间类型的变量@max_csrq、@min_csrq,分别
用于查询“学生基本信息表”中“出生日期”的最大值、最小值。
USE XSCJ
GO
DECLARE @max_csrq DATETIME , @min_csrq DATETIME
SELECT @max_csrq=MAX(出生日期),@min_csrq=MIN(出生日期) FROM 学生基本信息表
PRINT @max_csrq
PRINT @min_csrq
【例 2-3】计算 XSCJ 数据库中“学生基本信息表”的总行数。
USE XSCJ
GO
SELECT COUNT(*) AS '学生总人数' FROM 学生基本信息表
GO
【例 2-4】计算 XSCJ 数据库中课程编号为 003 的课程总成绩和平均成绩。
USE XSCJ
GO
SELECT SUM(成绩) AS '课程总分',AVG(成绩) AS '课程平均分'
FROM 成绩表
WHERE 课程编号='003'
GO
【例 2-5】在成绩表中查询课程编号为 003 的课程的最高分和最低分。
USE XSCJ
GO
SELECT MAX(成绩) AS '最高分',MIN(成绩) AS '最低分'
FROM 成绩表
WHERE 课程编号='003'
GO
【例 2-6】分别输出 2 的 3 次幂、-1 的绝对值、2 的平方、3.14 的整数部分。
PRINT POWER(2,3)
PRINT ABS(-1)
PRINT SQUARE(2)
PRINT FLOOR(3.14)
GO
【例 2-7】使用 LEN 函数显示字符串常量以及字符串变量的长度。
提示:LEN 函数用于计算字符串中所包含的字符个数,如果字符串尾部含有空格则会被忽
略。
PRINT LEN('computer department')
DECLARE @s1 char(10)
DECLARE @s2 char(10)
SET @s1 = 'welcome'
SET @s2 = 'hellow '
PRINT LEN(@s1)
PRINT LEN(@s2)
【例 2-8】给定一个字符串’have a good time’,判断字符’g’在整个字符串中的位置。
提示:CHARINDEX 函数用于在规定字符串中对子字符串进行查询。当返回值大于零时表
示子字符串的起始位置,返回值为 0 时表明没有查询结果。
DECLARE @s CHAR(20)
SET @s ='have a good time'
PRINT CHARINDEX('g',@s)
【例 2-9】获取系统时间信息,在查询分析器中分别显示系统时间中的年份、月份以及日期。
提示:GETDATE 函数用于返回当前的系统时间,YEAR,MONTH,DAY 函数可以取得时
间中的年、月、日的数值。
在查询分析器中运行如下命令:
DECLARE @xtsj DATETIME
SET @xtsj = GETDATE()
SELECT YEAR(@xtsj)
SELECT MONTH(@xtsj)
SELECT DAY(@xtsj)
【例 2-10】通过对“学生基本信息表”中的“出生日期”字段进行计算,查询每一位学生的年龄。
提示:利用 DATEDIFF 函数可以计算出两个日期之间的距离,该函数含有三个参数,第一
个参数通常可以为 yy(年)或 mm(月)或 dd(日),若第一个参数为 yy 时,该函数返
回值为后两个日期参数之间年份的差距。在本例中,当前的日期由 GETDATE 函数获得后,
计算与每一位学生的出生日期之间年份的差距,从而获得学生的年龄并在查询结果中显示。
SELECT 学号,姓名,DATEDIFF(yy,出生日期,GETDATE()) from 学生基本信息表
【例 2-11】查询“学生基本信息表”中的学号、姓名、年龄,并且将这三个字段通过“+”运算
符进行连结显示在查询结果中。
提示:由于计算学生年龄的结果为整数,而学号、姓名均为字符串类型的值,因而在运算
之 前 , 需 要 将 年 龄 的 计 算 结 果 转 化 为 字 符 串 , 即 CAST(DATEDIFF(yy , 出 生 日 期 ,
GETDATE()) AS CHAR(2))。
SELECT 学号+姓名+'年龄:'+CAST(DATEDIFF(yy,出生日期,GETDATE()) AS CHAR(2))
FROM 学生基本信息表
【例 2-12】将常量 3.14 分别转换为整数类型以及字符串类型并且输出结果。
PRINT CONVERT(INTEGER,3.14)
PRINT CONVERT(CHAR(4),3.14)
【例 2-13】取得系统当前时间,并且将其转化为 mm/dd/yyyy 格式的字符串并且显示结果。
提示;由于 mm/dd/yyyy 格式所对应的参数为 101,所以在使用 CONVERT 函数时,日期格
式样式参数设定为 101。
DECLARE @xtsj DATETIME
SET @xtsj = GETDATE()
PRINT CONVERT(CHAR(50),@xtsj,101)
【例 2-14】显示 XSCJ 数据库信息。
sp_helpdb XSCJ
【例 2-15】创建一个名称为 somename 的数据库,利用 sp_renamedb 存储过程将该数据库重
命名为 newname
CREATE DATABASE somename
GO
sp_renamedb 'somename','newname'
GO
【例 2-16】显示超级用户 dbo 的用户信息。
sp_helpuser dbo
【例 2-17】在系统中添加一个名为 test、密码为 1234 的登录帐号。
sp_addlogin test,1234
【例 2-18】在 SQL Server 中添加一个名称为 test 的用户。
sp_addlogin test
GO
sp_adduser test
GO
【例 2-19】删除名称为 test 的用户。
sp_dropuser test
【例 2-20】添加一个名为 myrole 的角色,并将 test 用户加入该角色中。
sp_addrole myrole
GO
sp_addmember myrole , test
GO
【例 2-21】删除已有的角色 myrole。
sp_droprole myrole
【例 2-22】执行批处理程序,依次查询系部表、系部总数、班级表、班级总数。
USE XSCJ
GO
SELECT * FROM 系部表
SELECT COUNT(*) FROM 系部表
SELECT * FROM 班级表
SELECT COUNT(*) FROM 班级表
GO
【例 2-23】在“学生基本信息表”中查询班级编号为 20041001 的班级中是否有党员。要求:
如果有党员则显示党员的人数,否则,提示该班级没有党员。
USE XSCJ
GO
IF (SELECT COUNT(*) FROM 学生基本信息表 WHERE 班级编号 = '20041001' AND 政治面
貌 = '党员') > 0
BEGIN
DECLARE @dy INTEGER
SELECT @dy = COUNT(*) FROM 学生基本信息表 WHERE 班级编号 = '20041001' AND
政治面貌 = '党员'
PRINT '党员的人数为:'
PRINT @dy
END
ELSE
PRINT '该班级没有党员'
【例 2-24】根据系统时间判断当前日期所对应的星期值并且输出结果。
DECLARE @dt DATETIME
SET @dt = DATEPART(w,GETDATE())
SELECT
CASE @dt
WHEN 1 THEN '星期天'
WHEN 2 THEN '星期一'
WHEN 3 THEN '星期二'
WHEN 4 THEN '星期三'
WHEN 5 THEN '星期四'
WHEN 6 THEN '星期五'
WHEN 7 THEN '星期六'
END
【例 2-25】取得系统时间,并且判断当前时间在一天中所处的时间段,并且在查询分析器
中输出提示信息。
DECLARE @sj DATETIME
SET @sj = DATEPART(hh,GETDATE())
SELECT
剩余25页未读,继续阅读
资源评论
- 伯牙碎琴2011-09-24材料还和一就是里面有好多乱码,还是本来就这样呢???
gengyongzeng
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功