⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 实例2(表的创建和管理).sql

📁 经典的sql资料
💻 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 + -