1.实验目的及要求
(1)理解数据库和表的基本概念。
(2)掌握使用SQL语句创建表的操作,具备编写和调试创建表、查看表、修改表、删除表的代码能力。
2.验证性实验
商店实验数据库(storeexpm)是实验中多次用到的数据库,包含员工表(employee)、部门表(department)和商品表(goods)。
employee表、department表和goods表的表结构分别如表1.1至表1.3所示。
列名 数据类型 允许null值 键 默认值 说明
emplid varchar(4) × 主键 无 员工号
emplname varchar(8) × 无 姓名
sex varchar(2) × 男 性别
birthday date × 无 出生日期
address varchar(20) √ 无 地址
wages decimal(8,2) × 无 工资
deptid varchar(4) √ 无 部门号
表1.1 employee表的表结构
列名 数据类型 允许null值 键 默认值 说明
deptid varchar(4) × 主键 无 部门号
deptname varchar(20) × 无 部门名称
表1.2 department表的表结构
列名 数据类型 允许null值 键 默认值 说明
goodsid varchar(4) × 主键 无 商品号
goodsname varchar(20) × 无 商品名称
classification varchar(16) × 无 商品类型
unitprice decimal(8,2) √ 无 单价
stockquantity int × 5 库存量
表1.3 goods表的表结构
使用SQL语句创建商店实验数据库(storeexpm),在数据库storeexpm中,验证和调试创建表、查看表、修改表、删除表和代码。
(1)创建数据库storeexpm。
(2)创建employee表,显示employee表的基本结构(查看表)。
(3)创建department表。
(4)创建employee1表(复制表)。
(5)在employee表中增加一列eno,添加到列表的第一项,不为空,取值唯一并自动增加,显示employee表的基本结构。
(6)将employee1表的sex列修改为gender,将数据类型改为char,可为空,默认值改为 ‘女’,显示employee1表的基本结构(修改表)。
(7)将employee1表的address列修改为telephone,将数据类型改为char,可为空。
(8)将employee1表的gender列默认值改为‘男’。
(9)将employee1表的wages列的类型修改为float,并移到列EmplName之后。
(10)在employee表中删除eno列。
(11)将employee1表更名为employee2表。
(12)删除employee2表。
--------------------------------------------------------------------------------------------------------------------------------
注: 1.为了方便,全文统一用小写,缺点是不够美观明显。
2.对于第‘(6)(7)(8)(9)’补充以下知识点:
alter table 语句有3个修改列的子句
①alter[column]子句:用于修改或删除表中指定列的默认值。(6)(7)
②change[column]子句:可同时修改表中指定列的名称和数据类型。(8)
③modify[column]子句:只可修改表中指定列的名称,可修改指定列在表中的位置。
(9)
3.查看表的另外一种方法:show columns from [表名]。
4.重命名表的另外一种方法:alter table [旧表名]
rename to [新表名];
源代码
create database storeexpm;
use storeexpm;
create table employee(
emplid varchar(4) not null primary key,
emplname varchar(8) not null,
sex varchar(2) not null default '男',
birthday date comment '出生日期',
address varchar(20),
wages decimal(8,2) not null comment '工资',
deptid varchar(4) comment '部门号');
desc employee;
create table department(
deptid varchar(4) not null primary key,
deptname varchar(20) not null);
desc department;
create table employee1 like employee;
alter table employee
add column eno int not null unique auto_increment first;
alter table employee1
change column sex gender char(2) null default '女';
alter table employee1
change column address telephone char(20) null;
alter table employee1
alter column gender set default '男';
alter table employee1
modify column wages float after emplname;
alter table employee
drop column eno;
rename table employee1 to emplyee2;
drop table employee2;