4.5.3、修改表结构
如果想向现有的表中添加一列,则可以修改表结构:
4.5.4、外键
上面这个学生表是有些问题的:
a)、不便于修改,比如教室换成了305教室,则每个学员都要修改
b)、数据冗余,大量的重复数据
将表拆分成两个,分解后问题解决,如下图所示:
这里的班级编号就是外键,可以空,但不为空时他的值一定在要引用表中存在。如果学生表中的编号是主键这里就不应该重复,外键则可以重复也允许为空。
添加外键:
班级表:
学生表:
添加外键:
删除与更新时可以实现级联更新与删除,当更新设置为CASCADE时主键变化引用主键的表也会一起变化,当删除设置为CASCADE时删除主键表,引用的记录都将被删除。
4.5.5、唯一键
唯一键,也称(唯一约束),和主键的区别是可以为有多个唯一键并且值可以为NULL,但NULL也不能重复,也就是说只能有一行的值为NULL。它会隐式的创建唯一索引。
设置方法:索引 –> 添加索引 –> 栏位名 添加你想设置唯一约束的列 –> 索引类型选择 Unique
4.6、上机练习
1、请创建一个新的数据库叫HR,在HR数据库中添加EMP表,EMP表的表结构如下所示
2.根据上面的表结构完成表的创建,表名为emp
3.在表中添加5条以上的数据
4.完成下列查询要求
4.1.查询所有员工信息
4.2.查询所有工资介于2000-5000间的员工姓名、职位与工资
4.3.查询所有姓“张”的员工
4.4.按工资降序查询出2014年到2015年间入职的员工
4.5.将工资普遍上调20%
4.6.将工资低于3000元的员工奖金修改为工资的2.8倍
4.7.删除编号为5或者姓“王”的员工
五、使用SQL访问MySQL数据库
5.1、增加数据
insert 语句可以用来将一行或多行数据插到数据库表中, 使用的一般形式如下:
Insert into 表名(字段列表) values (值列表);
insert [into] 表名 [(列名1, 列名2, 列名3, ...)] values (值1, 值2, 值3, ...);
insert into students values(NULL, "张三", "男", 20, "18889009876");
有时我们只需要插入部分数据, 或者不按照列的顺序进行插入, 可以使用这样的形式进行插入:
insert into students (name, sex, age) values(“李四”, “女”, 21);
5.2、查询数据
select 语句常用来根据一定的查询规则到数据库中获取数据, 其基本的用法为:
select 字段名 from 表名称 [查询条件];
查询学生表中的所有信息:select * from students;
查询学生表中所有的name与age信息:select name, age from students;
也可以使用通配符 * 查询表中所有的内容, 语句: select * from students;
5.2.1、表达式与条件查询