3、数据表操作命令

在关系型数据库中,表是组织成行和列的结构化数据集。

  • 行代表记录。
  • 列代表数据的属性。

一、查看数据库中存在的表列

命令:

show tables ;
    或 
show tables from database_name; -- 显示当前数据库中所有表的名称

SHOW CREATE TABLE 表名; -- 查询指定表的建表语句:

例子:

MariaDB [test]> show tables;
+----------------+
| Tables_in_test |
+----------------+
| proc           |
+----------------+
1 row in set (0.00 sec)

查询表结构

DESC 表名;

 

二、创建表

1、创建表需要有:表名,字段名,列字段的数据类型

命令:

create table[IF NOT EXISTS] 库名.表名( 
  字段1 类型[(宽度) 约束条件] [COMMENT 字段1注释],
  字段2 类型[(宽度) 约束条件] [COMMENT 字段2注释],
  字段3 类型[(宽度) 约束条件] [COMMENT 字段3注释]
)[ COMMENT 表注释 ];
  • IF NOT EXISTS :可选。检查表是否存在。
    • 若表已存在,不会执行创建操作,但也不会报错。它会静默地跳过这条语句,并返回一个提示(通常是 OK 或 Query OK, 0 rows affected),脚本会继续执行后续的语句。
    • 若表不存在,执行创建。

注:(1)多个列之间用逗号(,)隔开,最后一个列之后没有逗号

        (2)同一张表中字段名不能重复;

        (3)宽度和约束条件可选,字段名和数据类型必须有

  (4)COMMENT :用于为数据库对象(如表、列、索引等)添加注释说明。

CREATE TABLE orders (
    order_id INT,
    product_id INT,
    customer_id INT,
    
    -- 表级主键(多列)
    PRIMARY KEY (order_id),
    
    -- 表级外键
    FOREIGN KEY (customer_id) REFERENCES customers(id)
        ON DELETE CASCADE
        ON UPDATE RESTRICT,
    
    -- 多列唯一
    UNIQUE (customer_id, product_id),
    
    -- 表级 CHECK
    CHECK (order_id > 0)
);

例子

CREATE TABLE employees (
    employee_id   INTEGER PRIMARY KEY,
    first_name    VARCHAR(50) NOT NULL,
    last_name     VARCHAR(50) NOT NULL,
    email         VARCHAR(100) UNIQUE NOT NULL,
    department_id INTEGER,
    salary        DECIMAL(10, 2) CHECK (salary > 0),
    hire_date     DATE DEFAULT CURRENT_DATE,
    
    -- 表级外键
    FOREIGN KEY (department_id) REFERENCES departments(department_id)
        ON DELETE SET NULL
);

 

2、查看建立的表结构

命令:  

show columns from  表名;

例子

MariaDB [test]> show columns from t1;
+-------+-----------------------+------+-----+---------+----------------+
| Field | Type                  | Null | Key | Default | Extra          |
+-------+-----------------------+------+-----+---------+----------------+
| id    | int(11)               | NO   | PRI | NULL    | auto_increment |
| name  | varchar(16)           | NO   |     | NULL    |                |
| sex   | enum('male','female') | NO   |     | male    |                |
+-------+-----------------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

 

三、删除表

命令: 

-- DROP: 完全删除表结构和数据,不可恢复
-- 使用场景:确定不再需要整个表时
DROP TABLE IF EXISTS temp_employees;

-- TRUNCATE: 清空表数据,但保留表结构,重置自增ID
-- 使用场景:需要快速清空大表数据时
TRUNCATE TABLE audit_log;

-- DELETE: 逐行删除数据,可条件删除,可回滚
-- 使用场景:有条件地删除部分数据
DELETE FROM employees WHERE department_id = 5;

例子:

MariaDB [test]> drop table proc;
Query OK, 0 rows affected (0.00 sec)

 

posted @ 2021-03-10 14:11  chao_xiong  阅读(544)  评论(0)    收藏  举报