目录

一,创建与管理数据库及SQL基础

二,创建与管理架构和基本表及数据操作

三,数据查询

四、创建与管理其他数据库对象、数据库保护与数据传输


一,创建与管理数据库及SQL基础

1.分别用图形化方法和CREATE DATABASE语句创建符合如下条件的数据库。

数据库的名字为students,包含的数据文件的逻辑文件名为 students_dat,物理文件名为 students.mdf,存放在D:\Test文件夹中(若D:中无此子文件夹,可先建立此文件夹,然后再创建数据库),初始大小为6MB,自动增长,每次增加1MB。日志文件的逻辑文件名为students_log,物理文件名为students.ldf,也存放在D:\Test文件夹中,初始大小为2MB,自动增长,每次增加10%。

CREATE DATABASE [students]CONTAINMENT = NONEON  PRIMARY
( NAME = N'students_data', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL15.SQLEXPRESS01\MSSQL\DATA\students.mdf' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )LOG ON
( NAME = N'students_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL15.SQLEXPRESS01\MSSQL\DATA\students.ldf' , SIZE = 2048KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)WITH CATALOG_COLLATION = DATABASE_DEFAULT
GO

2.分别用图形化方法和 CREATE DATABASE语句创建符合如下条件的数据库。

数据库包含两个数据文件和两个日志文件。数据库的名称为:财务信息数据库,该数据库包含两个数据文件和两个日志文件。数据文件1的逻辑文件名为财务数据1,物理文件名为财务数据1.mdf,存放在“D:\财务数据”目录下(若D:中无此文件夹,可先建立此文件夹,然后再创建数据库,初始大小为4MB,自动增长,每次增加IMB;数据文件2的逻辑文件名为财务数据2,物理文件名为财务数据2.ndf,与主要数据文件存放在相同的文件夹中,初始大小为3MB,自动增长,每次增加10%。日志文件1的逻辑文件名为财务日志1,物理文件名为财务日志1.ldf,存放在“D:\财务日志”文件夹中,初始大小为2MB,自动增长,每次增加10%;日志文件2的逻辑文件名为财务日志2,物理文件名为财务日志2ldf,存放在“D:\财务日志”文件夹中,初始大小为2MB,不自动增长。

CREATE DATABASE [财务信息数据库]CONTAINMENT = NONEON  PRIMARY
( NAME = N'财务数据1', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL15.SQLEXPRESS01\MSSQL\DATA\财务数据1.mdf' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ),
( NAME = N'财务数据2', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL15.SQLEXPRESS01\MSSQL\DATA\财务数据2.ndf' , SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 10%)LOG ON
( NAME = N'日志文件1', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL15.SQLEXPRESS01\MSSQL\DATA\财务日志1.ldf' , SIZE = 2048KB , MAXSIZE = 2048GB , FILEGROWTH = 10%),
( NAME = N'日志文件2', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL15.SQLEXPRESS01\MSSQL\DATA\财务日志2.ldf' , SIZE = 2048KB , MAXSIZE = 2048GB , FILEGROWTH = 0)WITH CATALOG_COLLATION = DATABASE_DEFAULT
GOIF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
begin
EXEC [财务信息数据库].[dbo].[sp_fulltext_database] @action = 'enable'
end
GO

3.分别用图形化方法和 Transact-SQL语句对上机练习中第1题所建立的“students”数据库空间进行如下扩展:增加一个新的数据文件,文件的逻辑名为“students_dat2”,存放在新文件组Group1中,物理文件名为 students2.ndf,存放在“D:\Test”文件夹中,文件的初始大小为2MB,不自动增长。

CREATE DATABASE [students]CONTAINMENT = NONEON  PRIMARY
( NAME = N'students_data', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL15.SQLEXPRESS01\MSSQL\DATA\students.mdf' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ), FILEGROUP [Group1]
( NAME = N'student_2', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL15.SQLEXPRESS01\MSSQL\DATA\students1.ndf' , SIZE = 2048KB , MAXSIZE = UNLIMITED, FILEGROWTH = 0)LOG ON
( NAME = N'students_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL15.SQLEXPRESS01\MSSQL\DATA\students.ldf' , SIZE = 2048KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)WITH CATALOG_COLLATION = DATABASE_DEFAULT
GOIF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
begin
EXEC [students].[dbo].[sp_fulltext_database] @action = 'enable'
end
GO

4.将上机练习中第4题新添加的“students_dat2”文件的初始大小改为6MB。

CREATE DATABASE [students]CONTAINMENT = NONEON  PRIMARY
( NAME = N'students_data', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL15.SQLEXPRESS01\MSSQL\DATA\students.mdf' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ), FILEGROUP [Group1]
( NAME = N'student_2', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL15.SQLEXPRESS01\MSSQL\DATA\students1.ndf' , SIZE = 2048KB , MAXSIZE = UNLIMITED, FILEGROWTH = 0)LOG ON
( NAME = N'students_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL15.SQLEXPRESS01\MSSQL\DATA\students.ldf' , SIZE = 6144KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)WITH CATALOG_COLLATION = DATABASE_DEFAULT
GOIF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
begin
EXEC [students].[dbo].[sp_fulltext_database] @action = 'enable'
end
GO

5.定义一个int的整形变量,并分别给其赋值67、123067。

declare @a int = 67;
declare @b int = 123067
print @a
print @b

6.定义一个长度为11的可变长形字符变量,并分别给其赋值“Hello World!”和“How are you?”。

declare @a char(11) = 'Hello World'
declare @b char(11) = 'How are you?'
print @a
print @b

7.分别将字符串“WELCOME”和“student”转换成小写、大写字母。

declare @a varchar(10) ='WELCOME'
declare @b varchar(10) ='student'
SELECT LOWER(@a)
SELECT UPPER(@b)
print @a
print @b

8.使用RTRIM和LTRIM函数分别去掉字符串“ 信电分院 ”右边和左边的空格,再与“学生选课”连接起来。

select rtrim(' 信电分院 ') + ltrim(' 学生选课 ')

9.使用SUBSTRING将字符串“ABCDEFG”中的“CDE”显示出来。

select SUBSTRING ('ABCDEFG',3,3)

10.使用GETDATE( )函数返回系统当前日期。

select getdate() as sysdate

11.使用DAY( )函数提取当前日期的日期部分的整数。

SELECT DAY('2021-10-16') [DAY]

12.使用T-SQL流程控制语句求两个数的最大公约数和最小公倍数。

1,最大公约数

create function GetGys(@num1 int,@num2 int)
returns int --返回值
as
begin
declare @times int  --计数器
declare @min int    --存储两个数的较小者
declare @result int  --保存结果
if(@num1>=@num2)
set @min=@num2
else
set @min=@num1
set @times=@min
while(@times<=@min) --循环
begin
if(@num1%@times=0 and @num2%@times=0)
begin
set @result=@times
break
end
set @times=@times-1
end
return @result
end 

2,最小公倍数

create function GetGbs(@num1 int,@num2 int)
returns int
as
begin
declare @result int  --结果
declare @max int  --保存两个数的大者
declare @times int
if @num1<=@num2
set @max=@num2
else
set @max=@num1
set @times=@max
while(@times>=@max)
begin
if(@times%@num1=0 and @times%@num2=0)
begin
set @result=@times
break
end
set @times=@times+1
end
return @result
end 

14.使用T-SQL流程控制语句求斐波那契数列中小于100的所有数。

/*求小于100的斐波那契数列*/
declare @i int
declare @j int
declare @t int
declare @s varchar(2000)
set @i=1
set @j=2
set @s=''
set @s=cast(@i as varchar(10))+','+cast(@j as varchar(10))
while (@j<100)
begin
set @t=@j
set @j=@j+@i
set @i=@t
if(@j<100)
set @s=@s+','+cast(@j as varchar(10))
end
print @s

二,创建与管理架构和基本表及数据操作

1,依据数据表的结构创建相对应的数据表,表结构如下所示;

三张表的代码分别如下。

/*学生表*/
CREATE TABLE student
(Sno      Char(9)       /*学生信息*/ PRIMARY KEY,Sname    Char(6)       /*学生姓名*/ NOT NULL,Ssex      Char(2),    /*学生性别*/    Sage        Int,        /*学生年龄*/    Sdept   VarChar(8), /*学生所在院系*/
)
/*课程信息表*/
CREATE TABLE course
( Cno       Char(4)        /*课程编号*/ PRIMARY KEY,Cname       VarChar(20)    /*课程名称*/ NOT NULL,Cpno       Char(4),       /*先行课*/  Ccredit Int,           /*学分*/
)
/*选课信息表*/
CREATE TABLE sc(Sno     Char(9) /*学生学号*/,Cno        Char(4) /*课程编号*/,Grade  Int         /*成绩*/,primary key(Sno,Cno))

2.在表student中增加新字段 “班级名称(sclass)“;

ALTER TABLE student ADD sclass  NCHAR(5)

3.在表student中删除字段“班级名称(sclass)”;

ALTER TABLE student DROP COLUMN Sclass

4.修改表student中字段名为“sname”的字段长度由原来的6改为8;

ALTER TABLE student ALTER COLUMN Sname char(8)

5.修改表student中字段“sdept”名称为“dept”,长度为20;

exec sp_rename '[student]. sdept ',' dept '
ALTER TABLE student ALTER COLUMN Sdept varchar(20)

6.修改表student中sage字段名称为sbirth,类型为smalldatetime

exec sp_rename '[student].Sage','sbirth'
alter table student alter column Sbirth smalldatetime

7.修改表student新名称为stu_info;

exec sp_rename @objname='student',@newname='stu_info'

8.删除数据表student。

DROP TABLE stu_info

1,创建教师授课管理数据库JSSK,并完成以下内容;

创建JSSK数据库,在数据库JSSK中创建下列三张表;

CREATE DATABASE JSSK;    /*创建数据库*/
/*创建教师表*/
CREATE TABLE teachers(Tno varchar(7) primary key ,Tname varchar(10)  NOT NULL,Tsex varchar(2) default '男',Birthday smalldatetime NULL,Dept varchar(20) NULL,Sid varchar(18),
);
/*创建课程表*/
CREATE TABLE lessons(Cno varchar(10) primary key,Cname varchar(20) NOT NULL,Credit smallint,property varchar(10),
);
/*授课表*/
CREATE TABLE shouke(Tno varchar(7),Cno varchar(10),primary key(Tno,Cno),Hours int,)

2,在shouke表里添加一个授课类别字段,列名为Type,类型为Char,长度为4;

ALTER TABLE shouke ADD Type Char(4)

3,将shouke表的Hours的类型改为smallint;

ALTER TABLE shouke ALTER COLUMN Hours smllint

4,删除lessons表中的property列。

ALTER TABLE lessons DROP COLUMN property

1,创建产品销售数据库CPXS,数据文件的逻辑文件名为cpxs_data,物理文件名为D:\sql\cpxs.mdf;文件初始大小为2MB,自动增长,每次增长1MB;日志文件逻辑文件名为cpxs_log,物理文件为D:\sql\cpxs.ldf;文件初始大小2MB,自动增长,每次增长15%;

在数据库CPXS中创建下列三张表;

CREATE DATABASE CPXS        /*创建数据库*/
ON
(NAME  =cpxs_data,FILENAME = 'D:\sql\cpxs_data.mdf',SIZE = 2,FILEGROWTH = 1
)
/*创建产品表*/
CREATE TABLE cp(Cpbh varchar(6) primary key,Cpmc varchar(30) NOT NULL,Jg float(8) NULL,Kcl int NULL
);
/销售商表*/
CREATE TABLE xss(Xsbh varchar(6) primary key,Xsmc varchar(30) NOT NULL,Dq varchar(10) NULL,Fzr varchar(8) NULL,Dh varchar(12) NULL,Bz ntext NULL
);
/产品销售表*/
CREATE TABLR cpxs(Cpbh varchar(6),Xsbh varchar(6),primary key(Cpbh,Xsbh),Xssj DATETIME NOT NULL,Sl int NOT NULL,Je float(8) NOT NULL
);

三,数据查询

  1. 列出所有不姓张的所有学生;

    SELECT sname FROM student WHERE sname NOT LIKE '刘%'
  2. 列出姓“张”且全名为3个汉字的学生;
    SELECT snameFROM studentWHERE sname  LIKE '[张]%' AND LEN(sname)=3
  3. 显示在2002年以后出生的学生的基本信息;
    SELECT * FROM student WHERE sage>19
  4. 按照“性别、学号、姓名、年龄、院系”的顺序列出学生信息,其中性别按以下规定显示:性别为男显示为男 生,性别为女显示为女 生,其他显示为“条件不明”
    SELECT CASE ssexWHEN '男' THEN '男生' WHEN '女' THEN '女生'ELSE '条件不明' END  ,sno,sname,sage,sdeptFROM student
  5. 查询出课程名含有“数据”字串的所有课程基本信息;
    SELECT cname,cno,cpno,ccreditFROM courseWHERE cname LIKE '数据%'
  6. 显示学号第八位或者第九位是1、2、3、4或者9的学生的学号、姓名、性别、年龄及院系;
    SELECT sno,sname,ssex,sage,sdeptFROM studentWHERE sno LIKE '________[12349]' or  sno LIKE'________[12349]'
  7. 列出选修了‘1’课程的学生,按成绩的降序排列;
    SELECT sno,grade  FROM scWHERE cno='1'
    ORDER BY grade DESC
  8. 列出同时选修“1”号课程和“2”号课程的所有学生的学号;
    SELECT
    sno FROM sc WHERE cno='1'
    AND
    sno IN (SELECT sno FROM sc WHERE cno='2')
  9. 列出课程表中全部信息,按先修课的升序排列;
    SELECT *  FROM courseORDER BY cpno ASC 
  10. 列出年龄超过平均值的所有学生名单,按年龄的降序显示;
    SELECT * FROM student
    WHERE sage>(SELECT AVG(sage) FROM student)
    ORDER BY sage DESC
  11. 按照出生年份升序显示所有学生的学号、姓名、性别、出生年份及院系,在结果集中列标题分别指定为“学号,姓名,性别,出生年份,院系”;
    SELECT sno,sname,ssex,YEAR(GETDATE()) -sage,sdept from studentORDER BY YEAR(GETDATE()) -sage asc 
  12. 按照院系降序显示所有学生的 “院系,学号、姓名、性别、年龄”等信息,其中院系按照以下规定显示:院系为CS显示为计算机系,院系为IS显示为信息系,院系为MA显示为数学系,院系为EN显示为外语系,院系为CM显示为中医系,院系为WM显示为西医系,其他显示为院系不明;
    SELECT CASE sdeptWHEN 'CS' THEN '计算机系'WHEN 'IS' THEN '信息系'WHEN 'MA' THEN '数学系'WHEN 'EN' THEN '外语系'WHEN 'CM' THEN '中医系'WHEN 'WM' THEN '西医系'ELSE  '院系不明' END as sdept,sno,sname,ssex,sageFROM student
  13. 显示所有院系(要求不能重复,不包括空值),并在结果集中增加一列字段“院系规模”,其中若该院系人数>=5则该字段值为“规模很大”,若该院系人数大于等于4小于5则该字段值为“规模一般”, 若该院系人数大于等于2小于4则该字段值为“规模稍小”,否则显示“规模很小”;
    SELECT  sdept,sdept=CASEWHEN COUNT(DISTINCT sno)>=5 THEN '规模很大'WHEN COUNT(DISTINCT sno)>=4 AND COUNT(DISTINCT sno)<5 THEN '规模一般'WHEN COUNT(DISTINCT sno)>=2 AND COUNT(DISTINCT sno)<4 THEN '规模稍小'ELSE '规模很小' ENDFROM studentGROUP BY sdept
  14. 按照课程号、成绩降序显示课程成绩在70-80之间的学生的学号、课程号及成绩;
    SELECT sno,cno,gradeFROM scWHERE grade>=70 AND grade<=80ORDER BY cno DESC,grade DESC 
  15. 显示学生信息表中的学生总人数及平均年龄,在结果集中列标题分别指定为“学生总人数,平均年龄”;
    SELECT '学生人数'=COUNT(distinct sno),'平均年龄'=AVG(sage)FROM student
  16. 显示选修的课程数大于3的各个学生的选修课程数;
    SELECT sno, COUNT(*)  AS '选修课程大于3' FROM scGROUP BY snohaving count(*)>3
  17. 按课程号降序显示选修各个课程的总人数、最高成绩、最低成绩及平均成绩;
    SELECT cno,'总人数'=COUNT(distinct sno),'最高成绩'=MAX(grade),'最低成绩'=MIN(grade),'平均成绩'=AVG(grade)
    FROM sc
    GROUP BY cno
    ORDER BY cno DESC
  18. 显示平均成绩大于“200515001”学生平均成绩的各个学生的学号、平均成绩;
    SELECT sno,'平均成绩'=AVG(grade)
    FROM sc
    GROUP BY sno
    HAVING AVG(grade)>(SELECT AVG(grade) FROM scWHERE sno='200515001')
  19. 显示选修各个课程的及格的人数、及格比率;
    SELECT Cno,SUM(CASE WHEN Grade>=60 THEN 1 ELSE 0 END) AS '及格人数',
    COUNT(*) AS '总人数',
    CONVERT(nvarchar, SUM(CASE WHEN grade>=60 THEN 1 ELSE 0 END)*100/COUNT(*))+'%' AS '及格率'
    FROM sc
    GROUP BY Cno
  20. 显示选修课程数最多的学号及选修课程数最少的学号;
    SELECT sno,'选课数'=CASEWHEN MAX(cno)=COUNT(cno) THEN '课程数最多'WHEN MIN(cno)=COUNT(cno) THEN '课程数最少'end
    FROM sc
    GROUP BY SNO
    HAVING MAX(cno)=COUNT(cno) OR MIN(cno)=COUNT(cno)
  21. 显示各个院系男女生人数,其中在结果集中列标题分别指定为“院系名称、男生人数、女生人数”;
    SELECT sdept AS '院系名称','男生人数'=SUM(CASE WHEN ssex='男' THEN 1 ELSE 0 END),'女生人数'=SUM(CASE WHEN ssex='女' THEN 1 ELSE 0 END)FROM studentGROUP BY sdept
  22. 列出有二门以上课程(含两门)不及格的学生的学号及该学生的平均成绩;
    SELECT sno,AVG(GRADE) AS'平时成绩'
    FROM sc
    group by sno
    having SUM( CASE WHEN grade<60 then 1 END)>=2
  23. 查询与“张立“(假设姓名唯一) 年龄不同的所有的学生的信息;
    ELECT * FROM student
    WHERE sage NOT IN(SELECT sage FROM student WHERE sname='张力')

四、创建与管理其他数据库对象、数据库保护与数据传输

1.在student表的sno列上创建唯一性聚集索引index_sno

use stu
go
create unique clustered index index_sno
on student(sno)

2.在student表的sname列上创建唯一性非聚集索引index_sname

use stu
go
create unique nonclustered index index_sname
on student(sno)

3.在student表的sage列上创建非聚集索引index_sage

use stu
go
create nonclustered index index_sage
on student(sage)

4.在sc表的sno列和cno列上创建复合非聚集索引index_sno_cno

use stu
go
create  index index_sno_cno
on sc(sno,cno)

5.将索引index_sno_cno更名为index_snocno

exec sp_rename 'sc.[index_sno_cno]','index_snocno','index'

6.删除上面的索引index_snocno

use stu
go
drop index index_snocno
on sc

7.查看student表的索引基本信息

exec sp_helpindex student

8.创建一个只选修8号课程的学生情况的视图信息

use stu
go
create view xuanxiu_8
as
select student.sno,sname,sage,sdept,ssex
from student,sc
where student.sno=sc.sno and cno='8'
group by student.sno,sname,sage,sdept
having count(cno)=1

9.创建一个视图view_stu,只包含学生的学号,姓名,年龄信息

create view view_stu
as
select sno as 学生学号,sname as 姓名,sage as 年龄
from student

10.在上一题视图的基础上创建年龄在20岁以上的的学生的视图

create view view_stu1
as
select sno as 学生学号,sname as 姓名,sage as 年龄,
from student
where sage>20

11.创建一个包含不及格同学及90分以上同学的学号、姓名、课程名称及成绩的视图

create view view_stu2
as
select student.sno as 学生学号,sname as 姓名,cname as 课程名,grade as 成绩
from student,sc,course
where student.sno=sc.sno
and sc.cno=course.cno
and grade<60 and grade>90

12.选择一个上面创建的视图,查看视图的信息

select * from view_stu1 go

13.选择一个上面创建的视图,修改删除其中的一列

delete view_stu1
where 学生学号='200515015'
select * from view_stu1

14. 选择一个上面创建的视图进行删除操作

drop view view_stu1

15.从视图view_stu中查询19岁的男生记录

select * from view_stu where 年龄=19

16.通过视图view_stu中插入一行数据。学号:2006010010,姓名:赵青,年龄:

insert into view_stu
values('200610010','赵青','20')
select * from view_stu

17.将视图view_stu中姓名为“李蕾”的年龄改为“22”

update view_stu
set 年龄='22'
where 姓名='李蕾’

18.通过视图 view_stu将姓名为“李贵”的记录删除

delete view_stu
where 姓名='李贵’

19.自行选择上面创建的一个视图插入一个记录。

insert into view_stu
values('200515029','王振','29')
select * from view_stu

20.自行选择一个视图根据一定的条件进行查询。

select * from view_stu
where 年龄>20

21.自行选择联合一张表和某个视图进行复合查询。

select distinct 学生学号,姓名,年龄
from view_stu,sc
where view_stu.学生学号=sc.sno
and grade>80

22.创建存储过程返回全部男生选课及成绩等相关信息

create procedure stu_info
as
select distinct a.sno,sname,ssex
from student a,sc
where a.sno=sc.sno
and ssex='男'
use stu
exec stu_info

23.创建一个带输入参数的存储过程,能够根据参数向学生表中插入一条记录

create procedure student_insert (@sno char(9),@sname
char(8),@ssex char(2),@sage int,@sdept char(4))
as
insert into student (sno,sname,ssex,sage,sdept)
values(@sno,@sname,@ssex,@sage,@sdept)
EXEC student_insert '200515002','汪汪','女',20,'it'

24.创建一个带输入参数的存储过程,根据不同的学生名参数,返回该学生的所有课程成绩。

USE stu
GO
CREATE PROCEDURE stu_sc2(@yx char(6))
AS SELECT DISTINCT a.sno,sname,cno,grade
FROM student a,sc
WHERE a.sno=sc.sno and sname =@yx
GO
exec stu_sc2'张力'

25.创建一个带输入输出参数的存储过程,根据输入的系部名,统计该系学生的平均成绩并输出。

USE stu
GO
CREATE PROCEDURE PINGJUN
@stu_sdept varchar(8), @average int OUTPUT
AS
SELECT @average=avg(grade)
FROM student,sc
WHERE student.sno=sc.sno AND sdept=@stu_sdept
GO
DECLARE @G int
EXEC PINGJUN'CS',@G OUTPUT
SELECT @G

26.查看第22和23题的存储过程的有关信息,并查看它们的定义。修改第22题的存储过程,改为查询全部女生的资料。删除第23题的存储过程。

alter procedure stu_info
as
select distinct a.sno,sname,ssex
from student a,sc
where a.sno=sc.snoand ssex='女'
use stu exec stu_info
drop procedure student_insert

27.创建student表的DELETE触发器,当一个学生退学后,信息从student表中删除,触发在sc表中删除该生选课情况。

create trigger deleteestu1
on student after delete
as
select sname,ssex,sgae,sdept from deleted
delete from student where sname='张三'
select * from student where sname='张三

28.创建一个触发器,检查在sc表中输入一门课程成绩,必须符合在0到100分范围内。

reate trigger insertsc_grade
on sc after insert
asif exists(select * from inserted where(grade>100 or grade<0))beginprint'成绩应在100'rollbackendgoinsert sc values(1,2,101)

SQL Service数据库上机相关推荐

  1. 修改SQL Service数据库排序规则

    修改数据库 alter   database   KidsPang   COLLATE   Chinese_PRC_CI_AS 修改表中字段 ALTER TABLE [Member] ALTER CO ...

  2. hydra 爆破1433端口 sql service 服务

    首先需要服务器sql service数据库开启外连服务 下面是开启sql service服务 step 1: 打开SSMS,用windows身份连接数据库,登录后,右键选择"属性" ...

  3. c井语言和SQL第一章上机1,第一章 SQL Server 数据库基础复习内容(上机)

    上机课程总目标 在本学期中,将模拟开发一套学员信息管理系统,用来管理学员的个人基本资料,老师资料,学生成绩,课程信息等教学相关内容,以实现学校的信息自动化,提高工作效率. 该系统包括学生档案管理.学生 ...

  4. 数据库SQL语言学习--上机练习2(连接查询 嵌套查询)(持续更新中)

    数据库SQL语言学习--上机练习2(连接查询 嵌套查询)(持续更新中) 上机练习2 1.              启动SQL Server 2008中的 SQL Server Management ...

  5. 数据库SQL语言学习--上机练习4(视图)(持续更新中)

    数据库SQL语言学习--上机练习4(视图)(持续更新中) 上机练习4 一.实验目的 1. 熟悉和掌握对数据表中视图的查询操作和 SQL 命令的使用: 2. 熟悉和掌握对数据表中视图的更新操作和 SQL ...

  6. 《转》VMware vSphere 5.1 学习系列之四:安装 SQL Server 数据库

    为什么80%的码农都做不了架构师?>>>    目 录 一.    vCenter Server数据库的配置要求    1 准备 vCenter Server 数据库    1 vC ...

  7. 人人都是 DBA(V)SQL Server 数据库文件

    SQL Server 数据库安装后会包含 4 个默认系统数据库:master, model, msdb, tempdb. SELECT [name],database_id,suser_sname(o ...

  8. Serverless 解惑——函数计算如何访问 SQL Server 数据库

    函数计算(Function Compute):函数计算 是事件驱动的全托管计算服务.使用函数计算,您无需采购与管理服务器等基础设施,只需编写并上传代码.函数计算为您准备好计算资源,弹性地可靠地运行任务 ...

  9. 通过VB向SQL Server数据库中录入数据

    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 一.数据录入 通过VB向SQL Se ...

最新文章

  1. Access sql语句创建表及字段类型
  2. 矩阵的逆矩阵怎么求_字节面试原题:求最大子矩阵的大小
  3. 给FlvDownloader加了一个视频预览的功能
  4. 【收藏】如何避免everything每次都重建索引
  5. POJ - 2559 Largest Rectangle in a Histogram(笛卡尔树,单调栈实现)
  6. ubuntu16.04 64bit 安装 ida
  7. python实现屏幕录制_GitHub - Sijiu/record-camera-and-screen: 录制摄像头和录制屏幕,两者之间可以轻易切换...
  8. java路径在那_Java 路径
  9. 每一个写博客的程序猿,都应该被温柔对待
  10. (转)详解Windows Hash
  11. 【Linux环境下C语言编程】
  12. 2021中国低/无代码平台投融资趋势报告: 融资规模近15亿,估值近70亿,马太效应将愈演愈烈...
  13. ZYNQMP_XAZU3EG_LINUX 默认启动项修改
  14. 文件未找到mathpage.wll_解决MathPage.wll文件找不到的问题(找了好久的良心之作)...
  15. 抖音服务器维护中发不了视频,抖音视频发不出去怎么回事
  16. 【毕设教程】单片机如何运行SD卡里的程序
  17. mac pro 键帽 方向键 上下键 拆卸
  18. CPU与GPU区别 通俗易懂
  19. Unity读取json大文件卡顿
  20. 【智慧消防】安科瑞智慧消防综合管理云平台解决方案

热门文章

  1. 如何自动隐藏win10任务栏
  2. 计算机基本概念反思,计算机基础教学反思
  3. 读书笔记-财务报表分析的目的
  4. GVINS / VINS-mono运行报错:undefined symbol: _ZN6google21kLogSiteUninitializedE,重新安装ceres可以解决
  5. 常见基础注入类型-SQL注入-web安全
  6. 抖音只能上下滑动吗_抖音只能上下滑动吗_实现仿抖音视频滑动的两个方案
  7. 二零一九己亥年中秋快乐
  8. WiFi-ESP8266入门http(3-2)网页认证上网-post请求
  9. 最热开源实时提升动画画质MPV+Anime4K使用方法
  10. 大学公众号题库API