日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

SQL語句中的DDL類型的數據庫定義語言操作_MsSql

作者:Jiangxl~ ? 更新時間: 2022-10-04 編程語言

SQL語句之DDL類型的數據庫定義語言

1.DDL類型的SQL語句基本概述

DDL類型的SQL語句全稱為Data Definition Language,中文名稱為數據定義語言,主要是用來定義數據庫中的對象的,例如數據庫、表和字段的定義,簡單的理解就是DDL語言是來操作數據庫、表和字段的。

2.DDL類型的SQL語句之數據庫層面的操作

2.1.創建一個數據庫

創建數據庫的命令格式:CREATE DATABASE [IF NOT EXISTS] 數據庫名稱 [DEFAULT CHARSET 字符集] [COLLATE 排序規則];
命令格式中,[]中括號里的參數是可選項,都有默認的值。

  • [IF NOT EXISTS]:創建數據庫時,檢查數據庫是否存在,如果存在則不執行任何動作,如果不存在則創建,常用語一個大型SQL腳本中,增加邏輯判斷,防止報錯。
  • [DEFAULT CHARSET]:指定數據庫的默認字符集,例如UTF8等等
  • [COLLATE]:指定排序規則,用的較少。

1)創建一個數據庫

mysql> create database db_1;
Query OK, 1 row affected (0.07 sec)

2)創建數據庫并指定默認的字符集

在MySQL數據庫中一般不用utf8類型的字符集,因為默認長度為3,有很多數據類型是大于3的,因此采用utf8mb4類型的字符集。

mysql> create database db_2 default charset utf8mb4;
Query OK, 1 row affected (0.04 sec)

3)在創建數據庫時使用邏輯判斷

當我們創建數據庫時,如果數據庫已經存在,那么創建時就會報錯,如下圖所示:

在創建數據庫的命令中增加上IF NOT EXISTS參數就可以完美解決這個報錯問題,當創建的數據庫已經存在,那么就不進行任何操作。

mysql> create database if not exists db_1;
Query OK, 1 row affected, 1 warning (0.01 sec)

2.2.查看MySQL中有哪些數據庫

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| db_1               |
| db_2               |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
6 rows in set (0.00 sec)

2.3.進入某個數據庫

mysql> use db_1;
Database changed

2.4.查看當前處于哪個數據庫中

()括號是MySQL數據庫中的一種函數,后面講。

mysql> select database();
+------------+
| database() |
+------------+
| db_1       |
+------------+
1 row in set (0.01 sec)

3.DDL類型的SQL語句之數據庫表層面的操作

3.1.創建一張數據表

創建表的語法格式:

CREATE TABLE 表名 (
	字段1 字段1的類型 [COMMENT 字段1的注釋],
	字段2 字段2的類型 [COMMENT 字段2的注釋],
	字段3 字段3的類型 [COMMENT 字段3的注釋],
	......
	字段n 字段1的類型 [COMMENT 字段n的注釋]
) [COMMENT 表的注釋];

注意:在創建表時,每個字段之間都以逗號隔開,最后一個字段無需添加逗號。

創建一張數據表:

根據下圖所示的表格,在MySQL中創建一張數據表。

表名:技術中心新冠疫苗接種信息表。

請添加圖片描述

1.進入db_1數據庫中
mysql> use db_1;

2.創建表
create table jszx_xgymjzxxb (
    id int comment '編號',
    bm varchar(10) comment '部門',
    name varchar(10) comment '姓名',
    wd char(1) comment '未打',
    first_injection char(1) comment '第一針',
    second_injection char(1) comment '第二針',
    third_injection char(1) comment '第三針',
    jtyy varchar(50) comment '具體原因'
) comment '技術中心新館疫苗接種信息表';

?

3.2.查看當前數據庫中所有的數據表

通過show tables命令可以查看當前所在的數據庫中,有哪些數據表。

mysql> show tables;
+----------------+
| Tables_in_db_1 |
+----------------+
| jszx_xgymjzxxb |
+----------------+
1 row in set (0.00 sec)

3.3.查詢某張表的表結構

通過desc 表名的方式可以看到指定表的表結構,包括有哪些字段以及字段的類型。

