【MySQL】表的操作

文章目录

    • [1. 创建表](#1. 创建表)
    • [2. 创建表案例](#2. 创建表案例)
    • [3. 查看表结构](#3. 查看表结构)
    • [4. 修改表](#4. 修改表)
      • [4.1 修改表名为 user](#4.1 修改表名为 user)
      • [4.2 在 user 表中添加两条记录](#4.2 在 user 表中添加两条记录)
      • [4.3 在 user 表中添加一个字段(新增一列)](#4.3 在 user 表中添加一个字段(新增一列))
      • [4.4 修改 name 字段的属性,将其长度改成 60](#4.4 修改 name 字段的属性,将其长度改成 60)
      • [4.5 删除 password 列](#4.5 删除 password 列)
      • [4.6 将 name 列修改为 xingming](#4.6 将 name 列修改为 xingming)
    • [5. 删除表](#5. 删除表)

1. 创建表

语法

sql 复制代码
CREATE TABLE table_name (
 	field1 datatype,
 	field2 datatype,
 	field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;

说明:

  • field 表示列名
  • datatype 表示列的类型
  • character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准
  • collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准

2. 创建表案例

老规矩,在建表之前,我们先创建一个 user_db 的数据库:

sql 复制代码
// 建库
create database user_db;

// 使用库
use user_db;

结果如下:

建表的语法:

sql 复制代码
create  table  users (
 	id int,
 	name varchar(20) comment '用户名',
 	password char(32) comment '密码是32位的md5值',
 	birthday date comment '生日'
) character set utf8 engine MyISAM;

结果如下:

说明:不同的存储引擎,创建表的文件不一样。users 表存储引擎是 MyISAM,在数据目中有三个不同的文件,分别是:

  • users.frm:表结构
  • users.MYD:表数据
  • users.MYI:表索引

我们可以在 /var/lib/mysql/user_db 目录下查看:

此时,我们再建一个 engineinnodb 的数据库,观察存储目录:

此时可以看到存储引擎为 innodb 的表只有 2 个配置文件。

3. 查看表结构

查看表结构之前,先确认自己在哪一个数据库中:

sql 复制代码
select database();

结果如下:

再查看我当前所在的这个数据库里面有几张表:

sql 复制代码
show tables;

结果如下:

接着再查看表的详细信息:

sql 复制代码
desc 表名;

结果如下:

其中,每一列的含义如下:

除此之外,我们还可以查看表创建的时候的详细信息:

sql 复制代码
show create table user1 \G

结果如下:

4. 修改表

在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表。

语法如下:

sql 复制代码
ALTER TABLE  tablename ADD (column datatype [DEFAULT expr][,column datatype]...);

ALTER TABLE  tablename MODIfy (column datatype [DEFAULT expr][,column datatype]...);

ALTER TABLE  tablename DROP (column);

我们来看几个案例:

4.1 修改表名为 user

语法:

sql 复制代码
alter table users rename to employee;

结果如下:

注意: to 可以省掉。

4.2 在 user 表中添加两条记录

语法:

sql 复制代码
insert into user value (1, '张三', '123456', '2000-10-1');
insert into user value (2, '李四', '1234567', '2002-12-25');

结果如下:

4.3 在 user 表中添加一个字段(新增一列)

主要用于保存图片路径,并且把新增的列放到表的最后。

sql 复制代码
alter table user add image_path varchar(128) comment '用户的头像路径' after birthday;

结果如下,并且可以看到插入新字段后,对原来表中的数据没有影响:

4.4 修改 name 字段的属性,将其长度改成 60

sql 复制代码
alter table user modify name varchar(60);

结果如下:

4.5 删除 password 列

sql 复制代码
alter table user drop password;

结果如下:

注意:删除字段一定要小心,删除字段及其对应的列数据都没了。

4.6 将 name 列修改为 xingming

sql 复制代码
alter table user change name xingming varchar(60) comment '用户的名字';

结果如下:

5. 删除表

语法:

sql 复制代码
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...

示例:

sql 复制代码
drop table user;

结果如下:

相关推荐
5***E6854 小时前
【SQL】写SQL查询时,常用到的日期函数
数据库·sql
遇见火星5 小时前
CentOS7 通过源码安装 Redis
数据库·redis·缓存
Mr.朱鹏5 小时前
RocketMQ安装与部署指南
java·数据库·spring·oracle·maven·rocketmq·seata
Coder-coco5 小时前
个人健康管理|基于springboot+vue+个人健康管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·mysql·论文
K哥11255 小时前
【9天Redis系列】基础+全局命令
数据库·redis·缓存
s***46985 小时前
【玩转全栈】----Django模板语法、请求与响应
数据库·python·django
f***R85 小时前
redis分页查询
数据库·redis·缓存
g***72705 小时前
【mysql】导出导入mysql表结构或者数据
数据库·mysql
煎蛋学姐5 小时前
SSM汽车租赁管理系统mfobv(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·汽车·ssm 框架·汽车租赁管理系统
w***37515 小时前
Spring 核心技术解析【纯干货版】- Ⅶ:Spring 切面编程模块 Spring-Instrument 模块精讲
前端·数据库·spring