事务:
一组操作的集合。要么全部不执行,要么全部执行
创建一个数据库 createdatabase (数据库名字);
创建一个表 create table stu_info
(
Id int(11),
Name varchar(20),
);
主键约束:
主键不允许为空,唯一标识表中的一条记录
Id int(11) primary key, primary key(id)
多字段联合主键
Primary key(id,name)
外键约束
外键用来在俩个表的数据之间建立连接,它可以是一列或者多列,一个表可以有一个或多个外键,外键对应的是参照完整性,一个表的外键可以为空值,若不为空值,则每一个外键值必须等于另一个表中主键的某个值
Create table tb_emp5
(
Id int(11) primary key,
Deptid int(11),
Constraint fk_emp_dept1 foreign key(deptid)references ta_dept1(id)
)
在表tb_emp5 上添加名称为fk_emp_dept1的外键约束,外键名称为deptid 其依赖tb_dept1的主键id
非空约束
指字段的值不能为空,如果用户在添加数据时没有指定值,系统报错
Create table tb
(
Id int(11) not null
);
唯一性约束
要求该列唯一,允许改列为空,但只能出现一个空值,唯一约束可以确保一列或几列不出现重复值
Create table info
(
Id int(11) primary key,
Name varchar(11) unique
);
在定义完所有的列以后指定
Create table info
(
Id int(11) primary key,
Name varchar(11),
Constraint sth unique(name)
);
默认约束(指定某列的默认值)
Create table info
(
Id int(11) primary key,
Name varchar(10) not null,
Age int(11) default 20
);
如果新插入的记录没有指定年龄,则默认为20
设置表的属性值自动增加
Auto_increment
默认的在mysql中auto_increment初始值是1,每增加一条记录,字段值自动加1,一个表只能有一个字段使用auto_increment约束,且该字段必须为主键的一部分,可以是任意的整数类型
Create table info
(
Id int(11)primary key auto_increment,
Name varchar(30) not null
);
查看表基本结构语句确认表的定义是否正确describe / desc
Describe info;
Desc info;
查看表详细结构语句show create table
Show create table info;
Show create table info\G;
修改数据表
Alter table <旧表名> rename[to]<新表名>;
Alter table info rename info2; [to]为可选参数,是否使用不影响结果
修改字段的数据类型
Alter table <表名> modify <字段名> <数据类型>
Alter table info modify id char(30);
修改字段名
Alter table <表名> change <旧字段名> <新字段名> <新数据类型>
Alter table info change id name char(20);
添加字段
Alter table <表名>add <新字段名><数据类型>
Alter table info add name varchar(10);
[约束条件][first | after 已经存在的字段];
first为可选参数,作用是新添加的字段为表的第一个字段
after为可选参数,作用是新添加的字段在已经存在的字段后面
如下例;
Alter table info add name varchar(20) notnull first;
Alter table info add age int(10) not nulldefault 20 after name;
删除字段:
Alter table <表名> drop <字段名>;
Alter table info dorp id;
修改字段的排列位置
Alter table<表名>modify<字段1><数据类型>first|after<字段2>;
Alter table info modify id int first;
Alter table info modify name varchar(30)after id;
更改表的存储引擎
Alter table <表名>engine=<更改后的引擎名>
Alter table info engine=innodb; //innodb是表默认的存储引擎
删除表的外键约束
外键一旦删除就会接触主表和子表之间的关联关系
Alter table <表名>drop foreign key<外键约束名字>
删除数据表
删除没有被关联的表
Drop table [if exists] <表名>
Drop table info;
删除被其它表关联的主表
可以先删除与它关联的子表外键再删除主表,方法同上