目录
删除数据库(mysql不会给出任何提醒,数据将不能被恢复!!!)
唯一性约束(Unique Constraint) 一列只能有一个空值
修改字段名(change) 也可以用来改变字段类型 字段类型不能为空
修改字段的排列位置(modify) 改变字段的数据类型必须加 after后面字段的数据类型不用加
数据库基本操作
查询所有存在的数据库(此时是查询多个数据库,所以后面有s)
show databases;
创建数据库(test_db数据库名)
create database test_db;
删除数据库(mysql不会给出任何提醒,数据将不能被恢复!!!)
drop database test_db;
选择创建表的数据库
use test_db;
注意,在控制台输入mysql语句是后面要加分号
表的基本操作
创建表(create)
create table test_table
(
id int(11),
name varchar(10),
age int(11)
);
删除表(drop)
删除被其他表关联的主表时直接删除父表会显示失败,得先解除关系,或者先删除子表
drop table 表1,表2...
drop table if exists emmp #加上参数后,如果表不存在,可以正常运行,但是会发出警告
查看改数据库里面的表(注意加s)
show tables;
查询表结构
desc test_table; #是describe的缩写
describe test_table;
show create table test_table; #可以查看创建表时候的语句,同时还可以查看引擎
show create table test_table\G #在控制台使用
约束
主键约束
主键:用来标识唯一的一条记录,同时和外键配合使用,要求主键列的数据唯一,同时不为空,
#单字段主键
create table testa
(
id int(11) primary key,
name varchar(10),
age int(3)
)
create table testb
(
id int(11),
name varchar(10),
age int(3),
primary key(id)
)
#多字段联合主键
create table testc
(
id int(11),
name varchar(10),
age int(3),
primary key(id,name)
)
外键约束
1.外键:用来在两个表的数据之间建立链接,可以是一列或者多列
2.一个表的外键可以为空值,若不为空值,则每一个外键值必须等于另一个主键表中的某个值
3.可以不是主键,但对应另一个表中的主键
4.定义外键后,不能删除另一个表中的关联行
5.外键不能跨引擎!!!
主表(父表):相关联字段中主键所在表
从表(子表):相关联字段中外键所在表
create table dep
(
id int(11) primary key,
name varchar(10),
location varchar(50)
)
create table emp
(
id int(11) primary key,
name varchar(10),
depId int(11),
salary float,
constraint fk_emp_dep foreign key(depId) references dep(id)
)
删除表的外键约束(drop) 所以取外键约束名的时候要规范!!!
alter table 表名 drop foreign key 外键约束明
alter table emp drop foreign key fk_emp_dep
show create table emp #可以使用这句查看外键是否存在,和外键名
show create table emp\G #建议使用这句才命令提示符上面查看,清楚一点
非空约束(Not Null Constraint)
name varchar(10) not null
唯一性约束(Unique Constraint) 一列只能有一个空值
name varchar(10) unique
默认约束
name varchar(10) default '老王',
设置表中属性自动增加
id int(11) primary key auto_increment
修改表名
alter table 旧表名 rename 新表名
alter table testa rename testgg
更改表的存储引擎
alter table 表名 engine=更改后的引擎名
alter table testgg engine=myisam
对字段的操作集合
修改字段名的数据类型(modify)
alter table 表名 modify 字段名 字段类型
alter table testgg modify age varchar(3)
修改字段名(change) 也可以用来改变字段类型 字段类型不能为空
alter table 表名 change 就字段名 新字段名 新数据类型
alter table testgg change age ages int(3)
添加字段(add)
alter table 表名 add 字段名 类型
alter table testgg add salary float #新加字段默认放在最后一列
alter table testgg add salary1 float first #表示加入的字段放在第一列
alter table testgg add salary2 float after salary1 #表示加入的字段放在salary1的后面那一列
删除字段(drop)
alter table 表名 drop 字段名
alter table testgg drop salary1
修改字段的排列位置(modify) 改变字段的数据类型必须加 after后面字段的数据类型不用加
alter table 表名 modify 字段名 数据类型
alter table testgg modify ages varchar(3) first
alter table testgg modify ages varchar(3) after id #id后面不能加数据类型