已解决
Mysql—表操作
来自网友在路上 140840提问 提问时间:2023-09-20 21:11:33阅读次数: 40
最佳答案 问答题库408位专家为你答疑解惑
目录
- 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;
查看全文
99%的人还看了
相似问题
- django ModelSerializer自定义显示字段
- 替换sql,某个字段特定容
- Java之反射获取和赋值字段
- java mybatisplus generator 修改字段类型
- 使用用户代理字段进行浏览器检测(判断页面运行环境)
- js数组操作——对象数组根据某个相同的字段分组
- spring boot加mybatis puls实现,在新增/修改时,对某些字段进行处理,使用的@TableField()
- 【IDEA 使用easyAPI、easyYapi、Apifox helper等插件时,导出接口文档缺少代码字段注释的相关内容、校验规则的解决方法】
- mysql取出组内按照某时间最新一条数据的其他字段
- 基于geotools24.0的创建自动增长主键id字段的方法
猜你感兴趣
版权申明
本文"Mysql—表操作":http://eshow365.cn/6-10224-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: 数据结构:平衡二叉树
- 下一篇: 最优性减枝