设为首页 加入收藏

TOP

学习SQL2005当中的例子(一)
2014-11-24 02:59:39 来源: 作者: 【 】 浏览:7
Tags:学习 SQL2005 当中 例子
/*例3-1 创建数据库表。*/
/*程序清单如下:*/
/*下面的例子将创建表S。*/
CREATE TABLE S
(
sno char(10) NOT NULL /*学号字段*/
CONSTRAINT PK_sno PRIMARY KEY CLUSTERED/*主键约束*/
CHECK (sno like 31300501[0-9][0-9])/*检查约束*/,
sname char(8) NULL, /*姓名字段*/
sex char(2) NULL, /*性别字段*/
age int NULL, /*年龄字段*/
dept varchar(20) NULL/*系别字段*/
)

/*例3-2 修改S表,增加一个班号列。*/
/*程序清单如下:*/
ALTER TABLE S
ADD
CLASS_NO CHAR(6)

/*例3-3 删除S表。*/
/*程序清单如下:*/
DROP table S

/*再执行例3-1*/
/*例3-4 在S表中插入一条学生记录(学号:S7;姓名:郑冬;性别:女;年龄:21;系别:计算机)。
*/
/*程序清单如下:*/
INSERT INTO S VALUES (3130050107,郑冬,女,21,计算机)

/*例3-5 创建SC表(学生选课表),并向SC表中插入一条选课记录 (3130050101, c1)。*/
/*程序清单如下:*/
CREATE TABLE SC
(
sno char(10) NOT NULL,
cno char(2) NULL, /*课程编号字段*/
score numeric(4,1) NULL /*成绩字段*/
)
Go
INSERT INTO SC (sno,cno) VALUES (3130050101, c1)
Go

/*例3-6 使用 column_list 及 VALUES 列表显式地指定将被插入每个列的值。*/
/*程序清单如下:*/
CREATE TABLE T1
( column_1 int,
column_2 varchar(30))
Go
INSERT T1 (column_2, column_1) VALUES (This is a test,1)

/*例3-7 求出各位学生的平均成绩,把结果存放在新表AVGSCORE中。
程序清单如下:*/
/*首先建立新表AVGSCORE,用来存放学号和学生的平均成绩。*/
CREATE TABLE AVGSCORE
(SNO CHAR(10),
AVGSCORE SMALLINT)
Go
/*利用子查询求出SC表中各位学生的平均成绩,把结果存放在新表AVGSCORE中。*/
INSERT INTO AVGSCORE
SELECT SNO,AVG(SCORE)
FROM SC
GROUP BY SNO

/*例3-9 将所有学生年龄增加1岁*/
/*程序清单如下:*/
UPDATE S SET AGE=AGE+1

/*例3-10 下面的示例修改 SalesPerson 表中的 SalesYTD 列,以反映 SalesOrderHeader 表中记录的
最近销售情况。*/
/*程序清单如下:*/
USE AdventureWorks;
GO
UPDATE Sales.SalesPerson SET SalesYTD = SalesYTD + SubTotal
FROM Sales.SalesPerson AS sp JOIN Sales.SalesOrderHeader AS so
ON sp.SalesPersonID = so.SalesPersonID
AND so.OrderDate = (SELECT MAX(OrderDate) FROM Sales.SalesOrderHeader
WHERE SalesPersonID = sp.SalesPersonID)

/*例3-11  将UPDATE语句与TOP子句一起使用,更新Employee 表中10个随机行的VacationHours 列,使
之变成原来的1.25倍。*/
/*程序清单如下:*/
USE AdventureWorks;
GO
UPDATE TOP (10) HumanResources.Employee
SET VacationHours = VacationHours * 1.25

/*例3-12 创建T表(教师基本情况表)的结构为T(TNO,TN,SEX,AGE,PROF,SAL,DEPT)分别表示教师的编
号,姓名,性别,年龄,职称,工资,系别。TC表(教师授课表)的结构为TC(TNO,CNO)分别表示教师的
编号,课程编号。*/

USE example
GO

CREATE TABLE t
(
TNO char(10) NOT NULL
CONSTRAINT PK_TNO PRIMARY KEY,/*教师编号字段*/
TN char(10) NULL,/*教师姓名字段*/
SEX char(2) NULL,/*教师性别字段*/
AGE int NULL,/*教师年龄字段*/
PROF char(20) NULL,/*教师职称字段*/
SAL int NULL,/*教师工资字段*/
DEPT char(10) NULL,/*教师所在系别字段*/
)
GO
INSERT INTO t VALUES(0001,张老师,男,41,副教授,2200,电力系)
GO
INSERT INTO t VALUES(0002,张益琳,女,32,讲师,1500,动力系)
GO

CREATE TABLE TC
(
TNO char(10) NOT NULL,/*教师编号字段*/
CNO char(10) NULL,/*教师执教课程字段*/
)
GO
INSERT INTO tc VALUES(0001,C5)
GO

/*把讲授C5课程的教师的工资增加100元。*/
/*程序清单如下:*/
UPDATE T SET SAL=SAL+100
WHERE TNO IN
(SELECT T.TNO FROM T,TC
WHERE T.TNO=TC.TNO AND TC.CNO=C5)
/*通过连接查询找到讲授C5课程的教师编号。*/

/*例3-13 把所有教师的工资提高到平均工资的1.2倍*/
/*程序清单如下:*/
UPDATE T SET SAL =(SELECT 1.2*AVG(SAL) FROM T)

/*例3-17 给用户 Mary 授予多个语句权限。*/
/*程序清单如下:*/
GRANT CREATE DATABASE, CREATE TABLE
TO Mary

/*例3-18 为用户ZhangYiLin授予CREATE TABLE的语句权限。*/
/*程序清单如下:*/
GRANT CREATE TABLE
TO ZhangYiLin

/*例3-19 在权限层次中授予对象权限。首先,给所有用户授予SELECT权限,然后,将特定的权限授予用
户Mary、John和Tom*/
/*程序清单如下:*/
GRANT SELECT
ON s /*需先创建s表*/
TO public
GO
GRANT INSERT, UPDATE, DELETE
ON s
TO Mary, John, Tom /*需首先创建用户Mary, John, Tom */
GO

/*例3-20 将查询T表和修改教师职称的权限授予USER3,并允许将此权限授予其他用户。*/
/*程序清单如下:*/
GRANT SE
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇SQL server--数据安全 下一篇《SQL Server》之数据库管理

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C++ 语言社区-CSDN社 (2025-12-24 17:48:24)
·CSDN问答专区社区-CS (2025-12-24 17:48:22)
·C++中`a = b = c`与` (2025-12-24 17:48:19)
·C语言结构体怎么直接 (2025-12-24 17:19:44)
·为什么指针作为c语言 (2025-12-24 17:19:41)