完整性约束
mySql常用类型:
完整性约束是为了表的数据的正确性!如果数据不正确,那么一开始就不能添加到表中。
int:整型 默认长度11 10位长度
1 主键
double:浮点型,例如double(5,2)表示最多5位,其中必须有2位小数,即最大值为999.99;
当某一列添加了主键约束后,那么这一列的数据就不能重复出现。这样每行记录中其主键列的值就是这一行的唯一标识。例如学生的学号可以用来做唯一标识,而学生的姓名是不能做唯一标识的,因为学生姓名有可能同名。主键列的值不能为NULL,也不能重复!
decimal:泛型型,在表单钱方面使用该类型,因为不会出现精度缺失问题;
指定主键约束使用PRIMARY KEY关键字
char:固定长度字符串类型;默认 1个长度
创建表:定义列时指定主键:
varchar:可变长度字符串类型;相当于String 默认长度自己定义
CREATE TABLE stu PRIMARY KEY, sname VARCHAR, age INT, gender VARCHAR;
text:字符串类型;文本
创建表:定义列之后独立指定主键:
blob:字节类型;
CREATE TABLE stu, sname VARCHAR, age INT, gender VARCHAR);
date:日期类型,格式为:yyyy-MM-dd;date Format SimpleDateFormat
修改表时指定主键:
time:时间类型,格式为:hh:mm:ss 08:02:00
ALTER TABLE stuADD PRIMARY KEY;
ALTER TABLE stu DROP PRIMARY KEY;
timestamp:时间戳类型;
2 主键自增长
CREATE TABLE emp(
MySQL提供了主键自动增长的功能!当主键设置为自动增长后,在没有给出主键值时,主键的值会自动生成,而且是最大主键值+1,也就不会出现重复主键的可能了。
empno INT PRIMARY KEY, 员工编号
创建表时设置主键自增长:
ename VARCHAR(50), 员工姓名
CREATE TABLE stu( sid INT PRIMARY KEY AUTO_INCREMENT, sname VARCHAR, age INT, gender VARCHAR;
job VARCHAR(50), 员工工作
修改表时设置主键自增长:
mgr INT, 领导编号
ALTER TABLE stu CHANGE sid sid INT AUTO_INCREMENT;
hiredate DATE, 入职日期
修改表时删除主键自增长:
sal DECIMAL(7,2), 月薪
ALTER TABLE stu CHANGE sid sid INT;
comm decimal(7,2), 奖金
3 非空
deptno INT 部分编号
指定非空约束的列不能没有值,也就是说在插入记录时,对添加了非空约束的列一定要给值;在修改记录时,不能把非空列的值设置为NULL。
);
指定非空约束:
完整性约束
CREATE TABLE stu( sid INT PRIMARY KEY AUTO_INCREMENT, sname VARCHAR NOT NULL, age INT, gender VARCHAR;
完整性约束是为了表的数据的正确性!如果数据不正确,那么一开始就不能添加到表中。
当为sname字段指定为非空后,在向stu表中插入记录时,必须给sname字段指定值,否则会报错:
1 主键
INSERT INTO stu;
当某一列添加了主键约束后,那么这一列的数据就不能重复出现。这样每行记录中其主键列的值就是这一行的唯一标识。例如学生的学号可以用来做唯一标识,而学生的姓名是不能做唯一标识的,因为学习有可能同名。
插入的记录中sname没有指定值,所以会报错!
主键列的值不能为NULL,也不能重复!
4 唯一
指定主键约束使用PRIMARY KEY关键字*(例如上面)
还可以为字段指定唯一约束!当为字段指定唯一约束后,那么字段的值必须是唯一的。这一点与主键相似!例如给stu表的sname字段指定唯一约束:
2 主键自增长
CREATE TABLE tab_ab( sid INT PRIMARY KEY AUTO_INCREMENT, sname VARCHAR; INSERT INTO sname VALUES;INSERT INTO sname VALUES;
MySQL提供了主键自动增长的功能!这样用户就不用再为是否有主键是否重复而烦恼了。当主键设置为自动增长后,在没有给出主键值时,主键的值会自动生成,而且是最大主键值+1,也就不会出现重复主键的可能了。
当两次插入相同的名字时,MySQL会报错!
创建表时设置主键自增长(主键必须是整型才可以自增长):
5 外键
CREATE TABLEstu(
主外键是构成表与表关联的唯一途径!
sid INT PRIMARY KEY AUTO_INCREMENT,
外键是另一张表的主键!例如员工表与部门表之间就存在关联关系,其中员工表中的部门编号字段就是外键,是相对部门表的外键。
sname VARCHAR(20),
例如在t_section表中sid为1的记录说明有一个分类叫java,版主是t_user表中uid为1的用户,即zs!
)
本文由美高梅官方网站发布于数据统计,转载请注明出处:项目中遇到的问题美高梅官方网站