最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SQL語句中的DDL類型的數(shù)據(jù)庫定義語言操作

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

SQL語句之DDL類型的數(shù)據(jù)庫定義語言

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

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

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

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

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

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

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

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

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

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

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

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

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

在創(chuàng)建數(shù)據(jù)庫的命令中增加上IF NOT EXISTS參數(shù)就可以完美解決這個報錯問題,當(dāng)創(chuàng)建的數(shù)據(jù)庫已經(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ù)庫

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)入某個數(shù)據(jù)庫

mysql> use db_1;
Database changed

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

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

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

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

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

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

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

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

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

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

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

請?zhí)砑訄D片描述

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

2.創(chuàng)建表
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 '技術(shù)中心新館疫苗接種信息表';

 

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

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

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

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

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

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 表名的方式可以查詢出數(shù)據(jù)表的建表語句,另外還會附帶一些默認(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 '編號',
  `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='技術(shù)中心新館疫苗接種信息表'

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

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

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

為jszx_xgymjzxxb張表中添加一個新字段jzqy(接種區(qū)域),類型為varchar,長度為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ù)類型和字段名稱

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

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

將jszx_xgymjzxxb表的jtyy字段修改為wjzymjtyy(未接種疫苗具體原因),類型修改為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.修改表的名字

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

mysql> alter table ygxxb rename to ryxxb;

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

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

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

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

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

4.DDL類型的SQL語句匯總

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

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

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

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

show databases;

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

use db_1;

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

select database();

表層面

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

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

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

show tables;

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

desc jszx_xgymjzxxb;

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

show create table jszx_xgymjzxxb;

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

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

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

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

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

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

8)刪除表中的字段

ALTER TABLE 表名 DROP 字段名

9)修改表的名字

ALTER TABLE 表名 RENAME TO 新表名

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

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

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

相關(guān)文章

  • SQL Server視圖的更新排查及清除緩存的操作方法

    SQL Server視圖的更新排查及清除緩存的操作方法

    文章主要介紹了在SQLServer中遇到視圖結(jié)構(gòu)與實際表結(jié)構(gòu)不一致的問題,并提供了三種解決方案:刷新視圖、清空執(zhí)行計劃緩存和清空數(shù)據(jù)緩存,每種方法都有其適用場景和注意事項,需要的朋友可以參考下
    2025-02-02
  • SQL Server的鏈接服務(wù)器技術(shù)小結(jié)

    SQL Server的鏈接服務(wù)器技術(shù)小結(jié)

    這篇文章主要介紹了SQL Server的鏈接服務(wù)器技術(shù)的相關(guān)資料,需要的朋友可以參考下
    2014-07-07
  • bak文件怎么打開 2000w數(shù)據(jù)怎么打開?

    bak文件怎么打開 2000w數(shù)據(jù)怎么打開?

    這篇文章主要介紹了sqlserver數(shù)據(jù)庫bak文件如何恢復(fù)打開的方法,需要的朋友可以參考下
    2014-02-02
  • SQL Server中row_number分頁查詢的用法詳解

    SQL Server中row_number分頁查詢的用法詳解

    這篇文章主要介紹了SQL Server中row_number的用法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • SQL統(tǒng)計連續(xù)登陸3天用戶的實現(xiàn)示例

    SQL統(tǒng)計連續(xù)登陸3天用戶的實現(xiàn)示例

    最近有個需求,求連續(xù)登陸的這一批用戶,本文就來介紹一下SQL統(tǒng)計連續(xù)登陸3天用戶的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2024-05-05
  • sql語句中union的用法與踩坑記錄

    sql語句中union的用法與踩坑記錄

    UNION?操作符用于合并兩個或多個?SELECT?語句的結(jié)果集,下面這篇文章主要給大家介紹了關(guān)于sql語句中union用法與踩坑的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-03-03
  • SQLServer中merge函數(shù)用法詳解

    SQLServer中merge函數(shù)用法詳解

    Merge關(guān)鍵字是一個神奇的DML關(guān)鍵字。它在SQL Server 2008被引入,它能將Insert,Update,Delete簡單的并為一句。通過本篇文章給大家介紹sqlserver中merge函數(shù)用法詳解,感興趣的朋友一起學(xué)習(xí)吧
    2015-11-11
  • 關(guān)于Select Where In 的排序問題

    關(guān)于Select Where In 的排序問題

    有很多人不知道SQL里怎么按 Select Where In 的內(nèi)容進(jìn)行字段排序.假如SQL語句為:
    2008-03-03
  • sql注入過程詳解_動力節(jié)點Java學(xué)院整理

    sql注入過程詳解_動力節(jié)點Java學(xué)院整理

    這篇文章主要為大家詳細(xì)介紹了sql注入過程的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • 真正高效的SQLSERVER分頁查詢(多種方案)

    真正高效的SQLSERVER分頁查詢(多種方案)

    Sqlserver數(shù)據(jù)庫分頁查詢一直是Sqlserver的短板,分頁查詢每頁30條,查詢第1500頁(即第45001-45030條數(shù)據(jù))進(jìn)行測試,分析出最高效的查詢,感興趣的朋友可以參考下哈
    2013-04-04

最新評論

石景山区| 安丘市| 博客| 兰溪市| 菏泽市| 抚松县| 郎溪县| 青岛市| 定边县| 高邑县| 怀柔区| 东乌| 大庆市| 澜沧| 龙川县| 太湖县| 黄大仙区| 青田县| 苗栗县| 金溪县| 深州市| 都匀市| 班戈县| 东至县| 施甸县| 蓝山县| 拜城县| 枣庄市| 筠连县| 黑山县| 安远县| 珠海市| 永仁县| 大港区| 河北省| 镇巴县| 玛多县| 鹿泉市| 岗巴县| 广汉市| 曲周县|