操作数据库
创建数据库:create database database-name;
删除数据库:drop database database-name;
查看数据库:show databases;
数据库存储引擎
查看mysql支持的存储引擎:show engines \G;
另一种查看方式:show variables like ‘have%’;
查询默认存储引擎:show variables like ‘storage-engine’;
修改默认引擎:
Mysql目录下my.ini配置文件:’default-storage-engine=INNODB’修改INNODB重启服务即可。
修改表的存储引擎:
alter table 表名 engine=存储引擎名;
查看表的存储引擎:
show create table 表名 \G
操作表
创建,修改,删除表
创建表:create table(属性名:数据类型【完整的约束条件】,
属性名:数据类型【完整的约束条件】,
……
);
完整性约束条件表
Primary key(主键),foreign key(外键),not null(不为空),unique(唯一),
Auto-inncrement(自增),default(默认值)
设置表的主键
单字段主键:
属性名 数据类型 primary key
多字段主键:
Primary key(属性名1,属性名2,…)
注:放在新建表末尾
eg:create table ex2(stu_id int,course_id int,primary key(stu_id,course_id));
设置表的外键:
Constraint 外键别名 foreign key(属性1.1,属性1.2,…,属性1.n)references 表名(属性2.1,属性2.2,…,属性2.n)
eg:create table ex3(id int primary key,stu_id int,course_id int,constraint c_fk foreign key(stu_id,course_id)references ex2(stu_id,course_id));
作用:保证数据完整性
设置表的唯一性约束:
属性名 数据类型 unique
作用:保证该字段的值不会重复出现
设置表的属性值自动增加:
属性名 数据类型 auto_increment
设置表的默认值:
属性名 数据类型 default 默认值
作用:未填写数据的字段,填写默认值
设置表的属性的默认值:
属性值 数据类型 default 默认值
查看表结构
desc table-name;
查看表的详细结构:
show create table table_name; 加\G查看表的定义
查看创建表记录命令:
show create table 表名\G;
查看字符集:
show variables like ‘char%’;
修改表名:
alter table old-name rename 【to】 new-name;
修改字段的数据类型:
alter table 表名 modify 属性名 数据类型;
修改字段名:
alter table 表名 change 旧属性名 新属性名 新数据类型;
修改值:
update table-name set 字段=值 where 字段=值;
增加字段:
alter table 表名 add 属性名1 数据类型 [完整约束条件] [first|after 属性名2];
[first|after 属性名2]目的用于指定添加字段的位置
删除字段:
alter table 表名 drop 属性名;
修改字段的排列位置:
alter table 表名 modify 属性名1 数据类型 first|after 属性名2;
删除表的外键约束:
alter table 表名 drop foreign key 外键别名;
删除表:
删除没有被关联的普通表:
drop table 表名;delete from 表名; truncate table 表名;
删除被其他表关联的父表:
先查看子表的约束条件(外键别名)
show create table 子表名 \G;
找到外键别名,删除外键约束
alter table 子表名 drop foreign key 别名;
再次查看,外键约束是否被删除,如已删除,再删除表;
删除命令分析:truncate drop delete
truncate:删除内容,保留结构;删除内容、释放空间但不删除表的结构(定义)。
drop:全部删除(结构,索引等);删除内容和定义,释放空间
delete:全部删除或部分删除,删除表中数据而不删除表的结构(定义),同时也不释放空间。
delete from 表名;或 delete from 表名 where 属性名=“”;