MySQL表的操作

MySQL表的操作

1. 表的操作

1.1 创建表

语法:

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

说明:

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

1.2 创建表案例

mysql 复制代码
mysql> create table user1(
    -> id int,
    -> name varchar(20) comment '用户名',
    -> password char(32) comment '用户的密码',
    -> birthday date comment '用户的生日'
    -> )character set utf8 collate utf8_general_ci engine MyIsam;
    
mysql> create table if not exists user2(
    -> id int,
    -> name varchar(20) comment '用户名',
    -> password char(32) comment '用户的密码',
    -> birthday date comment '用户的生日'
    -> )charset=utf8 collate=utf8_general_ci engine=InnoDB;

说明:

不同的存储引擎,创建表的文件不一样。

user1 表存储引擎是MyISAM ,在数据目中有三个不同的文件,分别是:

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

user2 表存储引擎是InnoDB ,在数据目中有两个不同的文件,分别是:

  • user2.frm:表结构
  • user2.ibd:表数据和索引

1.3 查看表结构

mysql 复制代码
desc 表名;
mysql 复制代码
show create table 表名;
# 查看表创建时的详细信息

1.4 修改表

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

  1. 修改表名

    mysql 复制代码
    alter table 旧名字 rename to 新名字
    # 其中to可以省略
  2. 插入数据

    mysql 复制代码
    insert into myuser values (1,'张三','abc123','2002-1-1');
    insert into myuser values (1,'李四','123aaa','2002-12-4');
  3. 在表中添加一个字段,用于保存图片路径

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

    插入新字段后,对原来表中的数据没有影响。

  4. 修改表中字段的属性

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

    注意这里修改新属性只改变了类型,我们之前设置的comment备注被覆盖。

  5. 删除某一字段

    mysql 复制代码
    ALTER TABLE tablename DROP (column);

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

  6. 修改某一字段名称

    mysql 复制代码
    mysql> alter table myuser change name XingMing varchar(70) DEFAULT NULL; 
    # 新字段需要完整定义

1.5 删除表

语法:

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

示例:

mysql 复制代码
drop table user2;
相关推荐
运维行者_5 小时前
企业无线网络监控的挑战与智能化演进趋势
大数据·运维·服务器·网络·数据库
国强_dev5 小时前
技术探讨:使用 stunnel 加密转发数据库连接时,如何获取客户端真实 IP?
数据库·网络协议·tcp/ip
@insist1235 小时前
系统规划与管理师-信息系统规划核心工作要点解析
数据库·软考·系统规划与管理师·软件水平考试·系统规划与管理工程师
超级数据查看器5 小时前
超级数据查看器 v10.0 发布
java·大数据·数据库·sqlite·安卓
数安3000天6 小时前
增量数据如何自动分类分级,避免目录“过期“?
大数据·数据库
南墙上的石头7 小时前
麒麟 V10 重装人大金仓 V8R6 踩坑实录(含 MySQL 兼容模式)
数据库·mysql
画中有画8 小时前
论向量数据库在项目中的应用
数据库
spider_xcxc8 小时前
Redis 数据库高质量实践指南(一)
运维·数据库·redis·oracle·云计算
l1t9 小时前
在linux和windows中解决duckdb 1.6dev版本输出执行计划报错问题
linux·运维·数据库·windows·duckdb
执子手 吹散苍茫茫烟波9 小时前
RC 隔离级别下 MySQL InnoDB 死锁典型案例
数据库·mysql