<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
DDL型別的SQL語句全稱為Data Definition Language,中文名稱為資料定義語言,主要是用來定義資料庫中的物件的,例如資料庫、表和欄位的定義,簡單的理解就是DDL語言是來運算元據庫、表和欄位的。
建立資料庫的命令格式: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)
mysql> show databases; +--------------------+ | Database | +--------------------+ | db_1 | | db_2 | | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 6 rows in set (0.00 sec)
mysql> use db_1; Database changed
()括號是MySQL資料庫中的一種函數,後面講。
mysql> select database(); +------------+ | database() | +------------+ | db_1 | +------------+ 1 row in set (0.01 sec)
建立表的語法格式:
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 '技術中心新館疫苗接種資訊表';
通過show tables
命令可以檢視當前所在的資料庫中,有哪些資料表。
mysql> show tables; +----------------+ | Tables_in_db_1 | +----------------+ | jszx_xgymjzxxb | +----------------+ 1 row in set (0.00 sec)
通過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)
通過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='技術中心新館疫苗接種資訊表'
表結構建立完畢後,隨著新需求的落地,就意味著要對錶中當前欄位以及型別進行修改,下面就來演示對於表的一系列修改操作。
為現有表新增欄位的命令格式: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)
修改表欄位資料型別的命令格式: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 | | +------------------+--------------+------+-----+---------+-------+
刪除表中的欄位命令格式: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)
修改表名稱的命令格式:ALTER TABLE 表名 RENAME TO 新表名
mysql> alter table ygxxb rename to ryxxb;
刪除資料庫中的表有兩種方式,一種是DROP直接刪除表以及表中的資料,另一種是截斷表,不刪除表,只清空表中的資料。
刪除表的命令:DROP TABLE [ IF EXISTS ] 表名
清空表資料的命令:TRUNCATE TABLE 表名
mysql> truncate table ryxxb; mysql> drop table ryxxb;
資料庫層面
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 表名
到此這篇關於SQL語句中的DDL型別的資料庫定義語言的文章就介紹到這了,更多相關SQL DDL資料庫定義語言內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45