SQL Server 实验二:数据库视图的创建和使用-第一关

相关知识
什么是表

如果说数据库是一个仓库,那么表就是存放物品的架子。

数据表是数据库中最基本的操作对象,通常把数据存放在数据库中,其实就是将数据存放在数据库中的一张表中,且一个数据库可以包含一个或多个表。

数据表中的数据,按照行和列的规则,来进行数据存储。每一行,为一条数据记录,一条数据记录是由多个字段的描述信息组成的,每一列就是一个字段。

例如:有一个记录了员工信息的 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 id=object_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 表结构如下:

字段名 数据类型 说明
sno varchar(50) 学号
name varchar(50) 姓名
sex varchar(10) 性别
birthday Date 出生日期
discipline varchar(50) 专业
school varchar(100) 学院

Course 表结构如下:

字段名 数据类型 说明
cno varchar(50) 课程号
cname varchar(50) 课程名称
description varchar(256) 课程说明
credit float 学分
cinstitution varchar(128) 开课单位

Score 表结构如下:

字段名 数据类型 说明
sno varchar(50) 学号
cno varchar(50) 课程号
grade float 成绩

Score 表待插入的数据:

学号 课程号 成绩
09011101 101 89
09011101 102 78
第一关实验代码:
USE studentdb
go

SET 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 id=object_Id('student')
go
select name, length, COLLATION from syscolumns where id=object_Id('course')
go
select name, length, COLLATION from syscolumns where id=object_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 **********--
go

select name, length, COLLATION from syscolumns where id=object_Id('student')
go

--********** del score table **********--
--********** Begin **********--
drop table score;


--********** End **********--
go

GO
IF NOT EXISTS(Select 1 From Sysobjects Where Name='score')  --查询表是否存在
BEGIN
PRINT 'NOT EXISTS TABLE score'
END
GO

上一篇:【干货分享】OpenHarmony轻量系统适配方案


下一篇:vue3 hooks之事件广播(支持跨标签页)