【数据库】Mysql查看、创建和更改数据库和表

来源:互联网 发布:three.js 720度全景 编辑:程序博客网 时间:2024/04/29 17:35

一、查看

1、图形界面查看

Navicat查看数据库

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。

0 0