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;

你可能感兴趣的:(Mysql,mysql,数据库)