欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MySQL数据库与数据表操作

程序员文章站 2024-03-21 10:52:34
...

#MySQL数据库与数据表操作

  • 数据库的操作
    • 数据库创建
    • 数据库删除
  • 数据表的操作
    • 数据表的创建
    • 数据表的修改 (表结构)
    • 数据表的删除
  • MySQL数据库的表引擎
  • 了解一下MySQL的字符集

MySQL数据库操作:

1.数据库的创建

# 链接mysql数据库后,进入mysql后可以操作数据

# 创建库
create database if not exists user default charset=utf8;
-- 1. 数据库 user 如果不存在则创建数据库,存在则不创建;
-- 2. 创建 user 数据库,并设置字符集为utf8
-- 3. 无特殊情况都要求字符集为utf8或者utf8mb4的字符编码

2.查看所有库

show databases;

3.打开库/进入库/选择库

use 库名;

4.删除库

drop database 库名;

删除库,那么库中的所有数据都将在磁盘中删除且无法恢复。

数据表操作:

1.创建表

语法格式:

create table 表名(字段名 类型 [字段约束],);

示例:

-- 以下创建一个 users 的表
create table users(
  -- 创建ID字段,为正整数,不允许为空 主键,自动递增
	id int unsigned not null primary key auto_increment,
  -- 创建 存储 名字的字段,为字符串类型,最大长度 5个字符,不允许为空
  username varchar(5) not null,
  -- 创建存储 密码 的字段,固定长度 32位字符, 不允许为空
  password char(32) not null,
  -- 创建 年龄 字段,不允许为空,默认值为 20
  age tinyint not null default 20
)engine=innodb default charset=utf8;
-- 创建表时,最后的default charset=utf8可以不写,因为创建库的时候已经写过了

-- 查看表结构
desc users;

-- 查看建表语句
show create table users;

创建表的基本原则:

  • 表明和字段名尽可能的符合命名规范,并且最好能够见名知意;
  • 表中数据必须有唯一标示,即主键定义。无特殊情况,主键都为数字并自增即可;
  • 表中字段所对应的类型设置合理,并限制合理长度;
  • 表引擎推荐使用innodb,并无特殊情况都要求为utf8或者utf8mb4的字符编码。

2.修改表结构:字段相关操作

【注意这里的修改表结构,是在操作表中的列,也就是字段;第二节里的数据操作,是在操作表中的行,也就是每一行信息】

【所以这里对字段的每个操作命令里,在表名前面都需要加一个’table’关键字,而数据操作里只需要在操作关键字后面跟表名。】

语法格式:

alter table 表名 action (更改的选项);

2.1 添加字段

alter table 表名 add 要添加的字段信息;

【追加分三种情况:在最前追加,在中间追加,在最后追加;如果命令中追加字段后面什么都没有,则默认在最后追加。】

【注意!追加里需要写字段信息!

-- 在user表中追加一个id字段,为主键,且自增
alter table user add id int unsigned not null primary key auto_increment;

-- 在指定字段后面追加字段:在user表中age字段后面 添加一个 email 字段
alter table user add email varchar(12) after age;

-- 在表的最前面添加一个字段
alter table user add abc char(10) first;

2.2 删除字段

alter table 表名 drop 要删除的字段名;

-- 在user表中删除字段abc
alter table user drop abc;

###2.3 修改字段

alter table 表名 change/modify 要修改的字段信息;

【注意这里也是字段信息!只有删除操作是drop关键字后面直接跟字段名就ok。】

change: 可以修改字段名,
modify: 不能修改字段名,只能修改字段的信息。

# 修改表中的 email 字段的类型,使用 modify 不修改表名
alter table user modify email char(10);

# 修改表中的 email 字段 为 int并且字段名为 pen
alter table user change email pen int default 10;

【注意:一般情况下,无特殊要求,不要轻易修改表结构】

3.修改表名

语法:

alter table 表名 rename as 新表名;

4.更改表中的自增值

# 在常规情况下,auto_increment 默认从1开始继续递增
alter table users auto_increment = 1000;
-- 再添加的数据的自增值就会从1000开始

5.修改表引擎

# 推荐在定义表时,表引擎为 innodb。
# 1.通过查看建表语句获取当前的表引擎
show create table users\G;
-- 最后这个 \G 可写可不写。

# 2.直接查看当前表状态信息
show table status from test where name = 'users'\G;
*************************** 1. row ***************************
           Name: users
         Engine: InnoDB
-- 这里的test是当前的库名,users是表名;同样,\G可写可不写。

# 修改表引擎语句
alter table users engine = 'myisam';

6.删除表

drop table 表名;
相关标签: MySQL mysql

上一篇: 创建数据表

下一篇: 创建数据表