一 数据库的创建以及表的创建
1 创建数据库和表
创建MySQL数据表需要以下信息:
(1) 数据库名
(2) 表名
(3) 表字段名
(4) 定义每个表字段
(5) 确定主键与外键
create database 数据库名;
use 数据库名;
create table 表名(
字段名1 数据类型,
字段名2 数据类型,
字段名1 数据类型
)
认识主键:用来唯一标识关系表中每一行数据的字段或字段组合
外键:建立表与表之间关系的字段。外键是关联另一个表的主键,从而在表之间创建关系
实现表与表之间的关联,通过外键可以在关联表之间进行数据查询和操作
2 删除数据库和表
(1)删除数据表
drop database <数据库名>; //删除数据库
drop table 表名 //删除数据库表
(2)查看数据表
describe|desc 表名
例题:
UES teaching;
describe|des s;
show create talbe 表名
查看数据库表的结构 (会给出创建表的语句)
例题:
use teaching;
show create table s;
3 修改数据表
(1)ADD用于增加新字段和完整性约束
alter table <表名>
add <新字段> <数据类型> <完整性约束> after |first 已有字段名;
first是将新添加的字段设置为表的第一个字段
after是将新添加的字段设置在指定已有字段之后
例题:
在学生表s中,在年龄age字段后面新加一个家庭住址address的字段
alter table s
add address nvarchar(20) after age;
(2)RENAME用于修改表名
alter table 旧表名 rename [TO] 新表名;
例题:
将表名student改为people
alter table student rename people;
(3)MODIFY用于修改字段的数据类型和字段排序
alter table 表名
modify 字段名1 数据类型 约束条件;
例题:将表student中的name的数据类型改为char(3)
alter table student modify name char(3) not null;
tips:
当我们修改数据类型的时候,如果表里有数据,那么必须里面的数据符合你要修改的数据类型
修改字段排序
alter table 表名
modify 字段名1 数据类型 first|after 字段名2;
first 是将字段名1修改为表的第一个字段
after 是将字段名1插入在字段名2 的后面
tips:
在修改字段排序时,数据类型不可省略
(4)DROP用于删除字段和完整约束性
alter table 旧表名 drop 字段名;
例题:
删除表student的字段address
alter table student drop address;
4 数据表中数据的操作
(1)增加一条新记录
insert|replace into 表名 ( 字段名1, 字段名2,...字段名N )
values ( value1, value2,...valueN );
insert into 表名 ( ) values ( value1, value2,...valueN );
tips:
values子句中值的排列顺序必须和字段的排列顺序一致,而且个数相等,数据类型一一对应
(2) 增加一条或者多条记录的部分数据
insert into 表名 (字段名1, 字段名2 ......字段名n)
values ('value1','value2'......'valueN');
例题:
在sc表中增加一条选课记录
insert into sc (cno, sno)
values ('c7','s1');
例题
在sc表中增加3条选课记录
insert into sc (cno, sno)
values ('c7','s1'),
('c2','s4'),
('c8','s9');
(3)修改一条或者多条数据表中的数据
update 表名
set 字段名=表达式,字段名=表达式......
where 条件;
例题:
把刘杨老师转到工学院
update t
set dept='工学院'
where teacher='刘杨';
例题:
把所有的学生的年龄增加一岁
update s
set age=+1;
(4)删除数据表中的数据
delete from 表名
where 条件;
例题:
删除90.5分成绩的记录
delete from sc
where score=90.5;
例题:
删除所有老师的上课记录
delete from tc;
truncate table 表名;
truncate table tc;
tips:
delete table 删除内容,不删除定义,不释放空间;
truncate table 删除内容,不删除定义,但释放空间;
课后习题:
建立学生-课程数据库基本表:
学生Student(学号Sno,姓名Sname,年龄Sage,性别Ssex,所在系Sdept)
课程Course(课程号Cno,课程名Cname,先行课Cpno,学分Credit)
选课SC(学号Sno,课程号Cno,成绩Grade)
(1)向student表中添加Sentence列
(2)将Sentrance的数据类型改为varchar
(3)将student表中将性别插入在年龄的前面
大家可以尝试做一做哦