SQL結(jié)構(gòu)化查詢語——之DDL語言

一、SQL結(jié)構(gòu)化查詢語言概述
SQL是關(guān)系型數(shù)據(jù)庫所使用的標(biāo)準(zhǔn)語言,最初是基于IBM的實(shí)現(xiàn)在1986年被批準(zhǔn)的。1987年,“國際標(biāo)準(zhǔn)化組織(ISO)”把ANSI(美國國家標(biāo)準(zhǔn)化組織) SQL作為國際標(biāo)準(zhǔn)。
1. SQL語言規(guī)范

成都創(chuàng)新互聯(lián)長期為超過千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為鶴峰企業(yè)提供專業(yè)的成都做網(wǎng)站、成都網(wǎng)站建設(shè),鶴峰網(wǎng)站改版等技術(shù)服務(wù)。擁有十年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

在數(shù)據(jù)庫系統(tǒng)中,SQL語句關(guān)鍵詞不區(qū)分大小寫(建議用大寫)

  • 數(shù)據(jù)庫的資源對象是區(qū)分大小寫的,如表、數(shù)據(jù)庫這類資源在操作系統(tǒng)中以獨(dú)立文件形來存儲,如果文件系統(tǒng)對文件命名區(qū)分大小寫則SQL語言內(nèi)引用資源對象
  • 資源內(nèi)的元素不區(qū)分大小寫,如:表的字段名稱不區(qū)分大小寫,因?yàn)樵诓僮飨到y(tǒng)中不是獨(dú)立的文件。

SQL語句可單行或多行書寫,以“;”結(jié)尾。
關(guān)鍵詞不能跨多行或簡寫。
用空格和縮進(jìn)來提高語句的可讀性(但并不強(qiáng)制)。
子句通常位于獨(dú)立行,便于編輯,提高可讀性()。

2. 注釋:

