--21. 创建一个名字为MyQQ的数据库
CREATE DATABASE MyQQ
ON PRIMARY
(NAME=MyQQ_data,
FILENAME='E:\Professional flie\SQL file\database\MyQQ\MyQQ_data.mdf',
SIZE=5MB,
MAXSIZE=15MB,
FILEGROWTH=20%)
LOG ON
(NAME=MyQQ_log,
FILENAME='E:\Professional flie\SQL file\database\MyQQ\MyQQ_log.ldf',
SIZE=5MB,
MAXSIZE=10MB,
FILEGROWTH=1MB)
go
--22. 使用T-SQL语句操作创建用户信息表,表名为Users。
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)
--23. 使用操作创建血型信息表,表名为Blood
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型')
--查询出血型为‘A型’并且星座为‘狮子座’的女用户姓名、密码
SELECT NickName 姓名, LoginPWD 密码
FROM Blood INNER JOIN Users
ON blood.id = Users.BloodTypeId
WHERE Star = '狮子座' AND BloodType = 'A型' AND Sex = '女'
--查询出血型为‘A型’的用户姓名、性别
SELECT NickName 姓名, Sex 性别
FROM Blood INNER JOIN Users
ON Blood.id = Users.BloodTypeId
WHERE BloodType='A型'
--2、为MyQQ数据库编写一个带参数的存储过程proc_Star,
--它可以查询和某用户同一星座的用户的姓名和性别,并调用该存储过程验证其功能
CREATE PROC Star
AS
SELECT *
FROM Blood INNER JOIN Users
ON Blood.id=Users.Id
WHERE BloodType='A型 '
EXEC dbo.Star
--判断该存储过程是否存在,如果存在,就删除,不存在就创建
IF EXISTS(SELECT * FROM SYSOBJECTS WHERE name ='proc_star1')
DROP PROC proc_Star
ALTER PROCEDURE proc_Star
@star VARCHAR(50)
AS
SELECT NickName 姓名,Sex 性别
FROM Users
WHERE Star IN (SELECT Star
FROM Users
WHERE Star=@star)
EXEC proc_Star '双子座'