mysql> desc jszx_xgymjzxxb;
+------------------+-------------+------+-----+---------+-------+
| Field            | Type        | Null | Key | Default | Extra |
+------------------+-------------+------+-----+---------+-------+
| id               | int         | YES  |     | NULL    |       |
| bm               | varchar(10) | YES  |     | NULL    |       |
| name             | varchar(10) | YES  |     | NULL    |       |
| wd               | char(1)     | YES  |     | NULL    |       |
| first_injection  | char(1)     | YES  |     | NULL    |       |
| second_injection | char(1)     | YES  |     | NULL    |       |
| third_injection  | char(1)     | YES  |     | NULL    |       |
| jtyy             | varchar(50) | YES  |     | NULL    |       |
+------------------+-------------+------+-----+---------+-------+
8 rows in set (0.01 sec)

3.4.查詢某張表的建表語句

通過show create table 表名的方式可以查詢出數據表的建表語句,另外還會附帶一些默認參數,例如CHARSET和COLLATE等等。

mysql> show create table jszx_xgymjzxxb;
| Table          | Create Table |
| jszx_xgymjzxxb | CREATE TABLE `jszx_xgymjzxxb` (
  `id` int DEFAULT NULL COMMENT '編號',
  `bm` varchar(10) DEFAULT NULL COMMENT '部門',
  `name` varchar(10) DEFAULT NULL COMMENT '姓名',
  `wd` char(1) DEFAULT NULL COMMENT '未打',
  `first_injection` char(1) DEFAULT NULL COMMENT '第一針',
  `second_injection` char(1) DEFAULT NULL COMMENT '第二針',
  `third_injection` char(1) DEFAULT NULL COMMENT '第三針',
  `jtyy` varchar(50) DEFAULT NULL COMMENT '具體原因'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='技術中心新館疫苗接種信息表'

3.5.在現有表中添加新的字段

表結構創建完畢后,隨著新需求的落地,就意味著要對表中當前字段以及類型進行修改,下面就來演示對于表的一系列修改操作。

為現有表添加字段的命令格式:ALTER TABLE 表名 ADD 字段名 類型(長度) [COMMENT 注釋] [約束]

為jszx_xgymjzxxb張表中添加一個新字段jzqy(接種區域),類型為varchar,長度為30。

mysql> alter table jszx_xgymjzxxb add jzqy varchar(30) comment '接種區域';

查看表結構是否增加字段成功。

mysql> desc jszx_xgymjzxxb;
+------------------+-------------+------+-----+---------+-------+
| Field            | Type        | Null | Key | Default | Extra |
+------------------+-------------+------+-----+---------+-------+
| id               | int         | YES  |     | NULL    |       |
| bm               | float(10,0) | YES  |     | NULL    |       |
| name             | varchar(10) | YES  |     | NULL    |       |
| wd               | char(1)     | YES  |     | NULL    |       |
| first_injection  | char(1)     | YES  |     | NULL    |       |
| second_injection | char(1)     | YES  |     | NULL    |       |
| third_injection  | char(1)     | YES  |     | NULL    |       |
| jtyy             | varchar(50) | YES  |     | NULL    |       |
| jzqy             | varchar(30) | YES  |     | NULL    |       |				#成功增加
+------------------+-------------+------+-----+---------+-------+
9 rows in set (0.01 sec)

3.6.修改現有表中的字段數據類型和字段名稱

修改表字段數據類型的命令格式:ALTER TABLE 表名 MODIFY 字段名 新數據類型(長度)

修改表字段名稱以及字段類型的命令格式:ALTER TABLE 表名 CHANGE 舊字段名 新字段名 類型(長度) [COMMENT 注釋] [約束];

將jszx_xgymjzxxb表的jtyy字段修改為wjzymjtyy(未接種疫苗具體原因),類型修改為varchar(100)。

mysql> alter table jszx_xgymjzxxb change jtyy wjzymjtyy varchar(100) comment '未接種疫苗具體原因';

查看表結構中字段是否修改成功。

mysql> desc jszx_xgymjzxxb;
+------------------+--------------+------+-----+---------+-------+
| Field            | Type         | Null | Key | Default | Extra |
+------------------+--------------+------+-----+---------+-------+
| id               | int          | YES  |     | NULL    |       |
| bm               | float(10,0)  | YES  |     | NULL    |       |
| name             | varchar(10)  | YES  |     | NULL    |       |
| wd               | char(1)      | YES  |     | NULL    |       |
| first_injection  | char(1)      | YES  |     | NULL    |       |
| second_injection | char(1)      | YES  |     | NULL    |       |
| third_injection  | char(1)      | YES  |     | NULL    |       |
| wjzymjtyy        | varchar(100) | YES  |     | NULL    |       |				#修改成功
| jzqy             | varchar(30)  | YES  |     | NULL    |       |	
+------------------+--------------+------+-----+---------+-------+

3.7.刪除現有表中已存在的字段

刪除表中的字段命令格式:ALTER TABLE 表名 DROP 字段名

刪除jszx_xgymjzxxb表的jzqy字段

mysql> alter table jszx_xgymjzxxb drop jzqy;

查看表結構中jzqy字段是否被刪除。

mysql> desc jszx_xgymjzxxb;
+------------------+--------------+------+-----+---------+-------+
| Field            | Type         | Null | Key | Default | Extra |
+------------------+--------------+------+-----+---------+-------+
| id               | int          | YES  |     | NULL    |       |
| bm               | float(10,0)  | YES  |     | NULL    |       |
| name             | varchar(10)  | YES  |     | NULL    |       |
| wd               | char(1)      | YES  |     | NULL    |       |
| first_injection  | char(1)      | YES  |     | NULL    |       |
| second_injection | char(1)      | YES  |     | NULL    |       |
| third_injection  | char(1)      | YES  |     | NULL    |       |
| wjzymjtyy        | varchar(100) | YES  |     | NULL    |       |
+------------------+--------------+------+-----+---------+-------+
8 rows in set (0.00 sec)

3.8.修改表的名字

修改表名稱的命令格式:ALTER TABLE 表名 RENAME TO 新表名

mysql> alter table ygxxb rename to ryxxb;

3.9.刪除數據表

刪除數據庫中的表有兩種方式,一種是DROP直接刪除表以及表中的數據,另一種是截斷表,不刪除表,只清空表中的數據。

刪除表的命令:DROP TABLE [ IF EXISTS ] 表名

清空表數據的命令:TRUNCATE TABLE 表名

mysql> truncate table ryxxb;
mysql> drop table ryxxb;

4.DDL類型的SQL語句匯總

數據庫層面

1)創建數據庫的命令

