实验目的
(1)了解MySQL数据库中的存储引擎分类
(2)了解表的结构特点
(3)了解MySQL的基本数据类型
(4)了解空值的概念
(5)学会在MySQL界面工具中创建数据库和表
(6)学会使用SQL语句创建数据库和表
(7)学会在界面管理工具中对数据库表进行插入、修改和删除数据操作
(8)学会用SQL语句对数据库进行插入、修改和删除数据操作
(9)了解数据更新操作时要注意数据完整性
(10)了解SQL语句对表数据操作的灵活控制功能
实验操作
创建表
利用create table命令创建表
[例1] 创建一个雇员信息表的命令如下
CREATE TABLE employee (
[empid] [int] NOT NULL primary key clustered,
[name] [varchar] (20) NOT NULL ,
[sex] [char] (2) NULL ,
[birthday] [datetime] NULL ,
[hire_date] [datetime] not NULL DEFAULT (g etdate()),
[salary] [money] NULL CHECK ([salary] is null or [salary] >= 450)
)
[例2] 创建一个学生信息表的命令如下。(这里包括了外键约束)
CREATE TABLE [dbo].[student] (
[sno] [char] (8) NOT NULL primary key, [sname] [char] (20) NOT NULL ,
[sclass] [char] (10) NULL DEFAULT ('本科'),
[ssex] [char] (2) NULL DEFAULT ('男') CHECK ([ssex] = '男' or [ssex] = '女'),
[sdh] [varchar] (14) NULL , [scsrq] [datetime] NULL ,
[srxrq] [datetime] NULL , [saddr] [varchar] (50) NULL ,
[smemo] [varchar] (200) NULL , [spno] [char] (4) NULL ,
[csno] [char] (4) NULL,
CONSTRAINT [FK_student_class] FOREIGN KEY [csno]
REFERENCES [class] ( csno),
CONSTRAINT [FK_student_speciality] FOREIGN KEY (spno) REFERENCES.[speciality] (spno)
)
修改表
利用atler table命令修改表
[例1] 给表student添加sage年龄字段
Alter table student add sage int
[例2] 删除表student的 sage年龄字段
Alter table student drop column sage
查询表
Select * from student;
删除表
利用drop table命令修改表
[例] 删除表employee的的命令
drop table employee;
删除表中的重复记录
已知一个表student中有重复的数据
- 创建一张空表tmp_student,空表的结构与表student的结构相同;
create table tmp_student like student;
- 将student表进行distinct,将数据导入空表中;
insert into tmp_student select distinct * from student;
- 删除原表student
drop table student;
- 将tmp_student改名为student
alter table tmp_student rename student;
实验内容要求及步骤:
创建学生成绩管理数据库的三个基本表
( 指定数据库:use 数据库名字)
(1)请运用CREATE语句创建三个基本表;
·学生表:Student(SNO,SNAME,AGE,SEX)
。
其中,SNO为char(10)类型,SNAME为varchar(20)类型,AGE为int型,SEX为char(2)类型。
·课程表:Course(CNO,CNAME,TEACHER)
。
其中,类型分别为char(10)类型,vachar(20),varchar(20)。
·学生选课表:Student _ Course(SNO,CNO,GRADE)
。
其中,类型分别为char(10),char(10),char(10)。
Eg:
create table sc(sno char(10),cno char(10),grade char(10));
(2)显示表的属性列;
Show columns from 表名;
或者 DESC 表名;
Eg:
Show columns from sc;
或者
desc SC;
(3)修改表的两个字段AGE和SEX为SAGE和SSEX。并显示是否修改成功;
alter table 表名 change column 旧列名 新列名 列类型;
Eg:
alter table SC change column GRADE SC_GRADE INT(8);
Desc sc;
(4)修改表名:将表student修改为S,将Course修改为C;
alter table 原来表名 rename 修改后表名;
Eg:
alter table SC rename SC1;
Show tables;
(5) 修改列属性类型:将 表SC中的grade属性类型char(10)改为int(8);
alter table 表名 modify column 列名 列属性;
Eg:
alter table SC1 modify column sc_grade char(8);
(6) 插入元组:每个表至少要有两个元组,其中S表里面必须包含自己的学号和姓名;
Eg:
insert into s values (‘S1’,’WANG’,20,’M’),(‘20120067’,’zhangjuan’,32,’女’);
insert into SC1 values(‘20120067’,’c4’,’90’);
select * from SC1;
(7)删除元组;
Eg:
Delete from SC1 WHERE sno=’20120067’;
select * from SC;
(8)删除表;
Eg:
Drop table sc1;
Show tables;