📄 实例2(表的创建和管理).sql
字号:
-- 上课内容:第三单元 表的创建和管理
-- 3.1 数据类型
-- 3.1.1 系统数据类型(用企业管理器来体会)
-- 整型:
int -- 长度4个字节
smallint -- 长度2个字节
tinyint -- 长度1个字节
-- 浮点型:
real -- 长度4个字节
float -- 可以精确到15位小数
decimal(10,2) -- 默认最大精度值为38
numeric(10,2)
-- 字符型:
char(n) -- 1-8000个固定长度字符
varchar(n) -- 1-8000个可变长度字符
text -- 可存储大容量文本数据
-- 日期/时间型:
datetime -- 占用8个字节,从1753年1月1日到9999年12月31日
smalldatetime -- 占用4个字节,从1900年1月1日到2079年6月6日
-- 其它数据类型:
-- 货币型
money -- 占用8个字节
smallmoney -- 占用4个字节
-- Unicode型
nchar
nvarchar
-- 二进制
binary
varbinary
-- 图像数据类型
image
-- 3.1.2 自定义数据类型
-- 创建自定义数据类型
sp_addtype 自定义数据类型名,'数据类型','空|非空'
-- 例:
sp_addtype mytype1,'char(10)','not null'
--删除自定义数据类型
sp_droptype 自定义数据类型名
-- 例:
sp_droptype mytype1
-- 3.2 表的创建
-- 3.2.1 基本结构
CREATE TABLE 表名
(
字段名1 数据类型 [空|非空],
字段名2 数据类型 [空|非空],
.
.
.
字段名n 数据类型 [空|非空]
)
-- 例1:创建一个入库表receive_detail(产品编号、产品名称、单价、进货日期、数量)
use test2
go
create table receive_detail(
product_id int,
product_name varchar(40),
price decimal(10,2),
in_date datetime,
quantity decimal(12,3)
)
select * from receive_detail
-- 例2:创建一个学生表stu(学号、姓名、性别、出生年月、备注)
use test2
go
create table stu(
stu_id int,
stu_name varchar(10),
stu_sex char(2),
birth_date datetime,
beizhu text
)
select * from stu
-- 3.3 查看表的信息
-- 3.2.1 查看表的定义
sp_help [表名]
-- 例:
sp_help stu
-- 3.2.2 查看表的相关性
sp_depends
-- 3.2.3 查看表的约束
sp_helpconstraint [表名]
-- 例:
sp_helpconstraint stu
-- 3.4 表的管理
-- 3.4.1 表的修改
-- 3.4.1.1 增加字段
ALTER TABLE 表名 ADD 字段名 数据类型
-- 例:增加一个总学分credit字段
alter table stu add credit decimal(10,2)
-- 3.4.1.2 修改字段
ALTER TABLE 表名 ALTER COLUMN 字段名 数据类型
-- 例:把stu_id字段修改为char型,长度为4
alter table stu alter column stu_id char(4)
-- 例:把stu_id字段修改为char型,长度为8
alter table stu alter column stu_id char(8)
-- 例:把stu_id字段修改为char型,长度为8,非空
alter table stu alter column stu_id char(8) not null
-- 3.4.1.3 删除字段
ALTER TABLE 表名 DROP COLUMN 字段名
-- 例:删除备注字段
alter table stu drop column beizhu
-- 3.4.2 表的重命名
sp_rename 旧表名,新表名
-- 例:
sp_rename stu,student
-- 3.4.2 表的删除
DROP TABLE 表名
-- 例:
drop table student
-- 练习:
-- 1. 创建数据表course(课程号、课程名称、课程学期、学时),并查看数据表信息
-- 2. 修改数据表course的course_name字段为varchar型,长度为10,并查看数据表信息
-- 3. 修改数据表course的course_id字段为非空,并查看数据表信息
-- 4. 删除字段course_term,并查看数据表信息
-- 5. 增加“学分”字段,并查看数据表信息
-- 6. 把表course重命名为courses
-- 7. 创建表result(学号、课程号),查看信息后,删除该表
-- 练习参考答案:
-- 1. 创建数据表course(课程号、课程名称、课程学期、学时),并查看数据表信息
create table course(
course_id char(6),
course_name char(6),
course_term char(2),
course_hour numeric(3)
)
sp_help course
-- 2. 修改数据表course的course_name字段为varchar型,长度为10,并查看数据表信息
alter table course alter column course_name char(10)
sp_help course
-- 3. 修改数据表course的course_id字段为非空,并查看数据表信息
alter table course alter column course_id char(6) not null
sp_help course
-- 4. 删除字段course_term,并查看数据表信息
alter table course drop column course_term
sp_help course
-- 5. 增加“学分”字段,并查看数据表信息
alter table course add course_credit decimal(3)
sp_help course
-- 6. 把表course重命名为courses
sp_rename course,courses
-- 7. 创建表result(学号、课程号),查看信息后,删除该表
create table result(
stu_id char(8) not null,
course_id char(6) not null
)
sp_help result
drop table result
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -