欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SQL語(yǔ)句中的DDL類(lèi)型的數(shù)據(jù)庫(kù)定義語(yǔ)言操作

 更新時(shí)間:2022年08月09日 10:18:36   作者:Jiangxl~  
這篇文章主要介紹了SQL語(yǔ)句中的DDL類(lèi)型的數(shù)據(jù)庫(kù)定義語(yǔ)言,主要是用來(lái)定義數(shù)據(jù)庫(kù)中的對(duì)象的,例如數(shù)據(jù)庫(kù)、表和字段的定義,簡(jiǎn)單的理解就是DDL語(yǔ)言是來(lái)操作數(shù)據(jù)庫(kù)、表和字段的,需要的朋友可以參考下

SQL語(yǔ)句之DDL類(lèi)型的數(shù)據(jù)庫(kù)定義語(yǔ)言

1.DDL類(lèi)型的SQL語(yǔ)句基本概述

DDL類(lèi)型的SQL語(yǔ)句全稱(chēng)為Data Definition Language,中文名稱(chēng)為數(shù)據(jù)定義語(yǔ)言,主要是用來(lái)定義數(shù)據(jù)庫(kù)中的對(duì)象的,例如數(shù)據(jù)庫(kù)、表和字段的定義,簡(jiǎn)單的理解就是DDL語(yǔ)言是來(lái)操作數(shù)據(jù)庫(kù)、表和字段的。

2.DDL類(lèi)型的SQL語(yǔ)句之?dāng)?shù)據(jù)庫(kù)層面的操作

2.1.創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)

創(chuàng)建數(shù)據(jù)庫(kù)的命令格式:CREATE DATABASE [IF NOT EXISTS] 數(shù)據(jù)庫(kù)名稱(chēng) [DEFAULT CHARSET 字符集] [COLLATE 排序規(guī)則];
命令格式中,[]中括號(hào)里的參數(shù)是可選項(xiàng),都有默認(rèn)的值。

  • [IF NOT EXISTS]:創(chuàng)建數(shù)據(jù)庫(kù)時(shí),檢查數(shù)據(jù)庫(kù)是否存在,如果存在則不執(zhí)行任何動(dòng)作,如果不存在則創(chuàng)建,常用語(yǔ)一個(gè)大型SQL腳本中,增加邏輯判斷,防止報(bào)錯(cuò)。
  • [DEFAULT CHARSET]:指定數(shù)據(jù)庫(kù)的默認(rèn)字符集,例如UTF8等等
  • [COLLATE]:指定排序規(guī)則,用的較少。

1)創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)

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

2)創(chuàng)建數(shù)據(jù)庫(kù)并指定默認(rèn)的字符集

在MySQL數(shù)據(jù)庫(kù)中一般不用utf8類(lèi)型的字符集,因?yàn)槟J(rèn)長(zhǎng)度為3,有很多數(shù)據(jù)類(lèi)型是大于3的,因此采用utf8mb4類(lèi)型的字符集。

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

3)在創(chuàng)建數(shù)據(jù)庫(kù)時(shí)使用邏輯判斷

當(dāng)我們創(chuàng)建數(shù)據(jù)庫(kù)時(shí),如果數(shù)據(jù)庫(kù)已經(jīng)存在,那么創(chuàng)建時(shí)就會(huì)報(bào)錯(cuò),如下圖所示:

在創(chuàng)建數(shù)據(jù)庫(kù)的命令中增加上IF NOT EXISTS參數(shù)就可以完美解決這個(gè)報(bào)錯(cuò)問(wèn)題,當(dāng)創(chuàng)建的數(shù)據(jù)庫(kù)已經(jīng)存在,那么就不進(jìn)行任何操作。

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

2.2.查看MySQL中有哪些數(shù)據(jù)庫(kù)

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

2.3.進(jìn)入某個(gè)數(shù)據(jù)庫(kù)

mysql> use db_1;
Database changed

2.4.查看當(dāng)前處于哪個(gè)數(shù)據(jù)庫(kù)中

()括號(hào)是MySQL數(shù)據(jù)庫(kù)中的一種函數(shù),后面講。

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

3.DDL類(lèi)型的SQL語(yǔ)句之?dāng)?shù)據(jù)庫(kù)表層面的操作

3.1.創(chuàng)建一張數(shù)據(jù)表

創(chuàng)建表的語(yǔ)法格式:

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

注意:在創(chuàng)建表時(shí),每個(gè)字段之間都以逗號(hào)隔開(kāi),最后一個(gè)字段無(wú)需添加逗號(hào)。

創(chuàng)建一張數(shù)據(jù)表:

根據(jù)下圖所示的表格,在MySQL中創(chuàng)建一張數(shù)據(jù)表。

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

請(qǐng)?zhí)砑訄D片描述

1.進(jìn)入db_1數(shù)據(jù)庫(kù)中
mysql> use db_1;

