MySQL 数据库
创建数据库
使用root登录后,可以使用
create database if not exists user default charset utf8
创建数据库,该命令的作用:
- 如果数据库不存在则创建,存在则不创建。
- 创建RUNOOB数据库,并设定编码集为utf8
删除数据库
删库有风险,动手需谨慎
drop database 库名;
MySQL 数据表
创建MySQL数据表需要以下信息:
-
表名
-
表字段名
-
定义每个表字段
-
create table 表名( 字段名 类型 [字段约束], 字段名 类型 [字段约束], 字段名 类型 [字段约束] ... );
创建表
通过 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 ;
【绽放吧!数据库】有奖征文火热进行中:https://bbs.huaweicloud.com/blogs/285617