CREATE DATABASE testdb
ON PRIMARY
(
NAME=testdb_data,
FILENAME='E:\SJD\testdb_data.mdf',
SIZE=5MB,
MAXSIZE=15MB,
FILEGROWTH=20%
)
LOG ON
(
NAME=testdb_log,
FILENAME='E:\SJD\testdb_data.idf',
SIZE=5MB,
MAXSIZE=15MB,
FILEGROWTH=1MB
)
USE testdb
GO
CREATE TABLE stu
(
Sno CHAR(10) NOT NULL,
Sname VARCHAR(30) NOT NULL,
Ssex CHAR(20) NOT NULL
)
select top(3) Tno,Tname
from Teacher
order by Tbirthday
select Ttitle ,count(*) as '人数'
from Teacher
group by Ttitle
select Tname
from Teacher
where Tname like '王%'and LEN(tname)=3
SELECT student.Sno 学号, sname 姓名 , cname 课程名
FROM Result INNER JOIN Course
ON result.cno=course.cno
INNER JOIN student
ON student.sno=result.sno
SELECT Tno 工号,Tname 姓名
FROM Teacher
WHERE Ttitle=(SELECT Ttitle
FROM Teacher
WHERE Tno='0201') AND Tno='0201'
create procedure kcgc
@DEPT NCHAR(10)
AS
SELECT SNO,SNAME,DEPT
FROM 数据表
where DEPT=@DEPT
exec kcgc @DEPT='3dsmax'
UPDATE student
SET sscore=sscore+15
select * from student where student.sname like '王_'
SELECT sno 学号,cno 课程号,grade 成绩
FROM choice
WHERE sno IN (SELECT sno
FROM student
WHERE sscore>=500)
SELECT tno,tname,tbirthday,
(YEAR(GETDATE())-YEAR(tbirthday))
FROM teacher
WHERE tsex='男' AND (YEAR(GETDATE())-YEAR(tbirthday))>=30 AND (YEAR(GETDATE())-YEAR(tbirthday))<=40
SELECT AVG(grade) 平均分,cname 课程名称
FROM choice INNER JOIN course
ON course.cno=choice.cno
GROUP BY cname
SELECT sno 学号,cno 课程号,grade 成绩
FROM choice
WHERE sno IN (SELECT sno
FROM student
WHERE sscore>=500)
SELECT student.sno 学号,cno 课程号,grade 成绩
FROM choice INNER JOIN student
ON choice.sno=student.sno
WHERE sscore>=500
CREATE TRIGGER update_sname
ON student
FOR UPDATE
AS
IF UPDATE(sname)
BEGIN
PRINT'不能修改学生姓名!'
ROLLBACK TRAN
END
UPDATE student
SET sname='asdasd'
WHERE sno='0601011101'
CREATE DATABASE ProductSales
ON PRIMARY
(
NAME=ProductSales_data,
FILENAME='E:\SJD\ProductSales_data.mdf',
SIZE=5MB,
MAXSIZE=15MB,
FILEGROWTH=20%
)
LOG ON
(
NAME=ProductSales_log,
FILENAME='E:\SJD\ProductSales_data.idf',
SIZE=5MB
)
USE ProductSales
GO
CREATE TABLE Product
(
ProductID INT PRIMARY KEY ,
ProductName VARCHAR(50),
Price INT
)
INSERT INTO Product
VALUES
(1,'HP1200打印机','2000'),
(2,'LX360兼容机','4800'),
(3,'IBM350笔记本','11000'),
(4,'IBM360笔记本','12000')
USE ProductSales
GO
CREATE TABLE Sales
(
ProductID INT foreign key (ProductID) references Product(ProductID) ,
ClientName VARCHAR(50),
ProductNumber INT,
SalesPrice INT
)
INSERT INTO Sales
VALUES
(2,'北大青鸟','10','4500'),
(1,'北大青鸟','25','1800'),
(3,'联想集团','10','11000'),
(2,'联想集团','30','4500'),
(1,'联想集团','20','1800'),
(3,'北大方正','40','10000'),
(3,'诺基亚','20','10500')
USE ProductSales
GO
SELECT ClientName 客户名称,ProductNumber 购买数量,SalesPrice 销售价格
FROM Sales
WHERE ProductNumber>15
USE ProductSales
GO
SELECT SUM(ProductNumber*SalesPrice)
FROM Sales
SELECT ClientName 客户姓名,SUM(ProductNumber*SalesPrice) 销售总金额
FROM Sales
GROUP BY ClientName
SELECT Product.ProductName, Sales.ClientName, Sales.ProductNumber
FROM Product INNER JOIN
Sales ON Product.ProductID = Sales.ProductID
WHERE Product.ProductName = 'IBM350笔记本'
UPDATE Sales
SET ClientName='北大青鸟APTECH'
WHERE ClientName='北大青鸟'
CREATE TRIGGER update_pno
ON product
FOR UPDATE
AS
IF UPDATE(ProductName)
BEGIN
PRINT '不能修改产品名称'
ROLLBACK TRANSACTION
END
UPDATE product
SET ProductName='HP1000打印机'
WHERE ProductID='1'
CREATE DATABASE Factory
ON PRIMARY
(
NAME=Factory_data,
FILENAME='E:\SJD\Factory_data.mdf',
SIZE=5MB,
MAXSIZE=15MB,
FILEGROWTH=20%
)
LOG ON
(
NAME=ProductSales_log,
FILENAME='E:\SJD\Factory_data.idf',
SIZE=5MB,
MAXSIZE=10MB,
FILEGROWTH=1MB
)
USE Factory
GO
CREATE TABLE Product
(
Wname VARCHAR(20) PRIMARY KEY ,
Wsex VARCHAR(4) CHECK(Wsex='男'or Wsex='女'),
Wbirthday DATETIME,
DepartNo INT
)
INSERT INTO Product
VALUES
('孙华','男','1952-1-3','1'),
('孙天奇','女','1965-3-10','2'),
('陈明','男 ','1945-5-8','2'),
('李华','男','1956-8-7','3'),
('余慧','男','1980-12-4','3')
USE Factory
GO
CREATE TABLE Depart
(
Dno INT PRIMARY KEY ,
DName VARCHAR(20)
)
INSERT INTO Depart
VALUES
('1','财务处'),
('2','人事处'),
('3','市场部')
SELECT DepartNo 职工工号,Wname 姓名
FROM Product
WHERE YEAR(Wbirthday)>1970
SELECT Depart.DName, Product.Wname
FROM Depart INNER JOIN
Product ON Depart.Dno = Product.DepartNo
WHERE Product.Wname LIKE '孙%'
SELECT TOP (50) PERCENT Depart.Dno, Product.Wname, Depart.DName, Product.Wbirthday
FROM Depart INNER JOIN
Product ON Depart.Dno = Product.DepartNo
ORDER BY Product.Wbirthday
SELECT Depart.Dno, Product.DepartNo, Product.Wname, Depart.DName
FROM Depart INNER JOIN
Product ON Depart.Dno = Product.DepartNo
WHERE DepartNo=2
DELETE FROM Product WHERE Wsex='男'
CREATE TRIGGER update_name
ON product
FOR UPDATE
AS
IF UPDATE(Wname)
BEGIN
PRINT '不能修改产员工名称'
ROLLBACK TRANSACTION
END
UPDATE Product
SET Wname='陈晨'
WHERE DepartNo='3'
CREATE DATABASE MyQQ
ON PRIMARY
(NAME=MyQQ_data,
FILENAME='E:\SJD\MyQQ_data.mdf',
SIZE=5MB,
MAXSIZE=15MB,
FILEGROWTH=20%)
LOG ON
(NAME=MyQQ_log,
FILENAME='E:\SJD\MyQQ_log.ldf',
SIZE=5MB,
MAXSIZE=10MB,
FILEGROWTH=1MB)
CREATE TABLE Users
(
Id int constraint pk_users Primary key,
LoginPWD char(6) not null,
NickName char(20) ,
Sex char(2),
Star char(6),
BloodTypeId int not null,
)
INSERT INTO Users
(Id,LoginPWD,NickName,Sex,Star,BloodTypeId)
VALUES
(1,'0000','豆豆','男','白羊座',1)
INSERT INTO Users
(Id,LoginPWD,NickName,Sex,Star,BloodTypeId)
VALUES
(2,'00A0','小强','男','双子座',4)
INSERT INTO Users
(Id,LoginPWD,NickName,Sex,Star,BloodTypeId)
VALUES
(3,'0000','静静','女','双子座',2)
INSERT INTO Users
(Id,LoginPWD,NickName,Sex,Star,BloodTypeId)
VALUES
(4,'00B0','.NET','男','巨蟹座',3)
INSERT INTO Users
(Id,LoginPWD,NickName,Sex,Star,BloodTypeId)
VALUES
(5,'0CC0','bobo','女','狮子座',1)
CREATE TABLE Blood
(
id int,
BloodType char(4),
)
insert into Blood (id,BloodType)
values
(1,'A型')
insert into Blood (id,BloodType)
values
(1,'B型')
insert into Blood (id,BloodType)
values
(1,'O型')
insert into Blood (id,BloodType)
values
(1,'AB型')
select Nickname 用户姓名 ,Sex 性别
from users
where BloodTypeId=(select id from blood where BloodType='A型' )
SELECT NickName,Sex
FROM Users
WHERE LoginPWD LIKE '%A%'
SELECT NickName,LoginPWD
FROM Users INNER JOIN Blood
ON Users.Id=Blood.id
WHERE Blood.BloodType='A型' AND Users.Star='狮子座' AND Sex='女'
SELECT Star 星座,COUNT(*) 人数
FROM Users
GROUP BY Star
update users
set nickname='天外飞仙'
where nickname='.NET'
CREATE PROC proc_Star
@star VARCHAR(50)
AS
SELECT Users.NickName,Sex
FROM dbo.Users INNER JOIN
dbo.Blood ON dbo.Users.Id = dbo.Blood.id
WHERE Star=@star
EXEC proc_Star '双子座'
CREATE DATABASE Department
ON PRIMARY
(
NAME=Department_data,
FILENAME='E:\SJD\Department_data.mdf',
SIZE=10MB,
MAXSIZE=100MB,
FILEGROWTH=10%
)
LOG ON
(
NAME=Department_log,
FILENAME='E:\SJD\Department_log.ldf',
SIZE=5MB,
MAXSIZE=10MB,
FILEGROWTH=1MB
)
use department
go
CREATE TABLE Teacher
(
Teacher_id int not null primary key,
Name char(20) not null,
Sex char(2) not null,
age int not null,
nation varchar(50),
title varchar(20)
)
use department
go
Create table course
(
Course_id char(7),
Course_name varchar(50)
)
use department
go
Create table teach
(
id char(7) NOT NULL ,
Teacher_id char(7) NOT NULL,
Course_id char(7) NOT NULL,
Numberoflesson int NULL
)
insert into course
(course_id, course_name)
values
('100001','SQL Server数据库')
insert into course
(course_id, course_name)
values
('100002','数据结构')
insert into course
(course_id, course_name)
values
('100003',' VB程序设计')
insert into teach
(id,teacher_id,course_id,numberoflesson)
values
('50001','1010105', '100001',76)
insert into teach
(id,teacher_id,course_id,numberoflesson)
values
('50002','1010105', '100001',98)
insert into teach
(id,teacher_id,course_id,numberoflesson)
values
('50003','1010107', '100003',56)
insert into teach
(id,teacher_id,course_id,numberoflesson)
values
('50004','1010108', '100001',76)
insert into teach
(id,teacher_id,course_id,numberoflesson)
values
('50005','1010109', '100002',108)
insert into teacher
(Teacher_id, Name,sex,age,nation,title)
values
(1010105,'韦海忠', '男',55 ,'汉族', '教授')
insert into teacher
(Teacher_id, Name,sex,age,nation,title)
values
(1010106,'赵国富', '男',46,'汉族', '副教授')
insert into teacher
(Teacher_id, Name,sex,age,nation,title)
values
(1010107,'金啸胜', '男',31,'汉族', '讲师')
insert into teacher
(Teacher_id, Name,sex,age,nation,title)
values
(1010108,'郭伯法', '男',34,'汉族', '副教授')
insert into teacher
(Teacher_id, Name,sex,age,nation,title)
values
(1010109,'郭浩', '女',26,'苗族', '助教')
SELECT AVG(Age) 平均年龄
FROM Teacher
SELECT *
FROM teacher
WHERE Name LIKE '郭%'
Select title 职称, count(*)人数
From teacher
Where title='副教授'
Group By title
SELECT Teacher_id 课程号,NumberofLesson 课时数
FROM teach
WHERE id='1010105'
SELECT teacher.Teacher_id 编号,Name 姓名,title 职称
FROM teach INNER JOIN teacher
ON teach.id=teacher.Teacher_id
WHERE Numberoflesson>90
USE department
GO
IF EXISTS (SELECT* FROM SYSOBJECTS WHERE name='proc_keshi')
DROP PROC proc_keshi
GO
CREATE PROC proc_keshi
@Name VARCHAR(20)
AS
SELECT sum(Numberoflesson) 总课时
FROM Teacher INNER JOIN Teach
ON Teacher.Teacher_id=Teach.Teacher_id
WHERE Name=@Name
GO
EXEC proc_keshi '郭浩'
CREATE DATABASE teacher
ON PRIMARY
(
NAME=teacher_data,
FILENAME='E:\SJD\teacher_data.mdf',
SIZE=5MB,
MAXSIZE=100MB,
FILEGROWTH=10%
)
LOG ON
(
NAME=teacher_log,
FILENAME='E:\SJD\teacher_data.idf',
SIZE=1MB,
MAXSIZE=5MB,
FILEGROWTH=1MB
)
CREATE TABLE teacher
(
teacher_id char(8) NOT NULL,
Dept_no char(2) NOT NULL,
tname varchar(16) NULL,
salary int NULL,
course varchar(20) NULL,
age int NULL
)
CREATE TABLE department
(
id char(2) NOT NULL,
Dept_name char(12) NULL
)
('11020001','1','肖海','3408','数据结构','45'),
('11020002','2','王岩盐','4390','数据结构','36'),
('11020003','1','刘星魂','2450','C语言','43'),
('11020004','3','钱青名','2987','数据库','37'),
('11020005','4','呼延军','3220','编译原理','29'),
('11020006','4','欧阳秀','3345','编译原理','55')
INSERT INTO department
VALUES
('1','计算机系'),
('2','通信系'),
('3','信息管理系'),
('4','数学系')
SELECT COUNT(*)教师人数
FROM teacher
WHERE course='编译原理'
SELECT tname 姓名
FROM teacher
WHERE salary>(SELECT salary
FROM teacher
WHERE tname='欧阳秀')
SELECT COUNT(*) 人数
FROM department,teacher
WHERE department.id=teacher.Dept_no
GROUP BY Dept_name
SELECT COUNT(*) 教师人数
FROM teacher
WHERE age BETWEEN 40 AND 50
SELECT department.id 系部编号,teacher.teacher_id 教师编号,tname 姓名,salary 工资,course 课程,age 年龄
FROM department INNER JOIN teacher
ON department.id=teacher.Dept_no
WHERE Dept_name='计算机系'
CREATE TRIGGER T_insert
ON teacher
FOR INSERT
AS
DECLARE @TNO char(8)
SELECT @TNO=teacher_id
FROM INSERTED
PRINT @TNO
IF LEFT(@TNO,4)!='1102'
BEGIN
PRINT'输入的教师工号错误,请确认后重新录入!'
ROLLBACK TRAN
END
INSERT INTO teacher
(teacher_id,Dept_no,tname)
VALUES
('008','03','BHJ')
CREATE DATABASE 学生选课数据库
ON PRIMARY
(
NAME=xuanke_data,
FILENAME='E:\SJD\xuanke_data.mdf',
SIZE=5MB,
MAXSIZE=15MB,
FILEGROWTH=20%
)
LOG ON
(
NAME=xuanke_log,
FILENAME='E:\SJD\xuanke_log.ldf',
SIZE=5MB,
MAXSIZE=10MB,
FILEGROWTH=1MB
)
CREATE TABLE 学生
(
学号 nchar(10) NOT NULL PRIMARY KEY ,
姓名 nchar(10) NOT NULL,
性别 nchar(2) CHECK(性别='男' or 性别='女'),
出生日期 datetime NULL
)
insert into 学生 values('090101','汪涵','男','1990-1-1')
insert into 学生 values('090102','刘洁','女','1991-3-4')
insert into 学生 values('090103','刘莉莉','女','1992-5-6')
CREATE TABLE 课程
(
课程编号 nchar(10) NOT NULL PRIMARY KEY,
课程名 nchar(10) NOT NULL,
学分 real NOT NULL,
先行课程号 nchar(10) NULL
)
insert into 课程 values('C001','C语言','2','NULL')
insert into 课程 values('C002','数据结构','2','C001')
insert into 课程 values('C003','数据库原理','2','NULL')
CREATE TABLE 选课
(
学号 nchar(6) NOT NULL,
课程编号 nchar(4) NOT NULL,
分数 int NOT NULL
)
insert into 选课 values('090101','C001','78')
insert into 选课 values('090101','C002','87')
insert into 选课 values('090102','C002','97')
insert into 选课 values('090102','C001','79')
insert into 选课 values('090102','C003','56')
insert into 选课 values('090103','C001','55')
ALTER TABLE 选课 ADD PRIMARY KEY(学号,课程编号)
SELECT AVG(分数)
FROM 选课
GROUP BY 课程编号
SELECT 选课.学号,姓名,课程名,分数
FROM 学生 INNER JOIN 选课
ON 学生.学号=选课.学号
INNER JOIN 课程
ON 选课.课程编号=课程.课程编号
WHERE 分数<60
SELECT 选课.学号,分数
FROM 课程 INNER JOIN 选课
ON 课程.课程编号=选课.课程编号
WHERE 课程名='C语言'
SELECT 学生.学号,姓名,选课.课程编号,课程名,学分,分数
FROM 学生 INNER JOIN 选课
ON 学生.学号=选课.学号
INNER JOIN 课程
ON 选课.课程编号=课程.课程编号
CREATE TRIGGER update_fenshu
ON 选课
FOR UPDATE
AS
IF UPDATE(分数)
BEGIN
PRINT'不能修改分数'
ROLLBACK TRAN
END
UPDATE 选课
SET 分数=80
WHERE 学号='090101'
CREATE DATABASE jieyue
ON PRIMARY
( NAME = N'jieyue',
FILENAME = 'E:\SJD\jieyue.mdf' ,
SIZE = 8960KB ,
MAXSIZE = 15360KB ,
FILEGROWTH = 20%)
LOG ON
( NAME = N'jieyue_log',
FILENAME = 'E:\SJD\jieyue_log.ldf' ,
SIZE = 5120KB ,
MAXSIZE = 10240KB ,
FILEGROWTH = 1024KB )
CREATE TABLE 读者
(
卡号 nvarchar(255) primary key,
姓名 nvarchar(255) ,
性别 nvarchar(255) ,
系部 nvarchar(255)
)
ALTER TABLE 读者
ADD CONSTRAINT CK_sex CHECK(性别='男' OR 性别='女' )
INSERT INTO 读者
(卡号,姓名, 性别,系部)
VALUES
('0001','洪玮','男','计算机系')
INSERT INTO 读者
(卡号,姓名, 性别,系部)
VALUES
('0002','袁骏','男','计算机系')
INSERT INTO 读者
(卡号,姓名, 性别,系部)
VALUES
('0003','曾晔','男','计算机系')
INSERT INTO 读者
(卡号,姓名, 性别,系部)
VALUES
('0004','平怀军','男','计算机系')
INSERT INTO 读者
(卡号,姓名, 性别,系部)
VALUES
('0005','史伟建','男','计算机系')
INSERT INTO 读者
(卡号,姓名, 性别,系部)
VALUES
('0006','徐波','男','计算机系')
INSERT INTO 读者
(卡号,姓名, 性别,系部)
VALUES
('0007','范美芳','女','计算机系')
INSERT INTO 读者
(卡号,姓名, 性别,系部)
VALUES
('0008','高燕燕','女','计算机系')
SELECT 读者.卡号,还书记录.图书编号,借书日期,应还日期,还书日期
FROM 读者 INNER JOIN 借书记录
ON 读者.卡号 =借书记录.卡号
INNER JOIN 还书记录
ON 读者.卡号=还书记录.卡号
WHERE 读者.卡号='0002'
SELECT 还书记录.卡号,还书记录.图书编号,借书日期,应还日期,还书日期
FROM 图书 INNER JOIN 借书记录
ON 图书.图书编号 =借书记录.图书编号
INNER JOIN 还书记录
ON 图书.图书编号=还书记录.图书编号
WHERE 图书.图书编号='bsn001'
SELECT 读者.卡号,读者.姓名,图书.图书名称
FROM 读者 INNER JOIN 借书记录
ON 读者.卡号 =借书记录.卡号
INNER JOIN 图书
ON 借书记录.图书编号=图书.图书编号
WHERE 读者.姓名='袁骏'
SELECT 读者.卡号,读者.姓名,图书.图书名称
FROM 图书 INNER JOIN 借书记录
ON 图书.图书编号 =借书记录.图书编号
INNER JOIN 读者
ON 读者.卡号=借书记录.卡号
WHERE 图书.图书名称= 'JAVA程序设计'
CREATE TRIGGER insert_jie
ON 借书记录
FOR INSERT
AS
UPDATE 图书
SET 库存数量=库存数量-1
WHERE 图书编号=(SELECT 图书编号 FROM inserted)
INSERT INTO 借书记录
VALUES
('0001','bsn001','2020-6-12','2020-7-12')
CREATE TRIGGER insert_huan
ON 还书记录
FOR INSERT
AS
UPDATE 图书
SET 库存数量=库存数量+1
WHERE 图书编号=(SELECT 图书编号 FROM inserted)
INSERT INTO 还书记录
VALUES
('0001','bsn001','2020-6-12')