写点什么

MySQL 系列教程之(五)DDL 操作:建库建表

用户头像
若尘
关注
发布于: 2 小时前
MySQL 系列教程之(五)DDL 操作:建库建表

MySQL 数据库

创建数据库

使用 root 登录后,可以使用


create database if not exists user default charset utf8
复制代码


创建数据库,该命令的作用:


  • 如果数据库不存在则创建,存在则不创建。

  • 创建 RUNOOB 数据库,并设定编码集为 utf8

删除数据库

删库有风险,动手需谨慎

drop database 库名;

MySQL 数据表

创建 MySQL 数据表需要以下信息:


  • 表名

  • 表字段名

  • 定义每个表字段



## 创建表
通过 mysql> 命令窗口可以很简单的创建MySQL数据表。你可以使用 SQL 语句**CREATE TABLE**来创建数据表。
### 实例
以下为创建数据表 runoob_tbl 实例:
复制代码


create table user(id int unsigned not null AUTO_INCREMENT PRIMARY KEY,username varchar(30) not null,password char(32) not null,email varchar(100) not null,pic varchar(50) default './public/img/pic.jpg')engine=innodb default charset=utf8;



实例解析:
> 如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。>> AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。>> PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。>> ENGINE 设置存储引擎,CHARSET 设置编码。
**查看表结构** `desc stu;`
**查看建表语句** `show create table stu\G`
## 修改表结构
> 格式: alter table 表名 action(更改选项);
**添加字段:**
复制代码


添加字段:alter table 表名 add 字段名信息例如:


-- 在 user 表的最后追加一个 num 字段 设置为 int not null


alter table user add num int not null;


-- 在 user 表的 email 字段后添加一个 age 字段,设置 int not null default 20;


alter table user add age int not null default 20 after email;


-- 在 user 表的最前面添加一个 aa 字段设置为 int 类型


alter table user add aa int first;



**删除字段:**
复制代码


删除字段:alter table 表名 drop 被删除的字段名


例如:-- 删除 user 表的 aa 字段


alter table user drop aa;



**修改字段:**
复制代码


修改字段:alter table 表名 change[modify] 被修改后的字段信息


其中:change 可以修改字段名, modify 不修改


例如:


-- 修改 user 表中 age 字段信息(类型),(使用 modify 关键字的目的不修改字段名)


alter table user modify age tinyint unsigned not null default 20;


-- 修改 user 表的 num 字段改为 mm 字段并添加了默认值(使用 change 可以改字段名)


alter table user change num mm int not null default 10;



**添加和删除索引:**
复制代码


添加和删除索引


-- 为 user 表中的 name 字段添加唯一性索引,索引名为 uni_name;alter table user add unique uni_name(name);


-- 为 user 表中的 email 字段添加普通索引,索引名为 index_eamil


alter table user add index index_email(email);


-- 将 user 表中 index_email 的索引删除


alter table user drop index index_email;



**修改表名:**
复制代码


ALTER TABLE 旧表名 RENAME AS 新表名



**更改AUTO_INCREMENT初始值:**
复制代码


ALTER TABLE 表名称 AUTO_INCREMENT=1



**更改表类型:**
复制代码


ALTER TABLE 表名称 ENGINE="InnoDB"



**关于表类型**
> MySQL数据库中的表类型一般常用两种:MyISAM和InnoDB>> 区别:>> MyISAM类型的数据文件有三个frm\(结构\)、MYD(数据)、MYI(索引)>> MyISAM类型中的表数据增 删 改速度快,不支持事务,没有InnoDB安全。>> InnoDB类型的数据文件只有一个 .frm>> InnoDB类型的表数据增 删 改速度没有MyISAM的快,但支持事务,相对安全。
## 删除表
> MySQL中删除数据表是非常容易操作的, 但是你再进行删除表操作时要非常小心,因为执行删除命令后所有数据都会消失。
复制代码


DROP TABLE table_name ;




复制代码


发布于: 2 小时前阅读数: 2
用户头像

若尘

关注

还未添加个人签名 2021.01.11 加入

还未添加个人简介

评论

发布
暂无评论
MySQL 系列教程之(五)DDL 操作:建库建表