表的操作
表示数据库存储数据的基本单位,由若干个字段组成,主要用来存储数据记录,表的操作是增删改查,这是最基本的操作,也是最重要的操作
创建表
语法create table 表名
(字段1类型[(宽度)约束条件],
字段n 类型[(宽度)约束条件]
);
在同一张表中字段名不能相同
宽度和约束条件是可选的
字段名和类型是必须的
实例:
Use school
Create table student
(name char(10),
Sex char(8),
Age int(3),
Password varchar(50)
);
查看表结构
Describe 表名;
Desc 表名;
Show create table 表名; //查看表详细结构
表完整性约束为了保障数据的完整性一致性和准确性
关键字primkary key 主键, 唯一标识的一个记录
Foreign key 外键 ,做关联
No null 非空
Unique key 唯一约束,这本身就是一个索引
Default 默认值
Auto_increment 自增长
实例:
Use school
Create table student
(name char(10) not null,
Sex enum (‘male’,’female’), default‘male’not null
Age intunsignednot null default 18, //unsigned修饰值必须为正值
Hobby set (‘music’,’book’,’disc’) default‘book,disc’
);
设置唯一约束实例:unique
Create table departtment(
Dept_id int,
Dept_name varchar(30)unique,
Comment varchar(50)
);
设置主键约束实例:primary key非常重要,唯一标识符,这本身就是一条索引
使用单列做主键
Create table departtment(
Dept_id intprimary key,
Dept_name varchar(30) ,
Comment varchar(50)
);
使用多列做主键,也就是复合主键,也就是说这两个共同一起是不能有相同的数据的
Create table departtment(
Dept_id int ,
Dept_name varchar(30),
Comment varchar(50),
Constraintpk_id_nameprimary key (dept_id,dept_name)
);
设置自增长auto_increment 自增长通常都是配合主键共同使用的,而且这个字段必须是整数类型才行
Create table student(
Dept_id intprimary auto_increment,
Dept_name varchar(30),
Comment varchar(50)
);
设置外键约束foreign key主要做表的关联,这里就涉及到父子表的概念,外键必须要存储引擎来支撑的,所以必须要确保存储引擎是innodb才行
实例
父表
Create table empolyees(
Name varchar(20) not null,
Mail varchar (20),
Primary key (name)
)engine=innodb;
子表
Create table pryroll(
Id int(5) not null,
Name varchar(20) not null,
Payroll float (10,2) no null,
Primary key (id),
Constraint fk_nameforeign key (name)references employees (name)
on udate cascade
on delete cascade //字表中的name跟employees表的name字段关联,并且同步删除更新,父表中有那个人,子表中才能够插入,不然是不行的
)engine=innodb;
修改表
修改表名
Alter table旧表名rename新表名
实例:
Alter table stu rename student; //将stu表改名为student
Alter table student engine=myisam; //修改student表的存储引擎为myisam
增加字段
Alter table 表名
Add字段名 数据类型[完整性约束条件.....],
Add字段名 数据类型[完整性约束条件.....];
默认情况下新增加的字段是放在所有字段后面的
实例:
Alter table student
Add name varchar(30) not null,
Add age int not null;
Alter table 表名
Add字段名 数据类型[完整性约束条件.....] first;
实例:
Add stu_num varchar(30) not null first;
Alter table 表名
Add字段名 数据类型[完整性约束条件.....] after字段名;
实例:
Add passord varchar(30) not null after name;
删除字段
Alter table表名drop字段名;
实例:
Alter table student drop stu_num;
修改字段
Alter table表名modify字段名 数据类型 [完整性约束条件......]; //只能针对旧有的字段操作只能改名
Alter table表名change旧字段名 新字段名 旧数据类型 [完整性约束条件......];
一般用这个
实例:
Alter tablestudentchangename stu_name varchar(30);
Alter table表名change旧字段名 新字段名 新数据类型 [完整性约束条件......];
实例:
Alter tablestudentchangestu_name name varchar(50) not null;
删除表
Drop table表名;
实例:
Drop table student