SQL server 基本操作

一、数据表的管理与创建

--1创建"学生选课"数据库。 
--使用最简单的语句创建“学生选课”数据库。并切换到该库。 
--(1)创建库 
create database 学生选课

--(2)切换库
use 学生选课

-- 2 使用T-SQL命令创建表。 
--(1)创建 Teacher(教师)表。


create table Teacher
(
    Tno char(3) not null primary key,
    Tname Varchar(10) not null,
    Tsex Char(2),
    Sbirthday Date,
    Prof Varchar(6),
    Depart Varchar(10)

)
-- (2)创建 Student(学生)表。


create table Student
(
    Sno Char(5) not null primary key,
    Sname Varchar(10) not null,
    Ssex Char(2),
    Sage Tinyint
)
--(3)创建 Course(课程)表。


create table Course
(
    Cno Char(3) not null primary key,
    Cname Varchar(20) not null,
    Cpno Char(3),
    Credit Tinyint,
    Semester Tinyint,
    Tno Char(3)

)
--4)创建 SC(选课成绩)表


create table SC
(
    Sno Char(5) not null,
    Cno Char(3) not null,
    Grade int

)

--3 使用T-SQL命令管理表。 
--(1)使用系统存储过程查看课程表Course的详细信息。
sp_help Course

--(2)在课程表Course中删除学期和教工编号列(一条命令删除两列)。
alter table Course
drop column Semester,Tno

--(3)在学生表Student中,增加所在院系列 Sdept,数据类型为Varchar(10)
--允许为空(“允许为空”写NULL)。(自行练习一次添加多列)
alter table Student
add Sdept Varchar(10) null

--(4)在学生表Student中,将年龄列的数据类型改为Smallint
alter table Student
alter column Sage Smallint

--(5)在教师表Teacher中,将所在院系列Depart重命名为Tdept。
sp_rename 'Teacher.Depart','Tdept'

--4 使用T-SQL命令删除表。 
--删除教师表。
drop table Teacher

二、数据完整性

CREATE DATABASE 学生选课 

