当前位置: 首页 > news >正文

Mysql—表操作

目录

    • 1、linux中数据库表名区分大小写,windows不区分
    • 2、创建数据库表
    • 3、外键
    • 4、查看数据表结构
    • 5、修改表
      • 5.1、修改表名
      • 5.2、添加字段
      • 5.3、指定位置添加字段
      • 5.4、修改字段名称
      • 5.5、修改字段类型
      • 5.6、修改字段位置
      • 5.7、删除字段
      • 5.8、修改表存储引擎
      • 5.9、删除外键

1、linux中数据库表名区分大小写,windows不区分

my.cnf可配置不区分

lower_case_table_names=1

2、创建数据库表

CREATE TABLE [IF NOT EXISTS] 表名(
字段1 数据类型 [约束条件] [默认值],
字段2 数据类型 [约束条件] [默认值],
字段3 数据类型 [约束条件] [默认值],
……
[表约束条件]
);


CREATE TABLE IF NOT EXISTS t_goods_category1 (id INT PRIMARY KEY AUTO_INCREMENT,t_shop_id INT DEFAULT 1,t_category VARCHAR(30) NOT NULL,t_remark VARCHAR(100) 
#或 PRIMARY KEY(id)
#联合主键 PRIMARY KEY (id, t_shop_id)
#指定引擎和编码 ENGINE=InnoDB  DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci);

3、外键

[CONSTRAINT 外键名] FOREIGN KEY 字段1 [, 字段2, 字段3, …]
REFERENCES 主表名 主键列1 [, 主键列2, 主键列3, …]

  • ·外键名:定义外键时为数据表指定的外键名称。在同一张数据表中,外键的名称必须唯一。也就是说,在同一张数据表中,不能有相同名称的外键名称。
  • ·FOREIGN KEY:指定外键包含哪些字段,可以是一个字段,也可以是多个字段的组合。
  • ·REFERENCES:指定关联的主表名称。
  • ·主表名:主键所在的表名称。
  • ·主键列:主表中定义的主键字段,可以是一个字段,也可以是多个字段的组合。

例:

mysql> CREATE TABLE t_goods_category (-> id INT PRIMARY KEY,-> t_category VARCHAR(30),-> t_remark VARCHAR(100)-> );mysql> CREATE TABLE t_goods(->  id INT PRIMARY KEY,-> t_category_id INT,-> t_category VARCHAR(30),-> t_name VARCHAR(50),-> t_price DECIMAL(10,2),-> t_stock INT,-> t_upper_time DATETIME,-> CONSTRAINT foreign_category FOREIGN KEY(t_category_id) REFERENCES t_goods_category(id)-> );

4、查看数据表结构

SHOW CREATE TABLE table_name;
SHOW CREATE TABLE table_name \G
DESCRIBE 表名称;
DESC 表名称;

5、修改表

5.1、修改表名

ALTER TABLE 原表名 RENAME [TO] 新表名;
ALTER TABLE t_goods_backup RENAME TO t_goods_tmp;

5.2、添加字段

ALTER TABLE 表名 ADD COLUMN 新字段名 数据类型 [NOT NULL DEFAULT 默认值]
ALTER TABLE t_goods_tmp ADD COLUMN t_create_time DATETIME DEFAULT NULL;

5.3、指定位置添加字段

ALTER TABLE 表名 ADD COLUMN 新字段名 数据类型 [NOT NULL DEFAULT 默认值] FIRST
ALTER TABLE t_goods_tmp ADD COLUMN t_update_time DATETIME DEFAULT NOW() FIRST;ALTER TABLE 表名 ADD COLUMN 新字段名 数据类型 [NOT NULL DEFAULT 默认值] AFTER 原有字段名
ALTER TABLE t_goods_tmp ADD COLUMN t_area VARCHAR(100) NOT NULL DEFAULT '' AFTER t_stock;

5.4、修改字段名称

ALTER TABLE 表名 CHANGE 原有字段名 新字段名 新数据类型
ALTER TABLE t_goods_tmp CHANGE t_update_time t_last_modified DATETIME;

5.5、修改字段类型

ALTER TABLE 表名 MODIFY 字段名 新数据类型 [DEFAULT 默认值]
ALTER TABLE t_goods_tmp MODIFY t_price BIGINT DEFAULT 0;

5.6、修改字段位置

ALTER TABLE 表名 MIDIFY 字段名 数据类型 FIRST
ALTER TABLE t_goods_tmp MODIFY id int(11) NOT NULL FIRST;ALTER TABLE 表名 MODIFY 字段1名称 字段1的数据类型 AFTER 字段2名称
ALTER TABLE t_goods_tmp MODIFY t_last_modified datetime DEFAULT NULL AFTER t_create_time;

5.7、删除字段

ALTER TABLE 表名 DROP 字段名
ALTER TABLE t_goods_tmp DROP t_area;

5.8、修改表存储引擎

ALTER TABLE 表名 ENGINE=存储引擎名称
ALTER TABLE t_goods_tmp ENGINE=MyISAM;

5.9、删除外键

ALTER TABLE 表名 DROP FOREIGN KEY 外键名
ALTER TABLE t_goods DROP FOREIGN KEY foreign_category;
http://www.lryc.cn/news/169662.html

相关文章:

  • SpringCloud——微服务
  • 深入理解Java单例模式和优化多线程任务处理
  • 已解决 Kotlin Error: Type mismatch: inferred type is String but Int was expected
  • Web应用系统的小安全漏洞及相应的攻击方式
  • git工具下载和安装
  • 腾讯mini项目-【指标监控服务重构】2023-08-04
  • 怎么推广自己抖店的商品?最适合0经验新手操作的办法,来看看
  • 线性代数的本质(三)——线性方程组
  • 轻量级性能测试工具 wrk 如何使用?
  • WebGL 视图矩阵、模型视图矩阵
  • Python 3 – 文件 readline() 方法
  • 如何在微软Edge浏览器上一键观看高清视频?
  • Telegram BoT的主流项目盘点
  • PTA 甲级 1044 Shopping in Mars
  • Linux学习之MyCat实现分库分表
  • DirectX12(d3d12)初始化
  • 算法通关村-----回溯模板如何解决排列组合问题
  • 【1++的C++进阶】之智能指针
  • 一百七十九、Linux——Linux报错No package epel-release available
  • 【AI视野·今日CV 计算机视觉论文速览 第248期】Mon, 18 Sep 2023
  • 解决Vue项目中的“Cannot find module ‘vue-template-compiler‘”错误
  • tensorflow基础
  • spring_注解笔记
  • c++运算符重载
  • vue子组件向父组件传参的方式
  • 代码随想录Day41| 343. 整数拆分 |
  • 工厂模式-(简单工厂模式)
  • V8引擎是如何提升对象属性访问速度的?
  • 彩色相机工作原理——bayer格式理解
  • IDEA中DEBUG技巧