注釋類型注釋符號說明標(biāo)準(zhǔn)
單行注釋 -- --與注釋內(nèi)容之間有空格 SQL標(biāo)準(zhǔn)
多行注釋 /* 多行內(nèi)容被/*包裹 SQL標(biāo)準(zhǔn)
單行注釋 # 多行內(nèi)容被#包裹 MySQL標(biāo)準(zhǔn)

3.SQL語言分類

  • >DDL: Data Defination Language 數(shù)據(jù)定義語言
    CREATE,DROP,ALTER
  • >DML: Data Manipulation Language 數(shù)據(jù)操縱語言
    INSERT,DELETE,UPDATE
  • >DQL:Data Query Language 數(shù)據(jù)查詢語言
    SELECT
  • >DCL:Data Control Language 數(shù)據(jù)控制語言
    GRANT,REVOKE,COMMIT,ROLLBACK

4.SQL語言幫助

  • 登錄SQL SEHLL中help加關(guān)鍵字即可查看幫助。

    例:mysql> HELP KEYWORD;

  • 登錄SQL SEHLL中輸入help contents;可以查看按類查看幫助。

    例:按類查看幫助
    MariaDB [hellodb]> help contents;
    You asked for help about help category: "Contents"
    For more information, type 'help <item>', where <item> is one of the following
    categories:
    Account Management
    Administration
    Compound Statements
    Data Definition
    Data Manipulation
    Data Types
    Functions
    Functions and Modifiers for Use with GROUP BY
    Geographic Features
    Help Metadata
    Language Structure
    Plugins
    Procedures
    Table Maintenance
    Transactions
    User-Defined Functions
    Utility

5.數(shù)據(jù)庫對象和命名

  • >數(shù)據(jù)庫的組件(對象):
    數(shù)據(jù)庫、表、索引、視圖、用戶、存儲過程、函數(shù)、觸發(fā)器、事件調(diào)度器等這些資源對象基本上在操作系統(tǒng)中有獨(dú)立的文件存儲。
  • >命名規(guī)則:
    必須以字母開頭,可包括數(shù)字和三個(gè)特殊字符(# _ $)
    不要使用MySQL的保留字
    同一database(Schema)下的對象不能同名

一、數(shù)據(jù)庫管理操作:
數(shù)據(jù)庫的管理操作包括:創(chuàng)建、修改、刪除、查看信息等操作

1. 查看字符集

show character set;

2. 查看數(shù)據(jù)庫

SHOW DATABASES;查看都有哪些數(shù)據(jù)庫,即查看數(shù)據(jù)庫列表。
SHOW DATABASES like 'vmlab';查看指定的數(shù)據(jù)庫。
SHOW CREATE DATABASE vmlab;查看創(chuàng)建數(shù)據(jù)庫過程,可以快速查看數(shù)據(jù)庫采用的字符集。

3. 創(chuàng)建數(shù)據(jù)庫

CREATE DATABASE vmlab; 用DBMS默認(rèn)設(shè)置創(chuàng)建數(shù)據(jù)庫
CREATE DATABASE microcisco CHARACTER SET "utf8mb4" COLLATE 'utf8mb4_bin';指定字符集為“utf8mb4”字符集排序規(guī)則為“utf8mb4_bin”

4. 修改數(shù)據(jù)庫

ALTER DATABASE vmlab CHARCATER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';
將vmlab數(shù)據(jù)庫字符集修改為: 'utf8mb4' ,字符集的排序規(guī)則為:'utf8mb4_unicode_ci' 。
注意:
修改數(shù)據(jù)庫字符集只對后繼新存儲的數(shù)據(jù)有效,但對已有數(shù)據(jù)不生效,生產(chǎn)中除非必須否則不建議修改
設(shè)置服務(wù)器默認(rèn)的字符集,可以在配置文件vim /etc/my.cnf的[mysqld]選項(xiàng)部分指定字符集character-set-server=utf8mb4,這樣以后所有創(chuàng)建的數(shù)據(jù)庫都會繼承字DBMS的字符集

5. 刪除數(shù)據(jù)庫:

DROP DATABASE like 'microcisco';

6. 基于SQL腳本創(chuàng)建數(shù)據(jù)庫:

mysql < hellodb_innodb.sql -uroot -ppassword

二、表管理操作

注意:創(chuàng)建表之前一定要先指定在哪個(gè)數(shù)據(jù)庫中創(chuàng)建。

1. 查看表信息:

DESC students; //desc 指定表名即可查看表結(jié)構(gòu)
SHOW TABLES FROM mysql; //查看指定數(shù)據(jù)庫中都有哪些表。
SHOW COLUMNS FROM mysql.user; //查看指定表都有哪些字段,執(zhí)行結(jié)果與desc相同。
SHOW CREATE TABLE vmlab\G; //查看創(chuàng)建vmlab表時(shí)執(zhí)行的命令,即表是如何創(chuàng)建的。可以參考該方法創(chuàng)建腳本文件。
SHOW TABLE STATUS LIKE 'students'\G; //查看表狀態(tài)信息,比較常用可以顯示字符集、創(chuàng)建時(shí)間、更新時(shí)間、表引擎等信息。
SHOW TABLE STATUS FROM mysql\G; //查看指定數(shù)據(jù)庫的所有表狀態(tài)。

2. 創(chuàng)建表

注意事項(xiàng),表內(nèi)字段修飾符NO NULL被指定后則在添加記錄時(shí)該字段必須指定值。一般建議第一列ID為主鍵,且自動增長。
方法一:直接創(chuàng)建 ()內(nèi)指定字段名稱,存儲的數(shù)據(jù)類型,修飾符等信息,不同定段字定義以逗號分隔
CREATE TABLE students (id int UNSIGNED AUTO_INCREMENT PRIMARY KEY,name VARCHAR(10) NOT NULL,age TINYINT UNSIGNED);
方法二:通過查詢現(xiàn)存表創(chuàng)建,新表會被直接插入查詢而來的數(shù)據(jù)(注意:此方法復(fù)制表結(jié)構(gòu),但不會復(fù)制字段的修飾符信息,原表的數(shù)據(jù)會被復(fù)制。)
CREATE TABLE vmlab SELECT * FROM students;從students表提取數(shù)據(jù)創(chuàng)建新表vmlab

方法三:通過復(fù)制現(xiàn)存表的表結(jié)構(gòu),但不復(fù)制數(shù)據(jù)(注意:此方法復(fù)制表結(jié)構(gòu),但不會復(fù)制原表的數(shù)據(jù)。)
CREATE TABLE vmlab LIKE students;參考現(xiàn)存表students創(chuàng)建新表vmlab。

3. 刪除表:

drop table vmlab;

4. 修改表:
修改表基本上都是針對列操作,生產(chǎn)環(huán)境基本上很少需要修改,必須字段意味著需求變更。對表的所有修改操作都需要使用ALTER TABLE 然后指定表名,再指定操作類型:添加操作用ADD、刪除操作用DROP、更改操作用CHANGE,添加修改操作相當(dāng)于重新字義字段,所以必須要指定數(shù)據(jù)類型。

表重命名:ALTER TABLE vmlab RENAME vmlab1;
插入字段:插入字段實(shí)際上就是新定義字段因此必須指定數(shù)據(jù)類型
ALTER TABLE vmlab ADD phone CHAR(11) AFTERage; //在vmlab1表的age列后插入新列名為phone,數(shù)據(jù)類型為char 長度為11個(gè)字符。
ALTER TABLE vmlab ADD ID int UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY FIRST; 在首列添加一列并定義為主鍵。
ALTER TABLE vmlab ADD Gender ENUM('M','F','S'); //不指定位置則在表最后一列添加新的字段,ENUM為列表類型。

修改字段數(shù)據(jù)類型:
ALTER TABLE microcisco MODIFY phone int; //將microcisco表的phone字段數(shù)據(jù)類型修改為int型
字段改名:
ALTER TABLE vmlab CHANGE COLUMN phone mobile char(11); //將vmlab表中的phone字段改名為mobile,并將數(shù)據(jù)類型改為char類型,長度為11個(gè)字符。注意:字段改名必須指定改名后的字段數(shù)據(jù)類型。
刪除字段:
ALTER TABLE vmlab DROP COLUMN phone; //刪除vmlab表的phone字段。
修改表字符集:
ALTER TABLE vmlab CHARACTER SET utf8mb4; //修改vmlab表的字符集為utf8mb4。
修改字段數(shù)據(jù)類型:
ALTER TABLE vmlab CHANGE name name VARCHAR(20);
刪除主鍵:
ALTER TABLE vmlab DROP PRIMARY KEY;
定義主鍵:
ALTER TABLE vmlab CHANGE id id int UNSIGNED NOT NULL PRIMARY KEY; //注意:定義主鍵相當(dāng)于重新定義字段因此必須要指定字段數(shù)據(jù)類型,尤其要與原來數(shù)據(jù)類型一致。

當(dāng)前題目:SQL結(jié)構(gòu)化查詢語——之DDL語言
瀏覽地址:http://bm7419.com/article22/gigijc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)電子商務(wù)、ChatGPT、做網(wǎng)站移動網(wǎng)站建設(shè)、網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)