?? 實例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 + -