USE 学生选课 
CREATE TABLE Teacher 
(
    Tno CHAR(3) NOT NULL, 
    Tname VARCHAR(10) NOT NULL, 
    Tsex CHAR(2), 
    Sbirthday DATE, 
    Prof VARCHAR(6), 
    Depart VARCHAR(10) 

--1 创建学生表,表结构如下,在Sno列创建列级主键。


create table Student 
(
    Sno Char(5) NOT NULL primary key, 
    Sname Varchar(10) NOT NULL, 
    Ssex Char(2), 
    Sage Tinyint, 
    Sdept Varchar(10)

 ) 

 --2 修改教师表结构,为Tno列添加主键约束。
alter table Teacher
add primary key(Tno)

--3 创建课程表,结构如下,在Cno列创建表级主键,名为 PK_course_cno 。


CREATE TABLE Course 
(
    Cno Char(3) NOT NULL,
    Cname Varchar(20) NOT NULL, 
    Credit Tinyint, 
    Semester Tinyint, 
    Tno Char(3),
    constraint PK_course_cno primary key(Cno)

 ) 
--4 创建选课表,结构如下,为sno和cno列添加联合主键名PK_SC_snocno,
--Sno列创建表级外键FK_SC_sno,Cno列创建表级外键FK_SC_cno。


create table SC
(
    Sno Char(5) NOT NULL,
    Cno Char(3) NOT NULL,
    Grade int ,
    constraint PK_SC_snocno primary key(Sno,Cno),
    Constraint FK_SC_sno foreign key(Sno) references Student(Sno),
    Constraint FK_SC_Cno foreign key(Cno)references Course(Cno)
 )

 --5 修改课程表,为Cname列添加唯一约束,名UQ_Course_cname。
alter table Course
add constraint UQ_Course_cname unique(cname)

--6 修改教师表,为Tsex列添加检查约束,名为CK_Teacher_tsex,性别取值只能为”男“或”女“。
alter table Teacher
add constraint CK_Teacher_tsex check(Tsex='男'or Tsex='女')

--7 修改学生表,为Sage列添加检查约束,名为CK_Student_sage,年龄取值范围为[12-45]。
alter table Student
add constraint CK_Student_sage check(Sage >= 12 and Sage <=45)

--8 修改课程表,为Credit列添加默认值约束,名为DF_course_credit,默认值为2。
alter table Course
add constraint DF_course_credit default 2 for Credit

--9 删除课程表中的默认值约束。
alter table Course
drop constraint DF_course_credit

--10 修改学生表,禁用Sage列的检查约束。
alter table Student
nocheck constraint CK_Student_sage

--11 修改学生表,启用Sage列的检查约束。

alter table Student
check constraint CK_Student_sage

三、数据操作

IF EXISTS (SELECT name FROM SYS.DATABASES WHERE name='学生选课')
    DROP DATABASE 学生选课
GO
CREATE DATABASE 学生选课
GO
USE 学生选课
-- DROP TABLE SC,course,student
-- DROP TABLE course
GO

--创建教师表
CREATE TABLE Teacher(
Tno CHAR(3) NOT NULL PRIMARY KEY,
Tname VARCHAR(10) NOT NULL,
Tsex CHAR(2),
Sbirthday DATE,
Prof VARCHAR(6),
Tdept VARCHAR(10)
)
GO

--创建学生表
CREATE TABLE Student(
Sno CHAR(5) NOT NULL PRIMARY KEY,
Sname VARCHAR(10) NOT NULL,
Ssex CHAR(2),
Sage TINYINT,
Sdept VARCHAR(10)
)
GO

--创建课程表
CREATE TABLE Course(
Cno CHAR(3) NOT NULL PRIMARY KEY,
Cname VARCHAR(20) NOT NULL,
Cpno CHAR(3),
Credit TINYINT,
Semester TINYINT,
Tno CHAR(3)
)
GO

--创建选课表
CREATE TABLE SC(
Sno CHAR(5) NOT NULL,
Cno CHAR(3) NOT NULL,
Grade INT
)
GO

-- 插入教师表数据
--SP_HELP Teacher
INSERT INTO Teacher 
VALUES ('104','李诚','男','1958/12/2','副教授','计算机系')
,('256','张旭','男','1969/3/12','讲师','数学系')
,('125','王萍','女','1972/5/5','助教','计算机系')
,('331','刘冰','女','1977/8/14','助教','信息系')
GO    
--SELECT * FROM Teacher

-- 插入学生表数据
--SP_HELP Student
INSERT INTO Student 
VALUES('95001','刘超华','男',22,'计算机系')
,('95002','刘晨','女',21,'信息系')
,('95003','王敏','女',20,'数学系')
,('95004','张海','男',23,'数学系')
,('95005','陈平','男',21,'数学系')
,('95006','陈斌斌','男',28,'数学系')
GO
--SELECT * FROM Student

-- 插入课程表数据
--SP_HELP Course
INSERT INTO Course 
VALUES('101','数据库','105',5,4,'125')
,('104','操作系统','106',1,2,'104')
,('105','数据结构','107',1,3,'104')
,('106','数据处理',NULL,1,2,'331')
,('107','C语言','106',3,1,'125')
GO
--SELECT * FROM Course WHERE Cpno IS NULL

-- 插入选课表数据
--SP_HELP SC
INSERT INTO SC 
VALUES('95001','101',87)
,('95001','201',76)
,('95001','301',79)
,('95001','104',80)
,('95001','105',81)
,('95001','106',82)
,('95001','107',67)
,('95002','101',89)
,('95002','201',81)
,('95004','101',83)
,('95004','201',56)
,('95005','101',89)
,('95006','101',54)
,('95006','201',77)
,('95010','101',56)
,('95013','301',80)
,('95013','105',90)
,('95014','201',NULL)
,('95015','201',NULL)
GO
--SELECT * FROM SC

--7.1 数据操作。 
--(1)向教师表插入一条记录:教师编号332,姓名王丽,性别女,出生日期1980年3月4日,职称助教,在信息系工作。

insert into Teacher
values ('332','王丽','女','1980/3/4','助教','信息系')

--(2)向课程表插入一条记录:课程编号108,课程名“Java”,先修课程为空,学分为3,第3学期开课,任课教师为空。
INSERT INTO Course 
VALUES ('108','Java',Null,3,3,Null)

--(3)将教师表中姓名为“王萍”的教师的职称改为“讲师”。
update Teacher
set Prof='讲师'
where Tname='王萍'

-- (4)将课程表中所有第2学期开设的课程的学分加1。
update Course
set Credit=Credit+1
where Semester=2

-- (5)从学生表中删除学号为“95006”的记录。
delete from Student
where Sno='95006'

-- (6)在选课表中删除所有成绩不及格的记录。
delete SC
where Grade<60

建立环境实验和数据库/表 实验学时:2学时 实验类型:验证 实验要求:必修 一、实验目的 通过本实验的学习,使学生熟悉SQL Server 2014的集成环境,帮助学生掌握数据库、表的建立方法以及SQL Server的数据导入方法 二、实验内容    (一)、SQL Server 2014的安装 SQL Server2014的安装过程与 SQL Server 2008、SQL Server2012的安装过程类似,都提供了一个功能树以用来安装所有 SQL Server 组件,包括计划、安装、维护、工具、资源、高级、选项等功能。下面是各功能选项中所包含的内容,如图3-1所示。 图3-1 安装计划中的内容 (1)选择“安装”功能,因为要创建SQL Server 2014的全新安装,单击“全新SQL Server 2014独立安装或向现有安装添加功能”选项,如图3-2所示。 图3-2 “安装”功能中的内容 (2)在“产品密匙”页上,选择相应的单选按钮,这些按钮指示是安装免费版本的SQL Server还是具有产品密匙的产品版本,如果使指免费的评估版,只有180天的试用期限,如图3-3所示。 图3-3 “产品密钥”界面 (3)在“许可条款”页上阅读许可协议,然后选中相应的复选框以接受许可条款和条件。如图3-4所示。 图3-4 “许可条款”界面 (4)系统进行安装程序支持规则检查,以确定安装SQL Server安装程序支持文件时可能发生的问题。必须更正所有的失败,安装程序才能继续。如图3-5所示。 图3-5 “安装规则”界面 (5)在“设置角色”页上选择SQL Server功能安装,如图3-6所示。 图3-6 “设置”角色界面 (6)在“功能选择”页上选择要安装的组件。选择功能名称后,右侧窗体中会显示每个组件的说明。可以根据实际需要,选中一些功能,如图3-7所示。一般应用可选择“数据库引擎服务”、“客户端工具连接”、“SQL客户端连接”和“管理工具”等选项。 图3-7“功能选择”界面 (7)在“实例配置”页上制定是安装默认实例还是命名实例,对于默认实例,实例的名称和ID都是MSSQLSERVER,也可以自己“命名实例”安装实例,如图3-8所示。SQL Server支持多个实例,即支持在同一台计算机上同时运行多个SQL Server数据库引擎实例,每个SQL Server数据库引擎实例各有一套不为其它实例共享的系统及用户数据库。应用程序连接同一台计算机上的SQL Server数据库引擎实例的方式与连接其它计算机上运行的SQL Server数据库引擎的方式基本相同。 图3-8 “实例配置”界面 (8)在“服务器配置”页上指定SQL Server服务的登录帐户。SQL Server提供了多种服务,可以为所有SQL Server服务分配相同的登录账户,也可以分别配置每个服务账户。还可以指定服务是自动启动、手动启动还是禁用。Microsoft建议对各服务账户进行单独配置,以便为每项服务提供最低特权,即向SQL Server服务授予它们完成各自任务所需的最低权限,如图3-9所示。SQL Server中的每个服务代表一个进程或一组进程,每个进程需要有访问SQL Server相关文件和系统注册表的权限,为了能让SQL Server服务在操作系统中正常的启动和运行,就需要指定SQL Server的服务帐户,所以服务帐户指的是Windows操作系统中的帐户。 图3-9 “服务器配置”界面 (9)在“数据库引擎配置”的“服务器配置”页上指定身份验证模式、用户名、密码,如图3-10所示。这里的用户身份验证指的是登录到服务器使用的身份验证模式及用户名和密码。身份验证模式分为“Windows身份验证模式”和“混合模式(SQL Server身份验证和Windows身份验证)”。如果选择“Windows身份验证模式”表示则只能使用Windows的帐号登录,即使用当前登录到操作系统的帐号进行登录,通过这种方式用户登录到SQL Server中时不再需要输入帐号和密码。如选择“混合模式(SQL Server身份验证和Windows身份验证)”表示除了可以用使用登录到Windows的帐号作为登录的依据外,还可以使用SQL Server系统的帐号登录,这里必须为内置SQL Server系统管理员账户(SA)提供一个强密码。必须至少为SQL Server实例指定一个系统管理员。若要添加用以运行SQL Server安装程序账户,则要单击“添加当前用户”按钮。若要向系统管理员列表中添加账户或从中删除账户,则单击“添加…”或“删除…”按钮,然后编辑将拥有SQL Server实例的管理员特权的用户、组或计算机列表。 图3-10 设置身份验证模式和管理员 (10)在“准备安装”页显示安装过程中的安装选项的树视图,如图3-11所示。若要继续,单击“安装”按钮。在安装过程中,“安装进度”页会提供相应的状态,因此可以在安装过程中监视安装进度。 图3-121“准备安装”界面 (11)安装完成后,“完成”页提供指向安装日志文件摘要以及其他重要说明的链接。如图3-12所示。 图3-12 “安装完成”界面 (二)、建库建表练习      1、利用语句建库和建表: 创建学生数据库StuDB,文件名和位置自定,在此数据库中创建如下三张表: 学生表(student) (   学号(sno) 普通编码定长字符类型,长度9,主码,   姓名(sname) 普通编码定长字符类型,长度10,非空,   性别(ssex) 统一编码定长字符类型,长度2,   年龄(sage) 微整型,   所在系(sdept) 统一编码可变长字符类型,长度20 ) 课程表(course) (   课程号(cno) ,通编码定长字符类型,长度4,主码,   课程名(cname) 统一编码定长字符类型,长度,40,非空,   开课学期(Semester) 短整数, 学分(credit) 短整数 ) 修课表(sc)(   学号(sno) 普通编码定长字符类型,长度7,主码,外码   课程号(cno) 普通编码定长字符类型,长度6,主码,外码   成绩(grade) 小整型,   修课类别(ctype)普通编码定长字符类型,长度4 ) 2、建立“汽车”数据库,文件名和位置自定,在此数据库中创建如下三张表: 汽车表(CarT),结构如下:   汽车序号(CId) 整型 主关键字,   汽车名称(CName) 普通编码定长字符类型 长度为10  非空,   型号(CType)普通编码变长字符类型 长度为60  非空,   价格(CPrice) 整型,   车身眼色(Ccolor)普通编码变长字符类型 长度为20。 部门表(DepartT),结构如下:   部门序号(DId)整型 主关键字,   部门名(DName)普通编码定长字符类型 长度为20   非空,   负责人名(DLead)普通编码定长字符类型 长度为10  非空,   人数(DAmount) 整型。 汽车出厂表(FacT),结构如下:   汽车序号(CID) 整型 非空,   部门序号(DId) 整型 非空,   出厂日期(FDate)小日期时间型 非空,   出厂数量(FAmount) 整型,   出厂价格(FPrice) 整型。   其中:主关键字为(汽车序号,部门序号,出厂日期)   “汽车序号”为引用汽车表的“汽车序号”的外部关键字; “部门序号”为引用部门表的“部门序号”的外部关键字。 3、使用数据库的可视化工具建库建表 建立银行贷款表,具体要求同课堂教学的建库建表一致。 银行表(BankT)( 银行代码(Bno) 主键 银行名称(Bname) 非空 电话(Tel) ) 法人表(LET)( 法人代码(Eno)主键 法人名称(Ename)取值唯一 经济性质(Enature) 注册资金(Ecapital) 法定代表人(Erep) ) 贷款表(LoanT)( 法人代码(Eno) 银行代码(Bno) 贷款日期(Ldata) 贷款金额(Lamount) 贷款期限(Lterm) )        (三)、数据导入练习 将“学生数据库数据.xls”中的数据导入到学生数据库的三张表中。 将“银行贷款数据.xls”中的数据导入到银行贷款数据库的三张表中。 三、实验报告 将实验结果反映在实验报告中,并对实验中遇到的问题及解决方案、进行整理、分析总结,提出实验结论或自己的看法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值