Mysql---表的约束条件
一、重点问题
子查询中条件判断最好用in别用=,因为你并不知道查询结果为几条
ifnull用来处理空值的两种情况
jar包不能导入两个功能相同的
取整函数在负数中的使用ceil 向上取整,返回>=该参数的最小整数floor 向下取整,返回<=该参数的最大整数
数据库中非数值都要用单双引号,但是在字符串中只能用单引号
数据库中一般都用sql里面的类
DML增删改操作
DQL查询操作
executeUpdata 返回int 表示改变了几行
数值类型数据也可以加引号使用,但没必要
数据库的执行语句一定要保证该有空格地方不能漏了空格
二、课堂知识
1、唯一约束 unique
限定某一字段的字段值不能有重复
创建表时,添加唯一约束
createtable表名(字段名 字段类型 unique, 字段名 字段类型 [约束], ...);
创建表后,添加唯一约束
altertable表名 modify 字段名 字段类型 unique;
删除唯一约束(设置字段允许有重复值)
altertable表名dropindex 字段名;
注:
唯一约束的值可以是空值,可以存在多个空值,但是只能有唯一的“null”值
一个字段可以同时设置成非空唯一,非空和唯一约束的顺序是任意的
已存在重复值的字段不能被设置成唯一的
2、主键约束 primary key
特点:
1、非空且唯一
2、一张表只能有一个字段是主键
3、主键是表中记录的唯一标识
①、创建表时,添加主键约束
create table 表名(字段名 字段类型 primary key, 字段名 字段类型 [约束], ...);
create table 表名(字段名 字段类型 [约束], 字段名 字段类型 [约束], ... , primary key(主键字段));
②创建表后,添加主键约束
alter table 表名 modify 字段名 字段类型 primary key;
③删除主键
alter table 表名 drop primary key;
注意:删除主键约束后,主键仍有非空约束
主键自增长:
概念:如果某个字段是数值类型的主键字段,可以使用 auto_increment 来实现主键自增长
注:
1、自增长的主键必须是数值类型的(整数或者小数)
2、当添加记录时,不为该字段赋值或者赋值为null,该字段就会自增长
3、第一条自增长的字段值是 1
4、从已存在的最大值开始 + 1
5、从已存在的最大值是小数时,自增长的值是向上取整
6、只有主键可以自增长
①创建表时,添加主键自增长
create table 表名(字段名 字段类型 primary key auto_increment, 字段名 字段类型 [约束], ...);
②创建表后,添加主键自增长
alter table 表名 modify 主键字段 字段类型 auto_increment;
③创建表后,添加主键约束的同时,设置自增长
alter table 表名 modify 字段名 字段类型 primary key auto_increment
④删除自增长
alter table 表名 modify 字段名 字段类型;
3、外键约束 foreign key
外键约束可以使表与表之间产生关系
①创建表时,添加外键约束
create table 表名 (字段名 字段类型 primary key, 字段名 字段类型 [约束], ... , 外键字段 外键类型 ,[constraint 外键名] foreign key (外键字段) references 主表名 (主表主键字段));
②创建表后,添加外键约束
alter table 表名 add [constraint 外键名] foreign key (外键字段) references 主表名 (主表主键字段));
③删除外键约束
alter table 表名 drop foreign key 外键名;
注:
1、从表的外键类型必须与主表的主键类型一致
2、外键只能指向主键
3、外键保证了数据的正确性和完整性
中间表的创建以及联合主键
create table 表名 (
外键字段1 外键类型, 外键字段2 外键类型, primary key (外键字段1,外键字段2),
foreign key (外键字段1) references 主表1(主键字段),
foreign key (外键字段2) references 主表2(主键字段),
);