CREATE DATABASE [IF NOT EXISTS] 數據庫名稱 [DEFAULT CHARSET 字符集] [COLLATE 排序規則];

2)查看MySQL中有哪些數據庫

show databases;

3)進入某個數據庫

use db_1;

4)查看當前處于哪個數據庫中

select database();

表層面

1)創建一張數據表

CREATE TABLE 表名 (
	字段1 字段1的類型 [COMMENT 字段1的注釋],
	字段2 字段2的類型 [COMMENT 字段2的注釋],
	字段3 字段3的類型 [COMMENT 字段3的注釋],
	......
	字段n 字段1的類型 [COMMENT 字段n的注釋]
) [COMMENT 表的注釋];

2)查看當前數據庫中所有的數據表

show tables;

3)查詢某張表的表結構

desc jszx_xgymjzxxb;

4)查詢某張表的建表語句

show create table jszx_xgymjzxxb;

5)在現有表中添加新的字段

ALTER TABLE 表名 ADD 字段名 類型(長度) [COMMENT 注釋] [約束]

6)修改表字段數據類型

ALTER TABLE 表名 MODIFY 字段名 新數據類型(長度)

7)修改表字段名稱以及字段類型

ALTER TABLE 表名 CHANGE 舊字段名 新字段名 類型(長度) [COMMENT 注釋] [約束];

8)刪除表中的字段

ALTER TABLE 表名 DROP 字段名

9)修改表的名字

ALTER TABLE 表名 RENAME TO 新表名

10)刪除數據表

DROP TABLE [ IF EXISTS ] 表名TRUNCATE TABLE 表名

原文鏈接:https://blog.csdn.net/weixin_44953658/article/details/126223867

欄目分類
最近更新