一、查看
1、图形界面查看
2、通过命令行查看
//查看所有数据库
show database; //数据库为复数时,应该加s
//查看表
use [数据库名];//(使用数据库)
show tables;//表为复数时,应该加s
//查看表中的列
show columns from [表名];
//或者
describe [表名];//describe是show columns的快捷方式;(查看表结构)
//简写
desc [表名];
二、创建
创建数据库
create database [库名];
use [库名];
create table [表名]([字段名] varchar(20),[字段名] varchar(1));
create & create as
- 验证表创建是否按照自己期望的方式可使用上述的describe语句。
三、更改
删除数据库
drop database [库名];
删除数据表
drop table [表名];
清空表中数据
delete from [表名];
更改表结构
//增加一列
alter table pet(表名) add name(字段名) char(100) null;
//删除
alter table pet drop column name;
重命名表
rename table [表名] to [库名];
添加id字段
ALTER TABLE [tablename] ADD id INT NOT NULL PRIMARY KEY AUTO_INCREMENT FIRST ; //让mysql表中有数据添加ID字段并让关键字ID自增长
定义外键
- 外键,就是某一个表的一列,它包含另外一个表的主键值,定义了两个表之间的关系。
alter table tablename
add [constraint 外键名] foreign key [id] (index_col_name,...)
references tb1_name(index_col_name,...)
[ON DELETE {CASCADE | SET NULL | NO ACTION | RESTRICT}]
[ON UPDATE {CASCADE | SET NULL | NO ACTION | RESTRICT}]
级联操作
即在主表更新是,子表产生连锁更新动作
on update cascade;
说明:
on delete/on update,用于定义delete,update操作。
以下是update,delete操作的各种约束类型:
- CASCADE:
外键表中外键字段值会被更新,或所在的列会被删除。
- RESTRICT:
RESTRICT也相当于no action,即不进行任何操作.即,拒绝父表update外键关联列,delete记录。
- set null:
被父面的外键关联字段被update ,delete时,子表的外键列被设置为null。
而对于insert,子表的外键列输入的值,只能是父表外键关联列已有的值,否则出错。
外键定义服从以下情况:
1)
所有tables必须是InnoDB型,它们不能是临时表.因为在MySQL中只有InnoDB类型的表才支持外键.
2)
所有要建立外键的字段必须建立索引.
3)
对于非InnoDB表,FOREIGN KEY子句会被忽略掉。
注意:
创建外键时,定义外键名时,不能加引号.
如: constraint ‘fk_1’ 或 constraint “fk_1”是错误的
查看外键
show create table tablename;//可以查看新建表的代码以及其存储引擎,也可以看到外键设置;
删除外键
alter table drop foreign key [外键名];
建立索引
//PRIMARY KEY(主键索引)
ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )
//UNIQUE(唯一索引)
ALTER TABLE `table_name` ADD UNIQUE (
`column` )
//INDEX(普通索引)
ALTER TABLE `table_name` ADD INDEX index_name ( `column` )
//FULLTEXT(全文索引)
ALTER TABLE `table_name` ADD FULLTEXT ( `column` )
//多列索引
ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )
四、alter database语法
ALTER {DATABASE | SCHEMA} [db_name]
alter_specification [, alter_specification] ...
alter_specification:
[DEFAULT] CHARACTER SET charset_name
| [DEFAULT] COLLATE collation_name
ALTER DATABASE用于更改数据库的全局特性。这些特性储存在数据库目录中的db.opt文件中。要使用ALTER DATABASE,您需要获得数据库ALTER权限。
CHARACTER SET子句用于更改默认的数据库字符集。COLLATE子句用于更改默认的数据库整序。数据库名称可以忽略,此时,语句对应于默认数据库。也可以使用ALTER SCHEMA。