2.創(chuàng)建表
create table jszx_xgymjzxxb (
    id int comment '編號(hào)',
    bm varchar(10) comment '部門(mén)',
    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 '技術(shù)中心新館疫苗接種信息表';

 

3.2.查看當(dāng)前數(shù)據(jù)庫(kù)中所有的數(shù)據(jù)表

通過(guò)show tables命令可以查看當(dāng)前所在的數(shù)據(jù)庫(kù)中,有哪些數(shù)據(jù)表。

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

3.3.查詢(xún)某張表的表結(jié)構(gòu)

通過(guò)desc 表名的方式可以看到指定表的表結(jié)構(gòu),包括有哪些字段以及字段的類(lèi)型。

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.查詢(xún)某張表的建表語(yǔ)句

通過(guò)show create table 表名的方式可以查詢(xún)出數(shù)據(jù)表的建表語(yǔ)句,另外還會(huì)附帶一些默認(rèn)參數(shù),例如CHARSET和COLLATE等等。

mysql> show create table jszx_xgymjzxxb;
| Table          | Create Table |
| jszx_xgymjzxxb | CREATE TABLE `jszx_xgymjzxxb` (
  `id` int DEFAULT NULL COMMENT '編號(hào)',
  `bm` varchar(10) DEFAULT NULL COMMENT '部門(mén)',
  `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='技術(shù)中心新館疫苗接種信息表'

3.5.在現(xiàn)有表中添加新的字段

表結(jié)構(gòu)創(chuàng)建完畢后,隨著新需求的落地,就意味著要對(duì)表中當(dāng)前字段以及類(lèi)型進(jìn)行修改,下面就來(lái)演示對(duì)于表的一系列修改操作。

為現(xiàn)有表添加字段的命令格式:ALTER TABLE 表名 ADD 字段名 類(lèi)型(長(zhǎng)度) [COMMENT 注釋] [約束]

為jszx_xgymjzxxb張表中添加一個(gè)新字段jzqy(接種區(qū)域),類(lèi)型為varchar,長(zhǎng)度為30。

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

查看表結(jié)構(gòu)是否增加字段成功。

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.修改現(xiàn)有表中的字段數(shù)據(jù)類(lèi)型和字段名稱(chēng)

修改表字段數(shù)據(jù)類(lèi)型的命令格式:ALTER TABLE 表名 MODIFY 字段名 新數(shù)據(jù)類(lèi)型(長(zhǎng)度)

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

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

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

查看表結(jié)構(gòu)中字段是否修改成功。

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.刪除現(xiàn)有表中已存在的字段

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

刪除jszx_xgymjzxxb表的jzqy字段

mysql> alter table jszx_xgymjzxxb drop jzqy;

查看表結(jié)構(gòu)中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.修改表的名字

修改表名稱(chēng)的命令格式:ALTER TABLE 表名 RENAME TO 新表名

mysql> alter table ygxxb rename to ryxxb;

3.9.刪除數(shù)據(jù)表

刪除數(shù)據(jù)庫(kù)中的表有兩種方式,一種是DROP直接刪除表以及表中的數(shù)據(jù),另一種是截?cái)啾恚粍h除表,只清空表中的數(shù)據(jù)。

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

清空表數(shù)據(jù)的命令:TRUNCATE TABLE 表名

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

4.DDL類(lèi)型的SQL語(yǔ)句匯總

數(shù)據(jù)庫(kù)層面

1)創(chuàng)建數(shù)據(jù)庫(kù)的命令

CREATE DATABASE [IF NOT EXISTS] 數(shù)據(jù)庫(kù)名稱(chēng) [DEFAULT CHARSET 字符集] [COLLATE 排序規(guī)則];

2)查看MySQL中有哪些數(shù)據(jù)庫(kù)

show databases;

3)進(jìn)入某個(gè)數(shù)據(jù)庫(kù)

use db_1;

4)查看當(dāng)前處于哪個(gè)數(shù)據(jù)庫(kù)中

select database();

表層面

1)創(chuàng)建一張數(shù)據(jù)表

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

2)查看當(dāng)前數(shù)據(jù)庫(kù)中所有的數(shù)據(jù)表

show tables;

3)查詢(xún)某張表的表結(jié)構(gòu)

desc jszx_xgymjzxxb;

4)查詢(xún)某張表的建表語(yǔ)句

show create table jszx_xgymjzxxb;

5)在現(xiàn)有表中添加新的字段

ALTER TABLE 表名 ADD 字段名 類(lèi)型(長(zhǎng)度) [COMMENT 注釋] [約束]

6)修改表字段數(shù)據(jù)類(lèi)型

ALTER TABLE 表名 MODIFY 字段名 新數(shù)據(jù)類(lèi)型(長(zhǎng)度)

7)修改表字段名稱(chēng)以及字段類(lèi)型

ALTER TABLE 表名 CHANGE 舊字段名 新字段名 類(lèi)型(長(zhǎng)度) [COMMENT 注釋] [約束];

8)刪除表中的字段

ALTER TABLE 表名 DROP 字段名

9)修改表的名字

ALTER TABLE 表名 RENAME TO 新表名

10)刪除數(shù)據(jù)表

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

到此這篇關(guān)于SQL語(yǔ)句中的DDL類(lèi)型的數(shù)據(jù)庫(kù)定義語(yǔ)言的文章就介紹到這了,更多相關(guān)SQL DDL數(shù)據(jù)庫(kù)定義語(yǔ)言?xún)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論