社区
VB
帖子详情
如何得到一个表的列的在sqlsever中数据类型?
booming
2005-03-08 06:04:10
如何得到一个表的列的在sqlsever中数据类型?
yDs.Tables(0).Rows(0).Item(0).GetType().ToString()??
好像不对。
在sql中我是Chars类型。但这里返回System.string
...全文
44
3
打赏
收藏
如何得到一个表的列的在sqlsever中数据类型?
如何得到一个表的列的在sqlsever中数据类型? yDs.Tables(0).Rows(0).Item(0).GetType().ToString()?? 好像不对。 在sql中我是Chars类型。但这里返回System.string
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hamadou
2005-03-09
打赏
举报
回复
数据库中的数据类型和.net中的数据类型不是一一对应的。是有些区别的。
booming
2005-03-08
打赏
举报
回复
如何通过 DataSet得到?
Night_Elf
2005-03-08
打赏
举报
回复
select C.name as Columnname,O.Name as Tablename,S.name as typename,S.Length from dbo.syscolumns C
Inner Join dbo.systypes s On C.xtype=s.xtype
inner Join dbo.sysobjects O On O.id=C.id
where O.name='表名' and C.name='列名'
SQL
s
eve
r 实训
SQL
s
eve
r 2008 Rar! ?s X
sql ?<9--2018年3月9日 --1.查询course
表
的所有信息(所有行所有
列
) USE Xk GO SELECT * FROM Course --有哪些种类的选修课?学分是多少 USE XK GO SELECT Kind,Credit FROM Crouse GO 修改
列
名字 SELECT '课程种类'=Kind,'学分'=Credit FROM Course GO --查询Course
表
的前10行 SELECT TOP 10 * FROM Course GO --查询Course
表
的前10%行 USE Xk GO SELECT TOP 10 PERCENT * FROM Course GO ㄚt 扚 ? ? h2=C蚅0! 17240671-13.3实训.
sql
[?灜?
sql
?`?-2018.4.18 USE master GO --单元五 创建于管理数据库 --创建数据库Sale CREATE DATABASE sale ON PRIMARY (NAME=sale, FILENAME='C:\\sale.mdf', SIZE=4MB, MAXSIZE=20MB, FILEGROWTH=1MB ) LOG ON (NAME=sale_log, FILENAME='C:\\sale_log.ldf', SIZE=10MB, MAXSIZE=20MB, FILEGROWTH=1MB) GO --向数据库增加文件组UserGroup ALTER DATABASE sale ADD FILEGROUP UserGroup GO ALTER DATABASE sale ADD FILE (NAME='sale_data3', FILENAME='D:\\sale_data3.ndf', SIZE=5MB, MAXSIZE=10MB, FILEGROWTH=1MB ) TO FILEGROUP UserGroup GO sp_help sale GO USE master GO -- 单元六 创建于管理数据
表
--创建客户
表
结构Customer CREATE TABLE Customer (CusNO nvarchar(3) NOT NULL, CusName nvarchar(10), Address nvarchar(20)NOT NULL, Tel nvarchar(20) NOT NULL) GO --创建场品
表
结构Product CREATE TABLE Product (ProNO nvarchar(5) NOT NULL, ProName nvarchar(20)NOT NULL, Price Decimal(8,2) NOT NULL, Stocks Decimal(6,0) NOT NULL) GO --创建入库
表
结构Proln CREATE TABLE Proln (InputDate DateTime NOT NULL, ProNo nvarchar(5) NOT NULL, Quantity Decimal(6,0) NOT NULL) GO --创建销售
表
结构Proout CREATE TABLE Proout (SaleDate DateTime NOT NULL, CusNo nvarchar(3) NOT NULL, ProNo nvarchar(5) NOT NULL, Quantity Decimal(6,0) NOT NULL, Amount Decimal(8,2)NOT NULL) GO --向已创建的
表
添加数据 INSERT Customer VALUES('001','杨婷','深圳','0755-22221111') INSERT Customer VALUES('002','陈萍','深圳','0755-22223333') INSERT Customer VALUES('003','李东','深圳','0755-22225555') INSERT Customer VALUES('004','叶合','广州','0755-22225555') INSERT Customer VALUES('005','谭新','广州','0755-22225555') Go INSERT Customer VALUES('0001','电视',3000.00,800) INSERT Customer VALUES('0002','空调',2000.00,500) INSERT Customer VALUES('0003','床',1000.00,300) INSERT Customer VALUES('0004','餐桌',1500.00,200) INSERT Customer VALUES('0005','音响',5000.00,600) INSERT Customer VALUES('0006','沙发',6000.00,100) Go INSERT Proln VALUES('2006-1-1','00001',10) INSERT Proln VALUES('2006-1-2','00002',5) INSERT Proln VALUES('2006-1-3','00001',5) INSERT Proln VALUES('2006-2-1','00003',10) INSERT Proln VALUES('2006-2-2','00001',10) INSERT Proln VALUES('2006-2-3','00003',20) INSERT Proln VALUES('2006-3-2','00001',10) INSERT Proln VALUES('2006-3-2','00004',30) INSERT Proln VALUES('2006-3-3','00003',20) Go INSERT ProOut VALUES('2006-1-1','001','00001',10) INSERT ProOut VALUES('2006-1-2','001','00002',5) INSERT ProOut VALUES('2006-1-3','002','00001',5) INSERT ProOut VALUES('2006-2-1','002','00003',10) INSERT ProOut VALUES('2006-2-2','001','00001',10) INSERT ProOut VALUES('2006-2-3','001','00003',20) INSERT ProOut VALUES('2006-3-2','003','00001',10) INSERT ProOut VALUES('2006-3-2','003','00004',30) INSERT ProOut VALUES('2006-3-3','002','00003',20) Go --单元七 实施数据完整性(约束) --使用ALTER TABLE 语句为已经创建的
表
添加主键约束、外键约束 --主键 ALTER TABLE Customer ADD CONSTRAINT PK_Customer PRIMARY KEY(CusNo) GO ALTER TABLE Product ADD CONSTRAINT PK_Product PRIMARY KEY(ProNo) GO --外键 ALTER TABLE Proout ADD CONSTRAINT FK_Proout_Product FOREIGN KEY(ProNo) REFERENCES Product(ProNo) GO ALTER TABLE Proout ADD CONSTRAINT FK_Proout_Customer FOREIGN KEY(CusNo) REFERENCES Customer(Customer) GO ALTER TABLE Proln ADD CONSTRAINT FK_Proln_Product FOREIGN KEY(ProNo) REFERENCES Product(ProNo) GO --约束客户
表
Customer的CosNo的
列
值长度为3,产品
表
Product 的ProNo
列
值长度为5 ALTER TABLE Coustomer ADD CONSTRAINT CK_Customer_CusNo CHECK (CusNo like '[0-9][0-9][0-9]') GO ALTER TABLE Product ADD CONSTRAINT CK_Product_ProNo CHECK(ProNo like'[0-9][0-9][0-9][0-9][0-9]') GO --对产品
表
Product 的Stocks
列
、Price
列
、入库
表
Proln的Quanity
列
、销售
表
ProOut 的Quanity --
列
值进行约束,使其值大于0 ALTER TABLE Product ADD CONSTRAINT CK_Product_Stock CHECK(Stock>0) GO ALTER TABLE Product ADD CONSTRAINT CK_Product_Price CHECK(Price>0) GO ALTER TABLE Proln ADD CONSTRAINT CK_Proln_Quantity CHECK (Quantity>0) GO ALTER TABLE ProOut ADD CONSTRAINT CK_ProOut_Quantity CHECK(Quantity>0) GO --对销售
表
ProOut的SaleDate
列
进行约束,当不输入值时,系统默认其值为系统当前日期 CREATE DEFAULT Today AS GETDATEA() GO /*ALTER TABLE ProOut ADD CONSTRAINT DF_ProOut_SaleDate DEFAULT('当前日期')FOR Date GO*/ --单元八 索引 --用户按照CusName查询客户信息,希望提高查询速度 CREATE UNIQUE INDEX IX_CusName ON Customer(CusName) GO --用户按照ProName查询产品信息,希望提高查询速度 CREATE UNIQUE INDEX IX_ProName ON Product(ProName) GO --用户按照SaleDate查询产品信息,希望提高查询速度 CREATE UNIQUE INDEX IX_SaleDate ON ProOut(SaleDate) GO --单元九 语言编程基础 --计算有多少种产品(假设为x),然后显示一条信息:共有X种产品 DECLARE @X int SET @X =(SELECT COUNT (*) FROM Product ) PRINT '共有'+convert (char(2),@x)+'种产品。' GO --编写计算n!(n=20)的程序,并显示结果。 DECLARE @X int,@product int SELECT @X=1,@product=1 WHILE @X<=20 BEGIN SELECT @X=@X+1 SELECT @product=@product*@X END SELECT '1*2*3*......*20的积'=@product GO --单元十 创建于管理视图 --创建视图V_Sale1,并显示销售日期、客户编号、客户姓名、产品编号、产品名称、单价 --销售数量、销售金额 CREATE VIEW V_Sale1 AS SELECT SaleDate,Customer.CusNO,CusName,Product.ProNO,ProName,Price,Proout.Quantity, SM=(Price *Proout.Quantity) FROM Customer ,Product,Proln,Proout WHERE Customer.CusNO=Proout.CusNo AND Product.ProNO=Proln.ProNo AND Product.ProNO=Proout.ProNo AND Proout.Quantity=Proln.Quantity GO --创建视图V-Sale2,统计每种产品的销售数量和销售金额。统计结果包括产品编号、 --产品名称、单价、销售数量和销售金额 CREATE VIEW V_Sale2 AS SELECT Product.ProNO ,ProName,Price,Proout.Quantity ,SM=(Price *Proout.Quantity) FROM Product ,Proout ,Proln GROUP BY ProName GO --创建视图V_Sale3,统计销售金额在10万以下的产品信息。 CREATE VIEW V_Sale3 AS SELECT Product.ProNO ,Product.ProName FROM Product ,Proout WHERE Product.ProNO=Proout.ProNo GROUP BY Product.ProNO,ProName HAVING SUM (Price*Quantity)<100000 GO --单元十一 创建管理存储过程 --创建存储过程P_Sale1,统计每种产品的销售数量和销售金额 CREATE PROCEDURE P_Sale1 AS SELECT Product.ProNO,ProName ,Price ,SUM(Quantity),SM=SUM(Price*Quantity) FROM Proout,Product WHERE Product.ProNO=Proout.ProNo GROUP BY Product .ProNO,ProName,Price GO --创建存储过程P_Sale2,能够根据指定客户统计,汇总该客户购买每种产品的数量和花费金额 CREATE PROCEDURE P_Sale2 @CusNo nvarchar(3) AS SELECT Product.ProNO,ProName,Price ,SUM(Quantity),SUM(Price*Quantity) FROM Product,Proout WHERE CusNO=@CusNO AND Product.ProNO=Proout.ProNo GROUP BY Product .ProNO,ProName ,Price GO --创建存储过程P_Sale3,能够根据指定的产品编号和日期,以输出参数的形式
得到
该产品的销售金额 CREATE PROCEDURE P_Sale3 @ProNo nvarchar(5),@SaleDate DateTime,@MONEY Decimal(8,2)OUTPUT AS SET @MONEY=( SELECT SUM(Price*Quantity) FROM Proout,Product WHERE Product.ProNO=Proout.ProNo AND Product.ProNO=@ProNo AND SaleDate =@SaleDate GROUP BY Product .ProNO,ProName ,Price ) PRINT @MONEY GO --单元十二 触发器 --创建触发器,实现即时更新每种产品的库存数量。 CREATE TRIGGER UPDATE_ProNo_Stocks_TRIGGER ON Product FOR UPDATE AS PRINT'已即时更新每种产品的库存数量' GO --使用IF UPDATE(column)尽可能优化上题的触发器,以提高系统效率 ALTER TRIGGER UPDATE_ProNo_Stocks_TRIGGER ON Product FOR UPDATE AS IF UPDATE (ProNo) PRINT '已更新' GO --单元十三 游标 --创建存储过程P_SelProduct,逐行显示产品销售信息,内容包括编号、产品名称、销售日期、 --销售数量、销售金额、要求显示格式如下: --产品编号 产品名称 销售日期 销售数量 销售金额 --00001 电视 2006-1-1 10 30000 --产品编号 产品名称 销售日期 销售数量 销售金额 --00002 空调 2006-1-2 5 10000 CREATE PROCEDURE P_SelProduct AS DECLARE @ProNo NVARCHAR(5),@ProName nvarchar(20), @SaleDate DateTime,@Quantity Decimal(6,0), @SM Decimal(8,2) DECLARE CRS CURSOR FOR SELECT Product.ProNO,ProName,SaleDate,Quantity,SM=(Price*Quantity) FROM Product ,Proout WHERE Product .ProNO=Proout.ProNo ORDER BY SaleDate OPEN CRS FETCH NEXT FROM CRS INTO @ProNo,@ProName , @SaleDate,@Quantity ,@SM WHILE @@FETCH_STATUS =0 BEGIN PRINT '产品编号 产品名称 销售日期 销售数量 销售金额' PRINT @ProNo+' '+@ProName+' '+STR(YEAR(@SaleDate))+'-'+STR(MONTH(@SaleDate)) +'-'+STR(DAY(@SaleDate))+' '+@Quantity+' '+@SM+' ' FETCH NEXT FROM CRS INTO @ProNo,@ProName , @SaleDate,@Quantity , @SM END CLOSE CRS DEALLOCATE CRS t 扚 ]$ ]$ 晹轺褻蚅0! 17240671-14.2实训.
sql
[?灜?
sql
?|--2018.4.18 USE master GO --单元五 创建于管理数据库 --创建数据库Sale CREATE DATABASE sale ON PRIMARY (NAME=sale, FILENAME='C:\\sale.mdf', SIZE=4MB, MAXSIZE=20MB, FILEGROWTH=1MB ) LOG ON (NAME=sale_log, FILENAME='C:\\sale_log.ldf', SIZE=10MB, MAXSIZE=20MB, FILEGROWTH=1MB) GO --向数据库增加文件组UserGroup ALTER DATABASE sale ADD FILEGROUP UserGroup GO ALTER DATABASE sale ADD FILE (NAME='sale_data3', FILENAME='D:\\sale_data3.ndf', SIZE=5MB, MAXSIZE=10MB, FILEGROWTH=1MB ) TO FILEGROUP UserGroup GO sp_help sale GO USE master GO -- 单元六 创建于管理数据
表
--创建客户
表
结构Customer CREATE TABLE Customer (CusNO nvarchar(3) NOT NULL, CusName nvarchar(10), Address nvarchar(20)NOT NULL, Tel nvarchar(20) NOT NULL) GO --创建场品
表
结构Product CREATE TABLE Product (ProNO nvarchar(5) NOT NULL, ProName nvarchar(20)NOT NULL, Price Decimal(8,2) NOT NULL, Stocks Decimal(6,0) NOT NULL) GO --创建入库
表
结构Proln CREATE TABLE Proln (InputDate DateTime NOT NULL, ProNo nvarchar(5) NOT NULL, Quantity Decimal(6,0) NOT NULL) GO --创建销售
表
结构Proout CREATE TABLE Proout (SaleDate DateTime NOT NULL, CusNo nvarchar(3) NOT NULL, ProNo nvarchar(5) NOT NULL, Quantity Decimal(6,0) NOT NULL, Amount Decimal(8,2)NOT NULL) GO --向已创建的
表
添加数据 INSERT Customer VALUES('001','杨婷','深圳','0755-22221111') INSERT Customer VALUES('002','陈萍','深圳','0755-22223333') INSERT Customer VALUES('003','李东','深圳','0755-22225555') INSERT Customer VALUES('004','叶合','广州','0755-22227777') INSERT Customer VALUES('005','谭新','广州','0755-22229999') Go INSERT Product VALUES('00001','电视',3000.00,800) INSERT Customer VALUES('00002','空调',2000.00,500) INSERT Customer VALUES('00003','床',1000.00,300) INSERT Customer VALUES('00004','餐桌',1500.00,200) INSERT Customer VALUES('00005','音响',5000.00,600) INSERT Customer VALUES('00006','沙发',6000.00,100) Go INSERT Proln VALUES('2006-1-1','00001',10) INSERT Proln VALUES('2006-1-1','00002',5) INSERT Proln VALUES('2006-1-2','00001',5) INSERT Proln VALUES('2006-1-2','00003',10) INSERT Proln VALUES('2006-1-3','00001',10) INSERT Proln VALUES('2006-2-1','00003',20) INSERT Proln VALUES('2006-2-2','00001',10) INSERT Proln VALUES('2006-2-3','00004',30) INSERT Proln VALUES('2006-3-3','00003',20) Go INSERT ProOut VALUES('2006-1-1','001','00001',10) INSERT ProOut VALUES('2006-1-2','001','00002',5) INSERT ProOut VALUES('2006-1-3','002','00001',5) INSERT ProOut VALUES('2006-2-1','002','00003',10) INSERT ProOut VALUES('2006-2-2','001','00001',10) INSERT ProOut VALUES('2006-2-3','001','00003',20) INSERT ProOut VALUES('2006-3-2','003','00001',10) INSERT ProOut VALUES('2006-3-2','003','00004',30) INSERT ProOut VALUES('2006-3-3','002','00003',20) Go --单元七 实施数据完整性(约束) --使用ALTER TABLE 语句为已经创建的
表
添加主键约束、外键约束 --主键 ALTER TABLE Customer ADD CONSTRAINT PK_Customer PRIMARY KEY(CusNo) GO ALTER TABLE Product ADD CONSTRAINT PK_Product PRIMARY KEY(ProNo) GO --外键 ALTER TABLE Proout ADD CONSTRAINT FK_Proout_Product FOREIGN KEY(ProNo) REFERENCES Product(ProNo) GO ALTER TABLE Proout ADD CONSTRAINT FK_Proout_Customer FOREIGN KEY(CusNo) REFERENCES Customer(Customer) GO ALTER TABLE Proln ADD CONSTRAINT FK_Proln_Product FOREIGN KEY(ProNo) REFERENCES Product(ProNo) GO --约束客户
表
Customer的CosNo的
列
值长度为3,产品
表
Product 的ProNo
列
值长度为5 ALTER TABLE Coustomer ADD CONSTRAINT CK_Customer_CusNo CHECK (CusNo like '[0-9][0-9][0-9]') GO ALTER TABLE Product ADD CONSTRAINT CK_Product_ProNo CHECK(ProNo like'[0-9][0-9][0-9][0-9][0-9]') GO --对产品
表
Product 的Stocks
列
、Price
列
、入库
表
Proln的Quanity
列
、销售
表
ProOut 的Quanity --
列
值进行约束,使其值大于0 ALTER TABLE Product ADD CONSTRAINT CK_Product_Stock CHECK(Stock>0) GO ALTER TABLE Product ADD CONSTRAINT CK_Product_Price CHECK(Price>0) GO ALTER TABLE Proln ADD CONSTRAINT CK_Proln_Quantity CHECK (Quantity>0) GO ALTER TABLE ProOut ADD CONSTRAINT CK_ProOut_Quantity CHECK(Quantity>0) GO --对销售
表
ProOut的SaleDate
列
进行约束,当不输入值时,系统默认其值为系统当前日期 CREATE DEFAULT Today AS GETDATEA() GO /*ALTER TABLE ProOut ADD CONSTRAINT DF_ProOut_SaleDate DEFAULT('当前日期')FOR Date GO*/ --单元八 索引 --用户按照CusName查询客户信息,希望提高查询速度 CREATE UNIQUE INDEX IX_CusName ON Customer(CusName) GO --用户按照ProName查询产品信息,希望提高查询速度 CREATE UNIQUE INDEX IX_ProName ON Product(ProName) GO --用户按照SaleDate查询产品信息,希望提高查询速度 CREATE UNIQUE INDEX IX_SaleDate ON ProOut(SaleDate) GO --单元九 语言编程基础 --计算有多少种产品(假设为x),然后显示一条信息:共有X种产品 DECLARE @X int SET @X =(SELECT COUNT (*) FROM Product ) PRINT '共有'+convert (char(2),@x)+'种产品。' GO --编写计算n!(n=20)的程序,并显示结果。 DECLARE @X int,@product int SELECT @X=1,@product=1 WHILE @X<=20 BEGIN SELECT @X=@X+1 SELECT @product=@product*@X END SELECT '1*2*3*......*20的积'=@product GO --单元十 创建于管理视图 --创建视图V_Sale1,并显示销售日期、客户编号、客户姓名、产品编号、产品名称、单价 --销售数量、销售金额 CREATE VIEW V_Sale1 AS SELECT SaleDate,Customer.CusNO,CusName,Product.ProNO,ProName,Price,Proout.Quantity, SM=(Price *Proout.Quantity) FROM Customer ,Product,Proln,Proout WHERE Customer.CusNO=Proout.CusNo AND Product.ProNO=Proln.ProNo AND Product.ProNO=Proout.ProNo AND Proout.Quantity=Proln.Quantity GO --创建视图V-Sale2,统计每种产品的销售数量和销售金额。统计结果包括产品编号、 --产品名称、单价、销售数量和销售金额 CREATE VIEW V_Sale2 AS SELECT Product.ProNO ,ProName,Price,Proout.Quantity ,SM=(Price *Proout.Quantity) FROM Product ,Proout ,Proln GROUP BY ProName GO --创建视图V_Sale3,统计销售金额在10万以下的产品信息。 CREATE VIEW V_Sale3 AS SELECT Product.ProNO ,Product.ProName FROM Product ,Proout WHERE Product.ProNO=Proout.ProNo GROUP BY Product.ProNO,ProName HAVING SUM (Price*Quantity)<100000 GO --单元十一 创建管理存储过程 --创建存储过程P_Sale1,统计每种产品的销售数量和销售金额 CREATE PROCEDURE P_Sale1 AS SELECT Product.ProNO,ProName ,Price ,SUM(Quantity),SM=SUM(Price*Quantity) FROM Proout,Product WHERE Product.ProNO=Proout.ProNo GROUP BY Product .ProNO,ProName,Price GO --创建存储过程P_Sale2,能够根据指定客户统计,汇总该客户购买每种产品的数量和花费金额 CREATE PROCEDURE P_Sale2 @CusNo nvarchar(3) AS SELECT Product.ProNO,ProName,Price ,SUM(Quantity),SUM(Price*Quantity) FROM Product,Proout WHERE CusNO=@CusNO AND Product.ProNO=Proout.ProNo GROUP BY Product .ProNO,ProName ,Price GO --创建存储过程P_Sale3,能够根据指定的产品编号和日期,以输出参数的形式
得到
该产品的销售金额 CREATE PROCEDURE P_Sale3 @ProNo nvarchar(5),@SaleDate DateTime,@MONEY Decimal(8,2)OUTPUT AS SET @MONEY=( SELECT SUM(Price*Quantity) FROM Proout,Product WHERE Product.ProNO=Proout.ProNo AND Product.ProNO=@ProNo AND SaleDate =@SaleDate GROUP BY Product .ProNO,ProName ,Price ) PRINT @MONEY GO --单元十二 触发器 --创建触发器,实现即时更新每种产品的库存数量。 CREATE TRIGGER UPDATE_ProNo_Stocks_TRIGGER ON Product FOR UPDATE AS PRINT'已即时更新每种产品的库存数量' GO --使用IF UPDATE(column)尽可能优化上题的触发器,以提高系统效率 ALTER TRIGGER UPDATE_ProNo_Stocks_TRIGGER ON Product FOR UPDATE AS IF UPDATE (ProNo) PRINT '已更新' GO --单元十三 游标 --创建存储过程P_SelProduct,逐行显示产品销售信息,内容包括编号、产品名称、销售日期、 --销售数量、销售金额、要求显示格式如下: --产品编号 产品名称 销售日期 销售数量 销售金额 --00001 电视 2006-1-1 10 30000 --产品编号 产品名称 销售日期 销售数量 销售金额 --00002 空调 2006-1-2 5 10000 CREATE PROCEDURE P_SelProduct AS DECLARE @ProNo NVARCHAR(5),@ProName nvarchar(20), @SaleDate DateTime,@Quantity Decimal(6,0), @SM Decimal(8,2) DECLARE CRS CURSOR FOR SELECT Product.ProNO,ProName,SaleDate,Quantity,SM=(Price*Quantity) FROM Product ,Proout WHERE Product .ProNO=Proout.ProNo ORDER BY SaleDate OPEN CRS FETCH NEXT FROM CRS INTO @ProNo,@ProName , @SaleDate,@Quantity ,@SM WHILE @@FETCH_STATUS =0 BEGIN PRINT '产品编号 产品名称 销售日期 销售数量 销售金额' PRINT @ProNo+' '+@ProName+' '+STR(YEAR(@SaleDate))+'-'+STR(MONTH(@SaleDate)) +'-'+STR(DAY(@SaleDate))+' '+@Quantity+' '+@SM+' ' FETCH NEXT FROM CRS INTO @ProNo,@ProName , @SaleDate,@Quantity , @SM END CLOSE CRS DEALLOCATE CRS GO --单元十四 事务与锁 --1、一般情况下,只有当产品有足够的库存量时才允许销售该产品。创建一事务,实现当向Proout(销售)
表
插入新的数据行时,如果 --Stock(库存数)大于Quantity(销售数量),则允许销售,否则拒绝销售。 CREATE PROCEDURE P1 @SaleDate DateTime , @CusNo nvarchar(3), @ProNo nvarchar(5), @Quantity Decimal(6,0) AS BEGIN TRANSACTION INSERT Proout(SaleDate,CusNo,ProNo,Quantity) VALUES(@SaleDate ,@CusNo ,@ProNo,@Quantity ) DECLARE @CountNum INT SET @CountNum =(SELECT Stocks FROM Product WHERE ProNo=@ProNo)-(SELECT SUM(Quantity) FROM Proout WHERE ProNo=@ProNo) IF @CountNum<0 BEGIN ROLLBACK TRANSACTION PRINT '库存数量小于销售数量,拒绝销售。' END ELSE BEGIN COMMIT TRANSACTION PRINT '销售成功!' END GO --测试 INSERT INTO Proout VALUES('2016-6-1','002','000001',900) GO --2、不用触发器,用事务的方式实现:当产品入库和销售时能保证库存数量的准确性。谈谈你对触发器实现和使用事务实现的理解 t ? + + G鹙坺BwL0 17240671-2.
sql
饌? --2018年3月14日 USE Xk GO --查询“00000001”同学是否报了“003”课程 SELECT * From StuCou where StuNo='00000001' and CouNo='003' GO --查询报名人数在15-40范围内的课程信息 SELECT * FROM Course WHERE WillNum>=15 AND WillNum<=40 GO --Between...and... SELECT * FROM Course WHERE WillNum BETWEEN 15 AND 40 GO --查询课程编号分别为"004"、"007"、"013"的课程信息(理解or) SELECT * FROM Course WHERE CouNo='004' or CouNo='007' or CouNo='013' GO --in的用法 SELECT * FROM Course WHERE CouNo IN ('004','007','013') GO --查询课程编号分别不为"004"、"007"、"013"的课程信息(not) SELECT * FROM Course WHERE CouNo NOT IN ('004','007','013') GO --查询课程信息、报名人数占限选人数之比(
表
达式作为
列
) SELECT * , WillNum/LimitNum AS '报名人数占限选人数之比' FROM Course GO --补充问题:小数点只保留2位(convert()函数、cast()函数) SELECT * ,convert (decimal(4,2),WillNum/LimitNum) AS '报名人数占限选人数之比' FROM Course GO SELECT * ,cast (WillNum/LimitNum as decimal(4,2)) AS '报名人数占限选人数之比' FROM Course GO --查询课程信息、报名人数占限选人数之比(升ASC、降DESC 序) SELECT * ,cast (WillNum/LimitNum as decimal(4,2)) AS '报名人数占限选人数之比' FROM Course ORDER BY WillNum DESC GO --查询课程信息、报名人数占限选人数之比以降序排
列
并查询前10行(前10%) SELECT top 10 * ,cast (WillNum/LimitNum as decimal(4,2)) AS '报名人数占限选人数之比' FROM Course ORDER BY WillNum DESC GO --查询选修课的任课教师名、课程号、课程名。要求教师名降序排
列
,教师名相同时,按课程号的升序排
列
SELECT teacher as '教师名',CouNo as '课程号',CouName as '教程名' FROM Course ORDER BY Teacher DESC,CouNo ASC GO --查询课程信息,要求查询结果为(在查询结果
中
增加字符串) SELECT '课程编码'=CouNO,'课程名称为:','课程名称'=CouName FROM Course GO --查询带有‘制作’课程 SELECT '课程编码'=CouNO,'课程名称为:','课程名称'=CouName FROM Course WHERE CouName LIKE '%制作%' GO -2018年3月17日 USE Xk GO 查询选课
表
中
随机数无值的数据行 SELECT * FROM StuCou WHERE RandomNum IS NULL GO SELECT * FROM Course GO --查看选课
表
有多少门课程 --COUNT函数 SELECT COUNT(*)AS '课程总门数' FROM Course GO SELECT COUNT(CouNo)AS '课程总门数' FROM Course GO SELECT COUNT(*)FROM StuCou GO SELECT COUNT(RandomNum) FROM StuCou GO SELECT COUNT(Kind)AS '课程总门数' FROM Course GO --t ? ? ? 广~燪uL0 17240671-3.
sql
餷wY--2018-3-21 USE Xk GO --1.平均 SELECT AVG(*)FROM Cours GO --2 SELECT Coure(*)FROM Student GO --3 --4 SELECT COUNT(DITINCT Kind) FROM Course FROM Course GO --5按照课程类别分组统计各类课程的门 SELECT Kind AS '课程种类',COUNT(Kind) AS '该种类的课程' FROM Course GROUP BY Kind GO --6 SELECT MIN(willNum) as'最报名人',MAX(willNum) as '最多报名人' FROM Course WHERE willNum >15 GROUP By Kind --7 SELECT Kind,AVG(WillNum) FROM Course WHERE WillNum>15 GROUP BY Kind HAVING AVG(WillNum)>30 GO --8 SELECT Kind,AVG(WillNum) FROM Coure WHERE Kind IN('管理')OR Kind GROUP BY ALL Kind GO SELECT * FROM Course COMPUTE By DepartNo COMPUTE AVG(WillNum) By DepartNo GO甬t ? O O 泎蝼P|L0 17240671-4.
sql
餺9?-2018年3月28日 USE Xk GO --4, SELECT Student.StuNo,StuName,Course,CouNo,CouName,Credit FROM Student Course,StuCou WEHERE Student.StuNo = StuCou.StuNo AND COurse.CouNo.CouNo ORDER BY CouName,Student.StuNo GO --方法2 SELECT Student.StuNo,StuName,Course,CouNo,CouName,Credit FROM Student JOIN StuCou ON Student.StuNo = StuCou.StuNo JOIN Course ON Course CouNo = StuCou.StuNo ORDER BY CouName,Student.StuNo GO /*--查询同学报名‘计算机应用工工程系’选修课程的情况,显示信息包括:学号,姓名,课程编号,课程名,教师,上课时间,按照课程编号排序, 课程编号相同时,按照学号排序*/ SELECT Student.StuNo,StuName,CouNo,CouName,Teacher,ScoolTime FROM Student,Course,StuCou WHERE Student.StuNo=StuCou.StuNo AND Course=StuCou.CouNo AND DepartName='计算机工程系' AND Department.DepartNo=Course.DepartNo ORDER BY Course.CouNo,Student.StuNo GO --修改使用别名完成上题 SELECT Student.StuNo,StuName,CouNo,CouName,Teacher,ScoolTime FROM Student JOIN StuCou SC ON S.StuNo = SC.StuNo JOIN Course C ON C.CouNo = SC.CouNo JOIN Department D ON D.DepartNo=C.DepartNo WHERE DepartName='计算机工程系' ORDER BY C.CouNo,S.StuNo GO --练一练,查询各班同学的信息,要求显示,班级编号,班级名称,学号,姓名,按照班级编号排序,当班级编号相同时,按照学号排序 --课本73页[2.35]查询每个班级可以选修的,不是自己所在系部开设的选修课程信息,显示信息包括班级,课程名,课程种类, --学分,老师,上课时间和报名人数。 SELECT '班级编号'=ClassNo'班级名称','课程名'=CouName,'课程种类'=Kind,'学分'=Credit,'老师'=Teacher,'上课时间'=ScoolTime, '报名人数'=WillNum FROM Class,Course WHERE Class.DepartNo<>Course.DEpartNo GO --课本73页[2.36] --查询课程类别相同但开课系部不同的课程信息,要求显示课程编号,课程名称,课程类别,系部编号,按照课程编号升序排序 SELECT '课程编号'=C1.CouNo,'课程名称'=C1.CouName,'课程类别'=C1.Kind,'系部编号'=C1.DepartNo FROM Course C1,Course C2 WHERE C1,Kind=C2.Kind AND C1.DepartNo<>C2.DEpartNo ORDER BY 课程编号 GO --外连接 --观察如下查询数据 --查询课程信息 SELECT CouNo,CouName,WillNum FROM Course ORDER BY CouNo GO --查询所有同学报名选修课的情况(包括有报名和没人报名),显示学号,姓名,课程号,课程名。 SELECT '学号'=CouNo,'姓名'=StuName,'课程号'=CouNo,'课程名'=CouName FROM Student,Course,StuCou WHERE Course.CouNo=StuCou.CouNo GO --丢失了没人报名的019课程,使用外连接信息丢失的问题 SELECT '学号'=StuNo,'姓名'=StuName,'课程号'=CouNo,'课程名'=CouName FROM Course LEFT JOIN StuCou /*左外连接,解决的是JOIN左面的
表
丢失的数据*/ ON Course.CouNo=StuCou.StuNo ORDER BY Course.CouNo GO --查询选修
表
信息 SELECT CouNo FROM StuCou ORDER BY CouNo GO`}t ? K K ?n⑾P凩0 17240671-5.
sql
餹鱧--2018年4月4日 USE Xk GO --1,学号为'00000025'的学生第一志愿报名选修"001"课程.请在数据库
中
进行处理.(增加数据进StuCou
表
中
) SELECT * FROM StuCou WHERE StuNo='00000025' GO INSERT StuCou(StuNo,CouNo,WillOrder,State) VALUES('00000025','001',1,'报名') GO --2,删除学号为'00000025'的学生的选修课报名信息。 DELETE StuCou WHERE StuNo='00000025' AND CouNo='01' GO UPDATE Course SET WillNum=WillNum-1 WHERE CouNo='001' --3,将"00多媒体"班的"杜晓静"的名字修改为"杜小静"。 UPDATE Student SET StuName='杜小静' FROM Student.Class WHERE StuName='杜晓静' AND ClassName='00多媒体' AND Student.ClassNo=Class.ClassNo --4,"00电子商务"班的"林斌"申请将已选修的"网络信息检索原理与技术"课程修改为"Linux操作系统". UPDATE StuCou SET CouNo = (SELECT CouNo FROM Course WHERE CouName = 'Linux操作系统') FROM StuCou,Class,Student,Course WHERE Class.Class Student.StuName = '林斌' AND CouName = '网络信息检索原理与技术' AND Class.ClassNo = Student.ClassNo AND Student.StuNo = StuCou.StuNo AND Name = '00电子商务' AND Course.CouNo = StuCou.CouNo 见t ? ? ? 剮L0 17240671-6-2.
sql
?? USE master GO CREATE DATABASE Sale ON (NAME=Sale, FILENAME='E:\\Sale.mdf', SIZE=4, MAXSIZE=10, FILEGROWTH=1) LOG ON (NAME=Sale_log, FILENAME='F:\\Sale_log.ldf', SIZE=2, MAXSIZE=10, FILEGROWTH=1) GO USE Sale GO ALTER DATABASE Sale ADD FILEGROUP UserGroup GO USE master GO ALTER DATABASE Sale ADD FILE (NAME=Sale, FILENAME='E:\\Sale2.ndf', SIZE=5MB, MAXSIZE=10MB, FILEGROWTH=1MB) TO FILEGROWOUP UserGroup GO SP_helpdb Sale GO?t ? ? ? ╡?WP扡0 17240671-7-1
sql
餋嘵--2018年4月18日第七周 USE Xk GO ALTER DATABASE Xk ADD FILEGROUP TableGroup GO sp_helpfilegroup TableGroup GO USE Xk GO --创建班级信息
表
Class CREATE TABLE Class1 (ClassNo nvarchar (8) NOT NULL, ClassName nvarchar (20) NOT NULL, DepartNo nvarchar (2) NOT NULL) GO --创建学生信息
表
Student CREATE TABLE Student1 (StuNo nvarchar (8) NOT NULL, StuName nvarchar (10) NOT NULL, Pwd nvarchar (8) NOT NULL, ClassNo nvarchar (8) NOT NULL) GO --创建学生选课
表
StuCou CREATE TABLE StuCou1 (StuNo nvarchar (8) NOT NULL, CouNo nvarchar (3) NOT NULL, WillOrder smallint NOT NULL, State nvarchar (2) NOT NULL, RandomNum nvarchar (50) NULL) GO USE Xk GO ALTER TABLE Student ADD birthday datetime null,bz nvarchar(20) null GO USE Xk GO ALTER TABLE Student DROP COLUMN birthday GO USE Xk GO ALTER TABLE Student ALTER COLUMN bz nvarchar(30) null GO USE Xk GO sp_rename 'Student.bz','StuBz','COLUMN' GO 鮰 ? ? ? E諹wE汱0 17240671-7-2.
sql
?_2 USE master GO CREATE DATABASE Sale ON (NAME=Sale, FILENAME='C:\\Sale.mdf', SIZE=4, MAXSIZE=10, FILEGROWTH=1) LOG ON (NAME=Sale_log, FILENAME='C:\\Sale_log.ldf', SIZE=2, MAXSIZE=10, FILEGROWTH=1) GO USE Sale CREATE TABLE Customer (CusNo nvarchar(3) NOT NULL, CusName nvarchar(10) NOT NULL, Address nvarchar(20) NULL, Tel nvarchar(20) NULL) GO CREATE TABLE Product (ProNo nvarchar(5) NOT NULL, ProName nvarchar(20) NOT NULL, Price Decimal(8,2) NOT NULL, Stocks Decimal(8,0) NOT NULL) GO CREATE TABLE Proln (InputDate DateTime NOT NULL, ProNo nvarchar(5)NOT NULL, Quantity Decimal(6,0)NOT NULL) GO CREATE TABLE ProOut (SaleDate DateTime NOT NULL, CusNo nvarchar(3)NOT NULL, ProNo nvarchar(5)NOT NULL, Quantity Decimal(6,0)NOT NULL) GO INSERT Customer VALUES ('001','杨婷','深圳','0755-22221111') INSERT Customer VALUES ('002','陈萍','深圳','0755-22223333') INSERT Customer VALUES ('003','李东','深圳','0755-22225555') INSERT Customer VALUES ('004','叶合','广州','0755-22225555') INSERT Customer VALUES ('005','谭新','广州','0755-22225555') GO INSERT Proln VALUES ('2006-1-1','00001','10') INSERT Proln VALUES ('2006-1-2','00002','5') INSERT Proln VALUES ('2006-1-3','00001','5') INSERT Proln VALUES ('2006-2-1','00003','10') INSERT Proln VALUES ('2006-2-2','00001','10') INSERT Proln VALUES ('2006-2-3','00003','10') INSERT Proln VALUES ('2006-3-2','00001','10') INSERT Proln VALUES ('2006-3-2','00004','30') INSERT Proln VALUES ('2006-3-3','00003','20') GO --添加主键约束,外键约束 ALTER TABLE Customer ADD CONSTRAINT PK_Customer PRIMARY KEY(CusNo) GO ALTER TABLE Product ADD CONSTRAINT PK_Product PRIMARY KEY(ProNo) GO ALTER TABLE Proln ADD CONSTRAINT PK_Proln PRIMARY KEY(ProNo) GO ALTER TABLE ProOut ADD CONSTRAINT PK_ProOut PRIMARY KEY(CusNo,ProNo) GO --运用检查约束 ALTER TABLE Product ADD CONSTRAINT CK_Stock CHECK(Stock>0) ALTER TABLE Product ADD CONSTRAINT CK_Price CHECK(Price>0) ALTER TABLE Proln ADD CONSTRAINT CK_Quantity CHECK(Quantity>0) ALTER TABLE ProOut ADD CONSTRAINT CK_Quantity CHECK(Quantity>0) GO --运用默认约束 ALTER TABLE ProOut ADD CONSTRAINT DF_ProOut_Saledate DEFAULT('当前日期')FOR Date GO?t ? ? ? €猳?Q㎜0 17240671.10.1.
sql
皝?--2018-4-9日 编程基础 SELECT ClassNo From Xk..Class GO SELECT CLassNo FROM Xk.dbo.Class GO --T_
sql
语法元素:标识符(两种),局部变量,全局变量,
数据类型
/* */ SELECT @@SERVERNAME SELECT @@MAX_CONNECTIONS SELECT @@LANGUAGE SELECT @@VERSION SELECT * FROM Xk..Student GO SELECT * FROM Class GO USE Xk SELECT * FROM Xk..Student GO USE Xk CREATE VIEW V TEST AS SELECT * FROM Student GO USE Xk GO CREATE VIEW V TEST AS SELECT * FROM Student GO DECLARE @iNUM INT SET @iNUM=5 PRINI @INUM --显示Course
表
中
有多少类课程? SELECT COUNT(DISTINCT Kind)FROM Course GO --显示Course
表
中
有多少类课程,要求将结果保存到
一个
局部变量
中
,并显示出来。 DECLARE @KindCount Tinyint SET @KindCount=(SELECT COUNT (DISTINCT Kind)FROM Course) PRINT @KindCount GO DECLARE @KindCount Tinyint SET @KindCount=(SELECT COUNT (DISTINCT Kind)FROM Course) PRINT 'Course
表
中
有'+CONVERT (VARCHAR(3),@KindCount)+'类课程' GO --练一练:1,编写计算1+2+3+10000的和,并显示计算结果。 DECLARE @i int,@sum=0 SELECT @i=1,@sum=0 WHILE @i<=10000 BEGIN SELECT @sum=@sum+@i SELECT @i=@i+1 END SELECT'1+2+3+4+......+10000的和'=@sum GO --练一练:2,编写计算20!,并显示计算结果。 --练一练:3,@iNum1,@iNum2为两个整型变量,值分为76,90,编程显示两个变量
中
的较大者。 DECLARE @iNum1 int,@iNum2 int SELECT @iNum1=76,@iNum2=90 IF(@iNum1>@iNum2) PRINT @iNum1 ELSE PRINT @iNum2 GO]謙 ? ? ? ;砝blO獿0 17240671.10.2.
sql
餹M--2018-05-11 DECLARE @iNum1 int,@iNum2 int SELECT @iNum1=79,@iNum2=90 if(@iNum1>@iNum2) PRINT @iNum1 else PRINT @iNum2 GO USE Xk GO SELECT '课程类别'=Kind,'分类的课程类别'= CASE Kind WHEN '工程技术'THEN'工科类课程' WHEN '人文'THEN'人文类课程' WHEN '信息技术'THEN '信息技术类课程' ELSE '其他类课程' END,'课程名称'=CouName,'报名人数'=WillNum FROM Course ORDER BY Kind,WillNum COMPUTE AVG(WillNum)BY Kind GO --问题9.13校长生日1979/12/23,使用日期函数显示校长年龄 SELECT '年龄'=DATEDIFF(YY,'1979/12/23',GETDATE()) GO --如果
一个
人的出生日期为1922/2/23,计算并显示目前总天数 SELECT '天数'=DATEDIFF(DD,'1922/2/23',GETDATE()) GO --问题9.26 CREATE FUNCTION CalcRemainNum (@X decimal(6,0),@Y decimal(6,0)) RETURNS decimal(6,0) AS BEGIN RETURN(@X-@Y) END GO ALTER TABLE Course ADD RemainNum AS dbo.CalcRemainNum(LimitNum,ChooseNum) GO SELECT *FROM Course GO ? c c ?/fP癓0 17240671.10.4.
sql
饃XK--2018-05-16 --创建
一个
名字为V_MyClass的视图。 CREATE VIEW V_MyClass AS SELECT StuNo,StuName,ClassName FROM Student,Class WHERE Student.ClassNo=Class.ClassNo GO --对视图可以像使用
表
一样操作。 --查看视图内容。 SELECT * FROM V_MyClass GO --查看视图的定义。 SP_HELPTEXT V_MyClass GO --修改视图,加密视图的定义。 ALTER VIEW V_MyClass WITH ENCRYPTION AS SELECT StuNo,StuName,ClassName FROM Student,Class WHERE Student.ClassNo=Class.ClassNo GO --查看视图的定义。 SP_HELPTEXT V_MyClass GO --显示"对象'V_MyClass'的文本已加密。" --重命名视图。 SP_RENAME 'V_MyCLass','V1_MyClass' GO --删除视图。 DROP VIEW V_MyClass GO SP_HELP GO --[问题10.1]修改试图
列
标题 --[问题10.6]注意视图
中
SELECT语句
中
必须有
列
名。 /* 综合练习:Teacher 是00多媒体班班主任,使该老师可以查看自己班级学生选课情况(学号,姓名,课程名,种类, 学分,上课时间,开课习部) */ --步骤1:创建
一个
视图,显示'00多媒体'班同学的选课情况(学号,姓名,课程名,种类,学分,上课时间,开课系部) CREATE VIEW V_TeacherLi AS SELECT Student,StuNo,StuName,CouName,Kind,Credit,ScoolTime,DepartName FROM Student,Course,StuCou,Class,Department WHERE Student.StuNo=StuCou.StuNo AND Course.CouNo=StuCou.CouNo AND Student.ClassNo=Class.Class.ClassNo AND Department.DepartNo=Course.DepartNo AND ClassName GO --步骤2;在
SQL
Server
中
为TeacherLi创建
一个
登录,登录名为:TeacherLi,登录密码为:TeacherLi USE master GO CREATE LOGIN TeacherLi WITH PASSWORD='TeacherLi' GO --测试:使用TeacherLi登录
SQL
Server,看是否可以登录成功? --可以登录成功。看不到Xk数据库数据。 --步骤3; USE Xk GO CREATE USER TeacherLi GO --测试:使用TeacherLi登录
SQL
Server,看是否可以登录成功? --可以点Xk,但是看不到用户
表
--步骤4:授予TeacherLi可以看到视图V_TeacherLi USE Xk GO GRANT SELECT ON V_TeacherLi TO TeacherLi GO GRANT SELECT ON STUDENT TO TeacherLi GO 鏒t 扚 ? ? 侘絿禖睱0! 17240671.10.5实训.
sql
[?灜?
sql
皭?--2018.4.18 USE master GO --创建数据库Sale CREATE DATABASE sale ON PRIMARY (NAME=sale, FILENAME='C:\\sale.mdf', SIZE=4MB, MAXSIZE=20MB, FILEGROWTH=1MB ) LOG ON (NAME=sale_log, FILENAME='C:\\sale_log.ldf', SIZE=10MB, MAXSIZE=20MB, FILEGROWTH=1MB) GO --向数据库增加文件组UserGroup ALTER DATABASE sale ADD FILEGROUP UserGroup GO ALTER DATABASE sale ADD FILE (NAME='sale_data3', FILENAME='D:\\sale_data3.ndf', SIZE=5MB, MAXSIZE=10MB, FILEGROWTH=1MB ) TO FILEGROUP UserGroup GO sp_help sale GO USE master GO --创建客户
表
结构Customer CREATE TABLE Customer (CusNO nvarchar(3) NOT NULL, CusName nvarchar(10), Address nvarchar(20)NOT NULL, Tel nvarchar(20) NOT NULL) GO --创建场品
表
结构Product CREATE TABLE Product (ProNO nvarchar(5) NOT NULL, ProName nvarchar(20)NOT NULL, Price Decimal(8,2) NOT NULL, Stocks Decimal(6,0) NOT NULL) GO --创建入库
表
结构Proln CREATE TABLE Proln (InputDate DateTime NOT NULL, ProNo nvarchar(5) NOT NULL, Quantity Decimal(6,0) NOT NULL) GO --创建销售
表
结构Proout CREATE TABLE Proout (SaleDate DateTime NOT NULL, CusNo nvarchar(3) NOT NULL, ProNo nvarchar(5) NOT NULL, Quantity Decimal(6,0) NOT NULL, Amount Decimal(8,2)NOT NULL) GO --向已创建的
表
添加数据 INSERT Customer VALUES('001','刘星','深圳','0755-22221111') INSERT Customer VALUES('002','陈笃','深圳','0755-22223333') INSERT Customer VALUES('003','李耳','深圳','0755-22225555') INSERT Customer VALUES('004','苏岩','广州','0755-22225555') INSERT Customer VALUES('005','赵颖','广州','0755-22225555') Go INSERT Customer VALUES('0001','电视','3000.00','800') INSERT Customer VALUES('0002','空调','2000.00','500') INSERT Customer VALUES('0003','床','1000.00','300') INSERT Customer VALUES('0004','餐桌','1500.00','200') INSERT Customer VALUES('0005','音响','5000.00','600') INSERT Customer VALUES('0006','沙发','6000.00','100') Go INSERT Proln VALUES('2006-1-1','00001','10') INSERT Proln VALUES('2006-1-2','00002','5') INSERT Proln VALUES('2006-1-3','00001','5') INSERT Proln VALUES('2006-2-1','00003','10') INSERT Proln VALUES('2006-2-2','00001','10') INSERT Proln VALUES('2006-2-3','00003','20') INSERT Proln VALUES('2006-3-2','00001','10') INSERT Proln VALUES('2006-3-2','00004','30') INSERT Proln VALUES('2006-3-3','00003','20') Go INSERT ProOut VALUES('2006-1-1','001','00001','10','5000') INSERT ProOut VALUES('2006-1-2','001','00002','5','4000') INSERT ProOut VALUES('2006-1-3','002','00001','5','7000') INSERT ProOut VALUES('2006-2-1','002','00003','10','6000') INSERT ProOut VALUES('2006-2-2','001','00001','10','4000') INSERT ProOut VALUES('2006-2-3','001','00003','20''6000') INSERT ProOut VALUES('2006-3-2','003','00001','10','5500') INSERT ProOut VALUES('2006-3-2','003','00004','30') INSERT ProOut VALUES('2006-3-3','002','00003','20') Go --使用ALTER TABLE 语句为已经创建的
表
添加主键约束、外键约束 ALTER TABLE Customer ADD CONSTRAINT PK_Customer PRIMARY KEY(CusNo) GO ALTER TABLE Product ADD CONSTRAINT PK_Product PRIMARY KEY(ProNo) GO ALTER TABLE Proln ADD CONSTRAINT PK_Proln PRIMARY KEY(ProNo) GO ALTER TABLE ProOut ADD CONSTRAINT PK_ProOut PRIMARY KEY(CusNO,ProNo) GO --约束客户
表
Customer的CosNo的
列
值长度为3,产品
表
Product 的ProNo
列
值长度为5 ALTER TABLE Coustomer ADD CONSTRAINT CK_CusNo CHECK (CusNo like '[0-9][0-9][0-9]') GO ALTER TABLE Product ADD CONSTRAINT CK_ProNo CHECK(ProNo like'[0-9][0-9][0-9][0-9][0-9]') GO --对产品
表
Product 的Stocks
列
、Price
列
、入库
表
Proln的Quanity
列
、销售
表
ProOut 的Quanity --
列
值进行约束,使其值大于0 ALTER TABLE Product ADD CONSTRAINT CK_Stock CHECK(Stock>0) ALTER TABLE Product ADD CONSTRAINT CK_Price CHECK(Price>0) ALTER TABLE Proln ADD CONSTRAINT CK_Quantity CHECK (Quantity>0) ALTER TABLE ProOut ADD CONSTRAINT CK_Quantity CHECK(Quantity>0) GO --对销售
表
ProOut的SaleDate
列
进行约束,当不输入值时,系统默认其值为系统当前日期 ALTER TABLE ProOut ADD CONSTRAINT DF_ProOut_SaleDate DEFAULT('当前日期')FOR Date GO --用户按照CusName查询客户信息,希望提高查询速度 CREATE UNIQUE INDEX IX_CusName ON Customer(CusName) GO --用户按照ProName查询产品信息,希望提高查询速度 CREATE UNIQUE INDEX IX_ProName ON Product(ProName) GO --用户按照SaleDate查询产品信息,希望提高查询速度 CREATE UNIQUE INDEX IX_SaleDate ON ProOut(SaleDate) GO --计算有多少种产品(假设为x),然后显示一条信息:共有X种产品 DECLARE @X int SET @X =(SELECT COUNT (*) FROM Product ) PRINT '共有'+convert (char(2),@x)+'种产品。' GO --编写计算n!(n=20)的程序,并显示结果。 DECLARE @X int,@product int SELECT @X=1,@product=1 WHILE @X<=20 BEGIN SELECT @X=@X+1 SELECT @product=@product*@X END SELECT '1*2*3*......*20的积'=@product GO --创建视图V_Sale1,并显示销售日期、客户编号、客户姓名、产品编号、产品名称、单价 --销售数量、销售金额 CREATE VIEW V_Sale1 AS SELECT SaleDate,Customer.CusNO,CusName,Product.ProNO,ProName,Price,Proout.Quantity, COUNT (*)Amount FROM Customer ,Product,Proln,Proout WHERE Customer.CusNO=Proout.CusNo AND Product.ProNO=Proln.ProNo AND Product.ProNO=Proout.ProNo AND Proout.Quantity=Proln.Quantity GO --创建视图V-Sale2,统计每种产品的销售数量和销售金额。统计结果包括产品编号、 --产品名称、单价、销售数量和销售金额 CREATE VIEW V_Sale2 AS SELECT Product.ProNO ,ProName,Price,Proout.Quantity ,COUNT(*)AMOUNT FROM Product ,Proout ,Proln GROUP BY ProName GO --创建视图V_Sale3,统计销售金额在10万以下的产品信息。 CREATE VIEW V_Sale3 AS SELECT Product.ProNO ,Product.ProName FROM Product ,Proout WHERE Product.ProNO=Proout.ProNo GROUP BY Product.ProNO,ProName HAVING SUM (Price*Quantity)<100000 GO &鉻 ? 鎼?跴睱0 17240671.10.6.
sql
鹦?--2018-5-18 第11周周五 --存储过程 --[问题11.1],[问题11.2] USE Xk GO CREATE PROCEDURE P_Student AS SELECT * FROM Student WHERE ClassNo='20000001' GO --执行存储过程 P_Student GO --查看存储过程 SP_HELP P_Student GO SP_HELPTEXT P_Student GO SP_DEPENDS P_Student GO CREATE PROCEDURE P_StudentPara @ClassNo nvarchar(8) AS SELECT * FROM Student WHERE ClassNo=@ClassNo GO EXEC P_StudentPara '20000001' GO --[问题11.4] --问题:带参数的存储过程时传递参数有几种方式? --如何创建和执行带输出参数的存储过程?[问题11.7] EXEC P_StudentPara @ClassNo='20000001' GO EXEC P_StudentPara @ClassNo='20000002' GO CREATE PROCEDURE P_ClassNum @ClassNo nvarchar (8),@ClassNum smallint OUTPUT AS SET @ClassNum= ( SELECT COUNT(*)FROM Student WHERE ClassNo=@ClassNo=@ClassNo ) PRINT @ClassNum GO DECLARE @ClassNo nvarchar (8),@ClassNum smallint SET @ClassNo='20000001' EXEC P_ClassNum @ClassNo,@ClassNum OUTPUT SELECT @ClassNum GO ALTER PROCEDURE P_StudentPara @ClassName nvarchar(20) WITH ENCRYPTION AS SELECT ClassName,StuNo,StuName,Pwd FROM Student,Class WHERE Student.ClassNo=Class.ClassNo AND ClassName LIKE '%'+@ClassName+'%' GO USE master GO XP_LOGINCONFIG GO XP_CMDSHELL 'DIR D:\*.*' GO 挌t ? ? ? RE粣甈筁0 17240671.12.1.
sql
養--2018年5月25日 --12.1创建触发器Update_Student_Trigger,实现每当修改Student
表
中
的数据时,在客户端显示"已修改Student
表
的数据。"的消息。 USE Xk GO CREATE TRIGGER Update_Student_Trigger ON Student FOR UPDATE AS PRINT'已修改Student
表
的数据。' GO UPDATE Student SET Pwd='11111111' WHERE StuNo='00000001' --12.2修改触发器Update_Student_Trigger,在确实修改了Student
表
中
的数据后返回"已修改Student
表
的数据。",否则返回"不存在要修改的数据。"。 USE Xk GO ALTER TRIGGER Update_Student_Trigger ON Student FOR UPDATE AS IF(SELECT COUNT(*) FROM inserted)<>0 PRINT'已修改 Student
表
的数据。' ELSE PRINT '不存在要修改的数据。' GO --12.4创建替代触发器UPDATE_Department_Trigger,修改Department
表
的数据时触发器发器,用执行触发器
中
的语句替代触发的
SQL
语句。 USE Xk GO CREATE TRIGGER UPDATE_Department_Trigger ON Department INSTEAD OF UPDATE AS PRINT'实际上并没有修改Department
表
中
的数据。' GO UPDATE Department SET DepartName='软件工程系'WHERE DepartNo='01' --12.5创建
一个
触发器,当插入,更新或删除StuCou
表
的选课数据行时,能同时更新Course
表
中
相应的报名人数。 USE Xk GO CREATE TRIGGER SetWillNum ON StuCou FOR INSERT,UPDATE,DELETE AS UPDATE Course SET WillNum=WillNum+1 WHERE CouNo=(SELECT CouNo FROM INSERTED) UPDATE Course SET WillNum=WillNum-1 WHERE CouNo=(SELECT CouNo FROM DELETED) PRINT '已自动更新Course
表
中
相应课程的报名人数。' GO SELECT * FROM Course WHERE CouNo='002' SELECT * FROM Course WHERE CouNo='003'|鵷 ? 魸儕擯綥0 17240671.13.1.
sql
鹭贒--2018-05-30 USE Xk GO SELECT * FROM Student WHERE StuName LIKE '张%' GO --创建
一个
游标,逐渐显示姓张同学的信息 --步骤1:声明游标 DECLARE CUR_StuName CURSOR FOR SELECT * FROM Student WHERE StuName LIKE '张%' GO --打开游标 OPEN CUR_StuName --显示游标位置的数据行 FETCH CUR_StuName WHILE @@FETCH_STATUS=0 FETCH CUR_StuName GO SELECT @@FETCH_STATUS --关闭游标 CLOSE CUR_StuName --释放游标 DEALLOCATE CUR_StuName GO --任意给出学号,然后允许修改名字。使用游标完成。 CREATE PROCEDURE P_StuName @StuNo nvarchar(8),@StuName nvarchar(10) AS --用来接收FETCH的数据行 DECLARE @StuNo nvarchar(8),@StuName nvarchar(10),@ClassNo nvarchar(8),@Pwd nvarchar(8) --声明游标 DECLARE CUR_StuName CURSOR FOR SELECT * FROM Student --打开游标 OPEN CUR_StuName --FETCH游标位置的数据到4个变量里 FETCH CUR_StuName INTO @StuNo,@StuName,@ClassN0,@Pwd WHILE @@FETCH_STATUS=0 BEGIN IF(@StuNo=@InputStuNo) UPDATE Student SET StuName=@InputStuName WHERE CURRENT OF CUR_StuName FETCH CUR_StuName INTO @StuNo,@StuName,@ClassNo,@Pwd END --关闭游标 CLOSE CUR_StuName --释放游标 DEALLOCATE CUR_StuName GO --执行,将'00000046' '张峰'名字改为'张锋' P_StuName '00000046','张锋' GO g豻 ? ` ` )锋?P芁0 17240671.14.1.
sql
版蕂--2018-06-06 USE Xk GO --开始事务,
一个
学生报3门课 BEGIN TRANSACTION INSERT StuCou(StuNo,CouNo,WillOrder,State) VALUES ('00000025','001',1) INSERT StuCou(StuNo,CouNo,WillOrder,State) VALUES ('00000025','002',2) INSERT StuCou(StuNo,CouNo,WillOrder,State) VALUES ('00000025','003',3) --提交事务,保存在StuCou
表
中
COMMIT TRANSACTION SELECT * FROM StuCou WHERE StuNo='00000025' GO BEGIN TRANSACTION INSERT StuCou(StuNo,CouNo,WillOrder,State) VALUES ('00000025','001',1,'报名') INSERT StuCou(StuNo,CouNo,WillOrder,State) VALUES ('00000025','002',2,'报名') INSERT StuCou(StuNo,CouNo,WillOrder,State) VALUES ('00000025','003',3,'报名') --撤销事务,撤销刚插入的3行数据 ROLLBACK TRANSACTION SELECT * FROM StuCou WHERE StuNo='00000025' GO USE Xk GO BEGIN TRANSACTION --报3门课程 INSERT StuCou(StuNo,CouNo,WillOrder) VALUES ('00000025','001',1) INSERT StuCou(StuNo,CouNo,WillOrder) VALUES ('00000025','002',2) INSERT StuCou(StuNo,CouNo,WillOrder) VALUES ('00000025','003',3) DECLARE @CountNum INT SET @CountNum=(SELECT COUNT(*)FROM StuCou WHERE StuNo='00000025') IF @CountNum>3 BEGIN ROLLBACK TRANSACTION PRINT '报名的课程超过所规定的3门,所以报名无效。' END ELSE BEGIN COMMIT TRANSACTION PRINT '恭喜,选修课程报名成功!' END --测试 SELECT *FROM StuCou WHERE StuNo='00000025' --删除 DELETE FROM StuCou WHERE StuNo='00000025'?t ? ? ? ??諴萀0 17240671.14.2.
sql
?螶USE Xk GO EXEC sp_lock GO USE Xk SET DEADLOCK_PRIORITY LOW BEGIN TRANSACTION --事务
中
,系统自动为Student
表
中
StuNo='0000001'的数据行加锁 UPDATE Student SET Pwd='1111111' WHERE StuNo='00000001' GO USE Xk GO --事务
中
,系统自动为Course
表
中
CouNo='002'的数据行加锁 UPDATE Course SET Credit=4 WHERE CouNo='002' GO SET LOCK_TIMEOUT 1800 /*将锁超时时限设置为1800毫秒*/ GO SELECT @@LOCK_TIMEOUT GO USE master GO ?t ? ?I吢P橪0 17240671.8-1.
sql
痧u--2018年-04月-25日 --检查约束: USE Xk GO ALTER TABLE Student ADD CONSTRAINT CK_StuNo CHECK (StuNo like'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]' AND StuNo<>'00000000') GO --问题[7.14] USE Xk GO ALTER TABLE Student DROP CONSTRAINT CK_StuNo GO ALTER TABLE StuCou ADD CONSTRAINT CK_WillOrder CHECK (WillOrder IN(1,2,3,4,5)) GO USE Xk GO ALTER TABLE StuCou ADD CONSTRAINT DF_StuCou_State GO USE Xk GO --创建名为UnsureDefault的默认值 CREATE DEFAULT UnsureDefault AS'待定' GO --将默认值UnsureDefault 绑定到 Course
表
的 Teacher
列
上 EXEC sp_bindefault,'Course.Teacher' GO --创建book
表
USE Xk GO CREATE TABLE book ( bookID int IDENTITY(1,1), bookName varchar(30) NOT NULL ) GO --输入行数据,只输入BookName
列
值,标识
列
bookID由系统自动生成 INSERT book(bookName) VALUES('计算机网络技术') INSERT book(BookName) VALUES('软件测试技术') INSERT book(BookName) VALUES('动态WEB技术') GO --显示book
表
信息 SELECT * FROM book GO 暐t ? 6 6 洰澥P汱0 17240671.8.2.
sql
安淣USE Xk GO CREATE UNIQUE INDEX IX_CouName ON Course (CouName) GO --2,将Student
表
的IX_StuName引重命名为IX_StuNameNew USE Xk GO EXEC sp_rename 'Student.IX_StuName','IX StuNameNew' GO --3,删除Course
表
上名字为IX_CouName的索引。 USE Xk GO DROP INDEX Course.IX_CouName GO --4,在Xk数据
中
的Student
表
上查询姓“林”学生的信息,并分析哪些索引被系统采用。 USE Xk GO SET SHOWPLAN_ALL ON; GO SELECT StuNo,StuName FROM Student WHERE StuName LIKE '林%' GO SET SHOWPLAN_ALL OFF; GO --5,在Xk数据库
中
的Student
表
上查询学号为“00000001”的学生信息,并分析哪些索引被系统采用。 USE Xk GO SET SHOWPLAN_ALL ON; GO SELECT StuNo FROM Student WHERE StuNo='00000001' GO SET SHOWPLAN_ALL OFF; GO --6,在Xk数据库
中
的Student
表
上查询姓名为“林斌”的学生信息,并分析执行该数据查询所花费的磁盘活动量信息。 USE Xk GO SET STATISICS IO ON GO SELECT * FROM Student WHERE StuName='林斌' GO SET STATISICS IO OFF GO --7,使用UPDATE STATISTICS语句更新Xk数据库
中
的Student
表
的PK_Student索引的统计信息。 USE Xk GO UPDATE STATISTICS Student PK_Student GO ?{ @ 课后实训
sql
s
eve
r 2008
Microsoft
SQL
Server 2008 Service Pack 3 (SP3) 现在可供下载。我们不仅控制着产品更改,而且还投入了很大的力量来简化 Service Pack 的部署和管理。对于客户来说,Microsoft
SQL
Server 2008 Service Pack 3
中
有这样几项重要改进: 从
SQL
Server 的旧版本升级到
SQL
Server 2008 SP3 的过程体验
得到
了改进。另外,我们增强了安装体验的性能和可靠性。 在
SQL
Server Integration Services 日志
中
,现在能看到在数据流
中
发送的总行数。 在启用了“缩减数据库”选项的情况下创建维护计划时的警告信息
得到
了改进。 在启用了透明数据加密的情况下解决数据库问题,而且即使删除了证书也能使用数据库。 在 DTA(数据库调节顾问)引用经过索引的“空间
数据类型
”
列
时,查询结果经过了优化。 用户在并行执行计划
中
使用“序
列
函数”(如 Row_Numbers())可获得优异的体验。 Microsoft
SQL
Server 2008 Service Pack 2 不是安装
SQL
Server 2008 Service Pack 3 的先决条件。可以使用这些包升级以下
SQL
Server 2008 版本: Enterprise Standard Evaluation 开发人员 Workgroup
SQL
Server 2008 SP3 包含
SQL
Server 2008 SP2 累积更新包 1 至 4 的累积更新,以及对通过客户反馈平台所收集问题的修复。它包括可支持性增强以及通过 Windows 错误报告收集的问题。 支持的操作系统:Windows 7;Windows Server 2003;Windows Server 2008;Windows Server 2008 R2;Windows Vista Windows 7; Windows8, Windows Server 2003 Service Pack 2 和 R2;Windows Server 2008 Service Pack 1 和 Service Pack 2;Windows Server 2008 R2;Windows Vista Service Pack 1 和 Service Pack2;Windows XP Service Pack 332 位系统 (x86)具有 Intel Pentium III 600 MHz(或同等性能的兼容处理器)或速度更快的处理器(建议使用 1 GHz 或速度更快的处理器)的 PC64 位系统(x64、ia64)1 GHz 或速度更快的处理器最低 512 MB 的 RAM(建议使用 1 GB 或更高的 RAM)675 MB 可用硬盘空间。
SQL
Server 2019数据库基础入门视频教程
我讲的这门课程主要涉及
SQL
Server数据的基础操作和
SQL
语法,因为99.9%的软件技术人员掌握这些就可以了,数据库的大部分功能,我们平时是用不到的,所以不用花太多时间去研究,在需要的时候百度就可以了。...
21天学会
SQL
轻轻松松学数据库!!
SQL
Server 2008是微软的
SQL
Server数据库
中
的最新版本,在该版本的数据库产品
中
融入了更多商业智能的内容。本书
中
也使用了一篇专门讲解了与商业智能有关的一些内容。 本书总分为5篇,共21章。第一篇主要讲解数据库的基础,包括数据库的概念及安装。第二篇讲解数据库管理的常用知识,包括数据库的管理、
表
的管理、确保数据的完整性及用户权限的设置等内容。第三篇主要讲解
SQL
的编程,包括T-
SQL
语言、存储过程及触发器。第四篇讲解与商业智能有关的内容,包括集成服务、报
表
服务和分析服务。最后一篇是综合案例篇,分别使用.NET和Java语言实现了与
SQL
Server 2008的连接,并完成了图书管理系统和在线订餐系统。 第一篇
SQL
Server 2008基础篇 第1章 学习数据库的准备 ( 教学视频:58分钟) 15 1.1 认识数据库 15 1.1.1 为什么要使用数据库 15 1.1.2 认识数据库产品 15 1.2 了解数据库对象 17 1.2.1
表
17 1.2.2 视图 17 1.2.3 索引 18 1.2.4 存储过程 18 1.2.5 触发器 18 1.3 认识
SQL
语言 18 1.3.1 什么是
SQL
18 1.3.2
SQL
语言的分类 19 1.4 绘制E-R图设计数据库 20 1.4.1 绘制E-R图的基本要素 20 1.4.2 E-R图绘制实例 22 1.5 小结 24 1.6 习题 24 第2章 数据库的安装 ( 教学视频:26分钟) 26 2.1
SQL
Server 2008版本介绍 26 2.1.1
SQL
Server 2008服务器版 26 2.1.2
SQL
Server 2008专业版 26 2.2
SQL
Server 2008环境需求 27 2.2.1
SQL
Server 2008 Enterprise的 软硬件要求 27 2.2.2
SQL
Server 2008 Enterprise Evaluation的软硬件要求 28 2.3 安装
SQL
Server 2008 29 2.3.1 自己动手安装
SQL
Server 2008 29 2.3.2 安装示例数据库 39 2.4 认识
SQL
Server Management Studio (企业管理器) 40 2.4.1 访问
SQL
Server Management Studio 40 2.4.2
SQL
Server Management Studio 菜单简介 42 2.4.3 查询编辑器窗口 43 2.4.4 对象资源管理器 44 2.4.5
SQL
编辑器 44 2.5 小结 45 2.6 习题 45 第二篇
SQL
Server 2008管理篇 第3章 数据库操作 ( 教学视频:43分钟) 47 3.1 在SSMS
中
创建数据库 47 3.1.1 数据库命名需要注意的问题 47 3.1.2 数据库的所有者与权限 48 3.1.3 创建数据库 48 3.2 在SSMS
中
修改数据库配置 52 3.2.1 使用SSMS修改数据库配置的 通用步骤 52 3.2.2 在SSMS
中
添加数据库文件 53 3.2.3 在SSMS
中
删除数据库文件 53 3.2.4 修改数据库的所有者 55 3.2.5 限制用户的访问 56 3.2.6 设置用户对数据库的使用权限 57 3.2.7 修改数据库名称 59 3.3 使用
SQL
语句创建、修改、 删除数据库 59 3.3.1 用CREATE DATABASE语句 创建数据库 59 3.3.2 用ALTER DATABASE语句 修改数据库 60 3.3.3 用DROP DATABASE语句 删除数据库 62 3.4 附加与分离数据库 63 3.4.1 分离数据库 63 3.4.2 附加数据库 64 3.5 编写数据库脚本文件 66 3.6 综合练习 67 3.7 小结 69 3.8 习题 69 第4章 数据
表
操作 ( 教学视频:39分钟) 71 4.1 认识
数据类型
71 4.1.1 字符型
数据类型
71 4.1.2 数值型
数据类型
72 4.1.3 日期和时间
数据类型
73 4.1.4 其他
数据类型
73 4.2 创建数据
表
74 4.2.1 创建数据
表
的语法 74 4.2.2 创建主键 75 4.2.3 使用SSMS创建
表
76 4.2.4 创建标识
列
78 4.3 修改
表
结构 79 4.3.1 修改
表
结构的语法 80 4.3.2 在SSMS
中
修改
表
结构 82 4.4
表
的删除、截断与重命名 82 4.4.1 使用SSMS删除和重命名
表
83 4.4.2 使用DROP TABLE语句删除
表
83 4.4.3 截断
表
84 4.4.4 重命名
表
85 4.5 小结 85 4.6 习题 85 第5章 确保数据完整性 ( 教学视频:89分钟) 87 5.1 认识约束 87 5.1.1 什么是约束 87 5.1.2 约束的类型 88 5.1.3 约束的语法 89 5.2 使用约束 90 5.2.1 利用SSMS创建主键约束 90 5.2.2 利用T-
SQL
增加主键约束 91 5.2.3 利用SSMS创建外键约束 92 5.2.4 利用T-
SQL
增加外键约束 93 5.2.5 利用SSMS工具创建CHECK 约束 94 5.2.6 利用T-
SQL
增加CHECK约束 95 5.2.7 利用SSMS工具删除约束 96 5.3 事务的使用 96 5.3.1 什么是事务 96 5.3.2 事务的特性 97 5.3.3 事务的模式类型 97 5.3.4 事务的保存点 99 5.4 并发控制 100 5.4.1 并发访问的问题 100 5.4.2
SQL
Server
中
的锁 101 5.4.3 查看活跃事务 102 5.4.4 事务隔离级别 104 5.4.5 事务隔离级别的设置 104 5.5 事务的阻塞 105 5.6 死锁 107 5.6.1 死锁的产生 107 5.6.2 处理死锁 108 5.6.3 预防死锁 109 5.7 索引 109 5.7.1 认识索引 110 5.7.2 索引的创建 111 5.7.3 索引的管理 113 5.8 小结 115 5.9 习题 116 第6章 用户和权限管理 ( 教学视频:37分钟) 117 6.1 用户管理 117 6.1.1 创建使用Windows身份验证的
SQL
Server 登录名 117 6.1.2 创建使用
SQL
Server身份验证的
SQL
Server登录名 120 6.1.3 利用Transact-
SQL
创建 登录账号 121 6.1.4 创建数据库用户 122 6.1.5 使用Transact-
SQL
创建 数据库用户 123 6.1.6 登录账号和数据库用户的关系 124 6.2 认识角色 125 6.2.1 角色的划分 125 6.2.2 创建角色 127 6.2.3 给用户授予角色 128 6.3 认识权限 129 6.3.1 数据控制语言语法 129 6.3.2 给用户授予权限 131 6.4 架构 131 6.4.1 认识架构 132 6.4.2 架构的创建使用 133 6.4.3 架构的修改删除 134 6.5 小结 134 6.6 习题 135 第7章 数据的导入/导出与备份/恢复 ( 教学视频:27分钟) 136 7.1 了解
SQL
Server导入和导出向导 136 7.2 导入/导出数据 138 7.2.1 数据的导出 138 7.2.2 数据的导入 142 7.3 数据备份 145 7.3.1 认识数据备份 145 7.3.2 使用SSMS工具备份数据库 146 7.3.3 使用SSMS工具差异备份数据库 147 7.4 恢复数据 148 7.4.1 认识恢复数据 148 7.4.2 如何修改恢复模式 149 7.4.3 使用SSMS恢复数据库 150 7.5 小结 151 7.6 习题 151 第8章 使用
SQL
Server 2008
中
自动化管理功能 ( 教学视频:20分钟) 153 8.1 认识
SQL
Server代理 153 8.1.1 什么是
SQL
Server 代理 153 8.1.2 使用
SQL
Server代理 154 8.2 认识作业 155 8.2.1 什么是作业 155 8.2.2 创建作业 156 8.2.3 管理作业 160 8.3 认识警报 163 8.3.1 创建警报 164 8.3.2 在警报
中
触发作业 165 8.3.3 管理警报 166 8.4 认识操作员 166 8.4.1 创建操作员 167 8.4.2 管理操作员 169 8.5 小结 169 8.6 习题 170 第9章 查询数据 ( 教学视频:64分钟) 171 9.1 在SSMS
中
查看数据 171 9.2 使用简单SELECT语句查询数据 171 9.2.1 查询
表
中
所有数据 171 9.2.2 查询
表
中
指定字段的数据 172 9.2.3 查询结果
中
去除重复信息 174 9.2.4 根据现有
列
值计算新
列
值 174 9.2.5 命名新
列
175 9.2.6 将查询结果保存为新
表
176 9.2.7 连接字段 177 9.3 使用SELECT语句获取满足查询 条件的数据 178 9.3.1 指针与字段变量的概念 178 9.3.2 条件
表
达式 179 9.3.3 WHERE子句用法 181 9.3.4 根据条件查询数值数据 182 9.3.5 根据条件查询字符数据 183 9.3.6 根据条件查询日期数据 184 9.3.7 按范围查询数据 185 9.3.8 查询NULL值 186 9.4 排序查询数据 186 9.4.1 按单
列
排序 187 9.4.2 设置排序方向 187 9.4.3 按多
列
排序 188 9.4.4 按字段位置排序 188 9.4.5 查询前5行数据 189 9.4.6 WHERE与ORDER BY的 结合使用 189 9.5 高级条件查询 190 9.5.1 AND运算符 190 9.5.2 OR运算符 191 9.5.3 AND与OR的优先顺序问题 192 9.5.4 NOT运算符 193 9.5.5 IN运算符 193 9.5.6 LIKE运算符与“%”通配符 195 9.5.7 “_”通配符的使用 197 9.5.8 “[]”通配符的使用 197 9.5.9 定义转义字符 198 9.6 小结 199 9.7 习题 199 第10章 函数与分组查询数据 ( 教学视频:42分钟) 201 10.1 系统函数 201 10.1.1 聚合函数 201 10.1.2 类型转换函数 202 10.1.3 日期函数 204 10.1.4 数学函数 206 10.1.5 字符函数 207 10.1.6 其他几个系统函数 208 10.2 分组查询 212 10.2.1 将
表
内容按
列
分组 212 10.2.2 聚合函数与分组配合使用 214 10.2.3 查询数据的直方图 215 10.2.4 排序分组结果 215 10.2.5 反转查询结果 216 10.2.6 使用HAVING子句设置 分组查询条件 217 10.3 小结 218 10.4 习题 218 第11章 多
表
连接查询和子查询 ( 教学视频:79分钟) 220 11.1 连接查询 220 11.1.1 使用无连接规则连接两
表
220 11.1.2 使用有连接规则连接两
表
221 11.1.3 使用多
表
连接查询数据 222 11.1.4 使用
表
别名简化语句 223 11.1.5 使用INNER JOIN连接查询 223 11.1.6 连接查询实例 224 11.2 高级连接查询 226 11.2.1 自连接查询 226 11.2.2 内连接查询 227 11.2.3 左外连接查询 229 11.2.4 右外连接 230 11.2.5 全外连接 230 11.2.6 交叉连接查询 230 11.2.7 连接查询
中
使用聚合函数 232 11.2.8 高级连接查询实例 233 11.3 组合查询 235 11.3.1 使用组合查询 236 11.3.2 使用UNION的规则 237 11.3.3 使用UNION
得到
复杂的统计 汇总样式 238 11.3.4 排序组合查询的结果 238 11.3.5 组合查询的实例 239 11.4 子查询 240 11.4.1 使用返回单值的子查询 240 11.4.2 子查询与聚合函数的配合使用 241 11.4.3 子查询的实例 241 11.5 在SSMS查询设计器
中
设计查询 242 11.6 综合练习 245 11.7 小结 246 11.8 习题 246 第12章 插入、更新和删除数据 ( 教学视频:39分钟) 248 12.1 在SSMS
中
插入、更新、删除数据 248 12.1.1 插入数据 248 12.1.2 更新数据 249 12.1.3 删除数据 249 12.2 使用INSERT语句插入数据 250 12.2.1 插入完整的行 250 12.2.2 向日期时间型字段插入数据 251 12.2.3 将数据插入到指定字段 251 12.2.4 将查询结果插入
表
252 12.3 使用UPDATE语句更新数据 254 12.3.1 更新单个字段的数据 254 12.3.2 更新多个字段的数据 255 12.3.3 使用
表
连接更新数据 256 12.3.4 使用UPDATE语句删除 指定字段的数据 256 12.4 使用DELETE语句删除数据 257 12.4.1 使用DELETE语句删除 指定记录 257 12.4.2 在DELETE语句
中
使用 多
表
连接 258 12.4.3 使用DELETE语句删除 所有记录 259 12.5 使用TRUNCATE语句删除 所有记录 260 12.6 综合练习 260 12.7 小结 262 12.8 习题 263 第13章 视图 ( 教学视频:38分钟) 264 13.1 视图基础 264 13.2 视图的创建 266 13.2.1 在SSMS
中
创建视图 266 13.2.2 使用CREATE VIEW语句 创建视图 268 13.2.3 用别名命名视图字段 269 13.2.4 创建视图时的注意事项 270 13.2.5 创建加密视图 271 13.3 查看与修改视图 272 13.3.1 查看视图内容 272 13.3.2 在SSMS
中
修改视图 272 13.3.3 用ALTER VIEW修改视图 272 13.4 使用视图操作
表
数据 274 13.4.1 在SSMS
中
操作 视图
中
的数据 274 13.4.2 使用INSERT语句插入数据 274
SQL
技术文摘
SQL
Server删除重复数据记录
文本文件导入导出校验工具[原创]
MS
SQL
Server如何恢复或修复MS
SQL
数据库的MDF文件
如何删除仅仅第一
列
相同的记录?
使用联接来查询多个
表
SET NOCOUNT { ON | OFF } 说明
用sp_lock诊断
SQL
S
eve
r的性能问题
sql
server临时
表
如何保存数据库连接参数代码及步骤详解
用数据源访问数据库
GDI+ 在Delphi程序的应用 -- 图像亮度/对比度调整
导入导出:数据库导出Txt文本文件格式校验[原创]
0RACLE的字段类型
phpMyAdmin
逆向思维撰写
SQL
语句
图解设定
Sql
Server2000定期自动备份数据库
获得DW
中
所有对象
有关正在打开的
sql
语句(open_cursor之诊断)
数据挖掘
SQL
Server 2005:你应该知道的13件事情
存储过程和触发器
错误提示:OLE DB error: OLE DB or ODBC error: Query timeout expired HYT00
SQL
Server 2005——你应该知道的13件事情
只有mdf文件的数据库附加失败的修复
sql
2000全文搜索
VB
16,553
社区成员
110,527
社区内容
发帖
与我相关
我的任务
VB
VB技术相关讨论,主要为经典vb,即VB6.0
复制链接
扫一扫
分享
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章