Mysql简单的表操作和约束
建表的具体模版
create table 表名(
列名1 数据类型 约束01,
列名2 数据类型 约束02:
示例:
create table 表名(
列名1 int [not null(不为空值)auto_increment (递增长)primary key(主键)],
列名2 varchar(20) not null,
)
插入一条记录的模板
insert into 表名(列名1,列名2,…) values(1值 ,2值,…);
!!! 如果你的列有递增长列,则相对性的一列数据不应出现在表名后().
删除表
drop table tablename (表名称)
修改表
(1) 修改表类型,语法如下:
(格式)alter table(表名) modify(列名)(需要修改的内容);
修改表 emp 的 ename 字段定义,将 varchar(10)改为 varchar(20):mysql> alter table emp modify ename varchar(20);
(2) 增加表字段,语法如下:
alter table (表名)add column (列名)(数据类型){可以添加约束,和主键];
例如,表 emp 上新增加字段 age,类型为 int(3):mysql> alter table emp add column age int(3);
(3)删除表字段,语法如下:
alter table(表名) drop column(列名);
例如,将字段 age 删除掉:mysql> alter table emp drop column age;
(4)字段改名,语法如下:
alter table (表名)change(列名称)(需要修改成的列名称)[同时可以修改字段类型];
例如,将 age 改名为 age1,同时修改字段类型为 int(4):mysql> alter table emp change age age1 int(4) ;
(6)表改名,语法如下:
alter table (表名) rename(需要修改成的表名);
例如,将表 emp 改名为 emp1,命令如下:mysql> alter table emp rename emp1;
约束
约束(constraint)实际上就是表中数据的限制条件 ,可以让其内容不重复,或者注册的时候必须添加条件和内容.
约束的五大种类
非空约束(not null)
唯一性约束(unique)
主键约束(primary key) PK
外键约束(foreign key) FK
检查约束(目前MySQL不支持、Oracle支持)
一 非空约束
使用not null 必须给指定的数据添加非空约束,比如(用户表,用户名都不可为空)
mysql> create table t_user(
-> id int(10),
-> name varchar(32) not null
-> );
Query OK, 0 rows affected (0.08 sec)
二 唯一性约束
unique约束的字段,具有唯一性,不可重复,但可以为null 创建表,保证邮箱地址唯一(列级约束)
mysql> create table t_user(
-> id int(10),
-> name varchar(32) not null,
-> email varchar(128) unique
-> );
Query OK, 0 rows affected (0.03 sec)
表级约束
mysql> create table t_user(
-> id int(10),
-> name varchar(32) not null,
-> email varchar(128),
-> unique(email) -> );
三 主键约束(primary key)
表设计必定要有主键
单一主键:给一个字段添加主键约束
复合主键:给多个字段联合添加一个主键约束(只能用表级定义) 单一主键(列级定义)
单一主键(列级定义)
mysql> create table t_user(
-> id int(10),
-> name varchar(32) not null,
-> constraint t_user_id_pk primary key(id)
-> );
复合主键(表级定义)
mysql> create table t_user(
-> id int(10),
-> name varchar(32) not null,
-> email varchar(128) unique,
-> primary key(id,name)
-> );
四 外键约束(foreign key)
若有两个表A、B,id是A的主键,而B中也有id字段,则id就是表B的外键,外键约束主要用来维护两个 表之间数据的一致性。
A为基本表,B为信息表
只能是表级定义
foreign key(classno) references t_class(cno)
注意事项
外键值可以为null
外键字段去引用一张表的某个字段的时候,被引用的字段必须具有unique约束
有了外键引用之后,表分为父表和子表
班级表:父表
学生表:子表
创建先创建父表 删除先删除子表数据
插入先插入父表数据 存储学生班级信息