Mysql从入门到入魔——2. 操纵数据库和表

x33g5p2x  于2021-12-19 转载在 其他  
字(2.4k)|赞(0)|评价(0)|浏览(359)

本篇主要内容
本篇开始正式进入 Mysql 的学习阶段,主要内容包括数据库与表的一些操作。内容相对简单,话不多说,进入正题!

1. 数据库操作

1.1显示数据库

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| order_system       |
+--------------------+

1.2 创建数据库

CREATE DATABASE 数据库名 CHARSET='编码格式'

mysql> CREATE DATABASE create_test CHARSET = 'utf8';
mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| create_test        |
| order_system       |
+--------------------+

1.3 使用数据库

mysql> USE create_test;

1.4 查看当前数据库

使用 SELECT DATABASE() 查看当前使用的数据库。

mysql> SELECT DATABASE();
+-------------+
| DATABASE()  |
+-------------+
| create_test |
+-------------+

1.5 删除数据库

mysql> DROP DATABASE create_test;
mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| order_system       |
+--------------------+

2. 表操作

2.1 创建表

格式:

CREATE TABLE  [IF NOT EXISTS] `表名` (
	`字段名` 列类型 [属性] [索引] [注释],
	`字段名` 列类型 [属性] [索引] [注释],
	.......
	`字段名` 列类型 [属性] [索引] [注释]
) [表类型] [字符集设置] [注释]

使用下面的语句创建示例中的 Products 表。

mysql> CREATE TABLE Products
    -> (
    ->     prod_id CHAR(10) NOT NULL,
    ->     vend_id CHAR(10) NOT NULL,
    ->     prod_name CHAR(255) NOT NULL,
    ->     prod_price DECIMAL(8,2) NOT NULL,
    ->     prod_desc VARCHAR(1000) NULL
    -> );

注意:创建表时,指定的表名必须不存在,否则会出错。

2.2 更新表

2.2.1 添加列

在刚才创建的 Products 表中添加一列 prod_count

mysql> ALTER TABLE Products
    -> ADD prod_count INT(10);

2.2.2 删除列

删除 prod_count 列。

mysql> ALTER TABLE Products
    -> DROP COLUMN prod_count;

2.3 查看表结构

mysql> DESC Products;
+------------+---------------+------+-----+---------+-------+
| Field      | Type          | Null | Key | Default | Extra |
+------------+---------------+------+-----+---------+-------+
| prod_id    | char(10)      | NO   |     | NULL    |       |
| vend_id    | char(10)      | NO   |     | NULL    |       |
| prod_name  | char(255)     | NO   |     | NULL    |       |
| prod_price | decimal(8,2)  | NO   |     | NULL    |       |
| prod_desc  | varchar(1000) | YES  |     | NULL    |       |
| prod_count | int(10)       | YES  |     | NULL    |       |
+------------+---------------+------+-----+---------+-------+

2.4 查看表详细信息

\G 后面不能加“ ; ”

mysql> SHOW TABLE STATUS LIKE 'Products' \G
*************************** 1. row ***************************
           Name: products
         Engine: InnoDB
        Version: 10
     Row_format: Dynamic
           Rows: 0
 Avg_row_length: 0
    Data_length: 16384
Max_data_length: 0
   Index_length: 0
      Data_free: 0
 Auto_increment: NULL
    Create_time: 2021-05-27 20:26:08
    Update_time: NULL
     Check_time: NULL
      Collation: utf8_general_ci
       Checksum: NULL
 Create_options:
        Comment:

2.5 重命名表

两种方法:

  • ALTER TABLE 表名 RENAME [TO | AS] 新表名;
  • RENAME TABLE 表名 TO 新表名;

用方法一将 Products 表更名为 new_Products ,再用方法二改回来。

-- 方法一
mysql> ALTER TABLE Products RENAME TO new_Products;
-- 方法二
mysql> RENAME TABLE new_Products TO Products;

2.6 删除表

DROP TABLE 表名

mysql> DROP TABLE Products;

注意:在该表与其他表有关联时,Mysql 会阻止该表的删除。

相关文章