网页制作电脑软件,如何做网站的seo优化,联合智慧旅游建设旅游门户网站,潍柴新建站登录网址目录
第一关
相关知识 什么是表 操作数据表 创建数据表 插入数据 修改表结构 删除数据表
编程要求
第一关实验代码#xff1a;
第二关
相关知识 视图是什么 视图的优缺点 视图的优点 视图的缺点
操作视图
创建视图
通过视图向基本表中插入数据
通过视图修改基本表的…目录
第一关
相关知识 什么是表 操作数据表 创建数据表 插入数据 修改表结构 删除数据表
编程要求
第一关实验代码
第二关
相关知识 视图是什么 视图的优缺点 视图的优点 视图的缺点
操作视图
创建视图
通过视图向基本表中插入数据
通过视图修改基本表的数据
通过视图删除基本表的数据 修改视图 删除视图
编程要求
测试说明
第二关实验代码 第一关
相关知识
什么是表
如果说数据库是一个仓库那么表就是存放物品的架子。
数据表是数据库中最基本的操作对象通常把数据存放在数据库中其实就是将数据存放在数据库中的一张表中且一个数据库可以包含一个或多个表。
数据表中的数据按照行和列的规则来进行数据存储。每一行为一条数据记录一条数据记录是由多个字段的描述信息组成的每一列就是一个字段。
例如有一个记录了员工信息的 employee 表每一列就是用来描述员工特定信息的字段比如工号、姓名等等每一行则用于描述某一员工的所有字段信息工号、姓名、性别和学历等这些信息的集合称之为一条记录如下图所示。 操作数据表
SQL Server 提供了非常丰富的数据表操作方法用户可以通过企业管理器和 T-SQL 语言进行操作。使用 T-SQL 操作数据表具有灵活、快捷等特点也是数据库管理人员使用最多的一种方式。
对于数据表的操作主要分为 CREATE TABLE 创建数据表 ALTER TABLE 修改数据表结构 DROP TABLE 删除数据表
创建数据表
数据表的创建主要是对基本结构的构建。例如列属性的设定数据完整性的约束。创建数据表使用 CREATE TABLE 语句基本语法格式如下
CREATE TABLE table_name
(
column_name1 data_type(size),
column_name2 data_type(size),
column_name3 data_type(size),
....
); column_name 列名 data_type 列的数据类型例如 varchar 、 integer 、 decimal 、 date 等等 size 列的最大长度。 例如使用下面的 CREATE TABLE 语句创建一个名为 Persons 的表包含五列 PersonID 、 LastName 、 FirstName 、 Address 和 City
CREATE TABLE Persons
(
PersonID int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);
利用 select name, length, COLLATION from syscolumns where idobject_Id(Persons) 查看创建的 Persons 表结构 插入数据
创建完表后可用 INSERT INTO 语句向表中插入数据。其语法如下
INSERT INTO 表名称 VALUES (值1, 值2,....)
我们也可以指定所要插入数据的列如下
INSERT INTO 表名称 (列1, 列2,...) VALUES (值1, 值2,....)
例如向 Persons 表中插入 Tom 的个人信息可以使用下列的语句完成。
INSERT INTO Persons VALUES(1001,Tom,Green,West Road,New York)
使用select * from Persons语句查看插入结果。 修改表结构
在表已经创建好的前提下可以使用 ALTER TABLE 语句对表中的列进行增加、删除或修改数据类型等操作。
新增列
ALTER TABLE table_name
ADD column_name datatype
使用如下语句可以为数据表 Persons 添加一列 AddedCol
ALTER TABLE Persons
ADD AddedCol varchar(50)
新增列后的表结构如下图 删除列
ALTER TABLE table_name
DROP COLUMN column_name
例如使用下列语句可以删除数据表 Persons 中的列 City
ALTER TABLE Persons
DROP COLUMN City
删除 City 列后表 Persons 的结构如下图 修改列的数据类型
ALTER TABLE table_name
ALTER COLUMN column_name datatype
下列语句把数据表 Persons 中 AddedCol 列的数据类型改为 int 类型
ALTER TABLE persons
ALTER COLUMN addedCol int
修改数据类型后的表结构如下 删除数据表
删除数据表是对数据库中已建立的表进行删除在删除表的同时会对表中定义的数据、索引和视图进行清除。在做任何删除操作前应做好备份工作。我们使用 DROP TABLE 语句对数据库中的数据表进行删除语法格式如下
DROP TABLE table_name
编程要求 本次编程任务是 在右侧编辑区 create table 下的 Begin-End 区域补全代码创建 Student 、 Course 和 Score 三个表 在右侧编辑区 insert 下的 Begin-End 区域补全代码向 Score 表中插入下面给出的数据 在右侧编辑区 alt student table 下的 Begin-End 区域补全代码修改 Student 表结构新增一列 addr 用于描述地址信息并设置数据类型以及长度为 varchar(256) 在右侧编辑区 del score table 下的 Begin-End 区域补全代码删除 Score 表。 Student 表结构如下
字段名数据类型说明snovarchar(50)学号namevarchar(50)姓名sexvarchar(10)性别birthdayDate出生日期disciplinevarchar(50)专业schoolvarchar(100)学院
Course 表结构如下
字段名数据类型说明cnovarchar(50)课程号cnamevarchar(50)课程名称descriptionvarchar(256)课程说明creditfloat学分cinstitutionvarchar(128)开课单位
Score 表结构如下
字段名数据类型说明snovarchar(50)学号cnovarchar(50)课程号gradefloat成绩
Score 表待插入的数据
学号课程号成绩09011101101890901110110278
第一关实验代码
USE studentdb
goSET NOCOUNT ON
go
--********** create table **********--
--********** Begin **********--
create table student(sno varchar(50),name varchar(50),sex varchar(10),birthday Date,discipline varchar(50),school varchar(100)
);
create table course(cno varchar(50),cname varchar(50),description varchar(256),credit float,cinstitution varchar(128)
);
create table score(sno varchar(50),cno varchar(50),grade float
);--********** End **********--
go
select name, length, COLLATION from syscolumns where idobject_Id(student)
go
select name, length, COLLATION from syscolumns where idobject_Id(course)
go
select name, length, COLLATION from syscolumns where idobject_Id(score)
go--********** insert **********--
--********** Begin **********--
insert into score values(09011101,101,89);
insert into score values(09011101,102,78);--********** End **********--
select * from score
go--********** alt student table **********--
--********** Begin **********--
ALTER TABLE Student
ADD addr VARCHAR(256);--********** End **********--
goselect name, length, COLLATION from syscolumns where idobject_Id(student)
go--********** del score table **********--
--********** Begin **********--
drop table score;--********** End **********--
goGO
IF NOT EXISTS(Select 1 From Sysobjects Where Namescore) --查询表是否存在
BEGIN
PRINT NOT EXISTS TABLE score
END
GO 第二关
相关知识
视图是什么
视图是一个虚拟表其结构和内容是通过 SQL 查询获得的。用户可以通过 SQL 查询语句像其他普通关系表一样对视图中的数据进行查询。视图同样支持表的相关操作并可以直接修改、添加、删除数据库中的真实数据。
视图通常用来集中、简化和自定义不同用户对数据库的不同认识如视图可用作安全机制。方法是只允许用户由视图访问数据而不授予用户直接访问数据表的权限。视图还可以用于提供向后兼容接口来模拟曾经存在但其架构已更改的表。
视图的优缺点
视图的优点 安全保密。通过视图用户只能查询和修改他们所能见到的数据对于数据库中的其他数据则既看不见也取不到。通过视图用户可以被限制在数据的不同子集上。 查询简单。视图能够从几个不同的关系表中提取数据并且用一个单表表示出来。利用视图将多表查询转换成视图的单表查询。 结构简单。视图能够给用户一个“个性化”的数据库结构外观用一组用户感兴趣的可见表来代表这个数据库的内容。 隔离变化。视图能够代表一个一致的、非变化的数据。即使是在作为视图基础的数据表基表被分割、重新构造或者重命名的情况下也是如此。 逻辑数据独立。视图可以使应用程序和数据库表在一定程度上独立。如果没有视图应用一定是建立在表上。有了视图之后程序可以建立在视图上从而使程序独立于数据表。
视图的缺点
虽然视图存在上述优点但在定义数据库对象时不能不加选择地来定义视图因为视图也存在一些缺点 性能。 SQL Server 必须把视图查询转化成对基本表的查询如果这个视图是由一个复杂的多表查询所定义那么即使是视图的一个简单查询 SQL Server 也要把它变成一个复杂的结合体需要花费一定的时间。 修改限制。当用户试图修改视图的某些信息时数据库必须把它转化为对基本表的某些信息的修改对于简单的视图来说这是很方便的但对于比较复杂的视图可能是不可修改的。
操作视图
创建视图
使用 T-SQL 命令创建视图的基本语法如下
--语法
CREATE VIEW view_name
AS
SELECT column_name(s) FROM table_name
WHERE condition
view_name 指定创建视图的名称 column_name 指定视图中列名称 table_name 视图的基础表名称 condition select 的限定条件。
下面是一个创建视图的实例
--准备表和数据
create table studentTable(
id int identity(1,1) primary key,
name varchar(20),
gender char(2),
age int,
)insert into studentTable (name,gender,age)
values
(刘备,男,28),
(张飞,男,24),
(关羽,男,26);--删除已存在的视图student_view
if (exists (select * from sys.objects where name student_view))
drop view student_view
go--创建视图student_view
create view student_view
as
select name,age from studentTable where age24;--查询视图
select * from student_view;
通过创建的视图查询的结果 通过视图向基本表中插入数据
--通过视图向基本表中插入数据
create view stu_insert_view(编号,姓名,性别,年龄)
as
select id,name,gender,age from studentTable;
goselect * from studentTable;---插入一条数据
insert into stu_insert_view values(曹操2,男,40);----查看插入记录之后表中的内容。
select * from studentTable;
插入数据之前表中的数据如下 通过视图插入数据后表中的数据如下 通过视图修改基本表的数据
--查看修改之前的数据
select * from studentTable;--修改数据
update student_view set age30 where name刘备;--查看修改后的数据
select * from studentTable;
修改视图之前表 studentTable 中的数据如下 通过视图修改表 studentTable 中的数据后如下 通过视图删除基本表的数据
通过视图删除基本表数据的语法如下
delete view_name where condition;--查看表中源数据
select * from studentTable;--删除记录
delete student_view where name 关羽;--通过视图删除之后的数据
select * from studentTable;
删除之前的数据 删除之后的数据 修改视图
可以使用 ALTER VIEW 语句来对已有的视图进行修改。
ALTER VIEW view_name AS select_statement
语法说明如下 view_name 指定视图的名称。该名称在数据库中必须是唯一的不能与其他表或视图同名。 select_statement 指定创建视图的 SELECT 语句可用于查询多个基表或源视图。 例如 --修改视图
alter view student_view
as
select name,age from studentTable where age30;
此时再执行select * from student_view会得到如下年龄大于 30 的记录 删除视图
可以使用 drop view 语句删除视图
drop view view_name1,view_name2,......,view_nameN;
--该语句可以同时删除多个视图只要在删除各视图名称之间用逗号分隔即可。
例如
drop view student_view;
编程要求
本次编程任务是在右侧编辑区 create score_view_cdept 下的 Begin-End 区域补全代码创建学生的成绩单视图包括学号 sno 、姓名 name 、课程名 cname 和成绩 grade 字段。
涉及到的数据库和表都已经建立好了并插入了相应的数据具体如下 Student 表结构如下
snonamesexbirthdaydisciplineschools001Tommale2019-06-01computerinformations002Bobmale2019-06-01softwareinformations003Alicefemale2019-05-02computerinformationCourse 表结构如下
cnocnamedescriptioncreditcinstitutionc001networkcomputer network description2College Of Information Engineeringc002Javajava description2College Of Information Engineering
Score 表结构如下
snocnogrades001c00185s002c00190
测试说明
平台将对你补充的代码进行评测输出结果正确才可通关。
预期输出 第二关实验代码
USE studentdb
goSET NOCOUNT ON
go--********** create score_view_cdept **********--
--********** Begin **********--
create view score_view_cdept
as
select student.sno,student.name,cname,grade
from student,course,score
where student.snoscore.sno and score.cnocourse.cno--********** End **********--
go