亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MySQL > 正文

詳解SQL四種語言:DDL DML DCL TCL

2024-07-24 13:10:08
字體:
來源:轉載
供稿:網友

看到很多人討論SQL還分為四種類型,在這里知識普及一下,并總結下他們的區別吧。

1. DDL – Data Definition Language

數據庫定義語言:定義數據庫的結構。

其主要命令有CREATE,ALTER,DROP等,下面用例子詳解。該語言不需要commit,因此慎重。

CREATE – to create objects in the database   在數據庫創建對象

例:

CREATE DATABASE test; // 創建一個名為test的數據庫

ALTER – alters the structure of the database   修改數據庫結構

例:

ALTER TABLE test ADD birthday date; // 修改test表,新增date類型的birthday列

DROP – delete objects from the database   從數據庫中刪除對象

例:

DROP DATABASE test;// 刪除test數據庫

還有其他的:

TRUNCATE – 截斷表內容(開發期,還是挺常用的)

COMMENT – 為數據字典添加備注

2. DML – Data Manipulation Language

數據庫操作語言:SQL中處理數據庫中的數據

其主要命令有INSERT,UPDATE,DELETE等,這些例子大家常用就不一一介紹了。該語言需要commit。還有常用的 LOCK TABLE。

還有其他不熟悉的:

CALL – 調用一個PL/SQL或Java子程序

EXPLAIN PLAN – 解析分析數據訪問路徑

3. DCL – Data Control Language

數據庫控制語言:授權,角色控制等

GRANT – 為用戶賦予訪問權限

REVOKE – 撤回授權權限

4. TCL – Transaction Control Language

事務控制語言

COMMIT – 保存已完成的工作

SAVEPOINT – 在事務中設置保存點,可以回滾到此處

ROLLBACK – 回滾

SET TRANSACTION – 改變事務選項

例子:Java中JDBC封裝了對事務的支持。比如我們首先新建一個表:test

test.sql

SET NAMES utf8;SET FOREIGN_KEY_CHECKS = 0; -- ------------------------------ Table structure for `city`-- ----------------------------DROP TABLE IF EXISTS `city`;CREATE TABLE `city` ( `id` int(11) NOT NULL DEFAULT '0' COMMENT '城市ID', `name` varchar(20) DEFAULT NULL COMMENT '名稱', `state` varchar(20) DEFAULT NULL COMMENT '狀態', `country` varchar(20) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=latin1; SET FOREIGN_KEY_CHECKS = 1;

JDBC事務回滾第一個例子 -JDBC數據庫事務回滾:

/** * 描述:JDBC數據庫事務回滾 * * Created by bysocket on 16/6/6. */public class TransactionRollBack extends BaseJDBC {   public static void main(String[] args) throws SQLException {    Connection conn = null;    try {      // 加載數據庫驅動      Class.forName(DRIVER);      // 數據庫連接      conn = DriverManager.getConnection(URL,USER,PWD);       // 關閉自動提交的事務機制      conn.setAutoCommit(false);      // 設置事務隔離級別 SERIALIZABLE      conn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);       Statement stmt = conn.createStatement();      int rows = stmt.executeUpdate("INSERT INTO city VALUES (3,'china',1,'cc')");      rows = stmt.executeUpdate("UPDATE city set country = 'TAIWAN' WHERE id = 4");       // 提交事務      conn.commit();    } catch (Exception e) {      e.printStackTrace();      // 回滾事務      if (conn != null) {        conn.rollback();      }    } finally {      /** 關閉數據庫連接 */      if (conn != null) {        try {          conn.close();        } catch (SQLException e) {          e.printStackTrace();        }      }    }  }}

第 19 行:設置了事務隔離級別為 SERIALIZABLE 底層調用的是TCL語言的SET TRANSACTION

第 22 行:執行通過,插入數據

第 23 行:執行不通過,沒有主鍵為4的記錄,直接拋出異常

第 31 行:事務回滾,封裝的就是 TCL 語句的ROLLBACK

JDBC事務回滾第二個例子-JDBC數據庫事務回滾,回滾到特定的保存點:

/** * 描述:JDBC數據庫事務回滾,回滾到特定的保存點 * * Created by bysocket on 16/6/6. */public class TransactionRollBack2 extends BaseJDBC {  public static void main(String[] args) throws SQLException {    Connection conn = null;    Savepoint svpt = null;    try {      // 加載數據庫驅動      Class.forName(DRIVER);      // 數據庫連接      conn = DriverManager.getConnection(URL,USER,PWD);       // 關閉自動提交的事務機制      conn.setAutoCommit(false);      // 設置事務隔離級別 SERIALIZABLE      conn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);       Statement stmt = conn.createStatement();      int rows = stmt.executeUpdate("INSERT INTO city VALUES (3,'china',1,'cc')");      // 設置事務保存點      svpt = conn.setSavepoint();      rows = stmt.executeUpdate("UPDATE city set country = 'TAIWAN' WHERE id = 4");       // 提交事務      conn.commit();    } catch (Exception e) {      e.printStackTrace();      // 回滾事務      if (conn != null) {        conn.rollback(svpt);      }    } finally {      /** 關閉數據庫連接 */      if (conn != null) {        try {          conn.close();        } catch (SQLException e) {          e.printStackTrace();        }      }    }  }}

和第一個例子重復的就不提了。

第 9 行:聲明了一個保存點

第 24 行:設置了保存點

第 33 行:回滾事務到該保存點

上面的代碼涉及到的是 TCL語言中的 SAVEPOINT

最后來張圖總結:(SELECT屬于DQL哈。)

數據庫ddl,dml,dcl,sql,ddl,dql,mysql

希望本文對大家學習sql有所幫助。


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久成人一区二区| 成人免费大片黄在线播放| 日韩精品亚洲元码| 日韩中文字幕免费看| 九九视频直播综合网| 久久成人这里只有精品| 国产成人亚洲综合青青| 日韩精品久久久久久福利| 一本一本久久a久久精品综合小说| 国产丝袜一区二区| 日韩久久精品成人| 国产精品久久久久久五月尺| 黑人巨大精品欧美一区二区免费| 久久青草精品视频免费观看| 国产日韩中文字幕在线| 国产免费观看久久黄| 97精品久久久| 国产精品羞羞答答| 久久免费视频网| 欧美精品亚州精品| 国产精品久久久久一区二区| 91九色视频导航| 91精品国产高清久久久久久| 国产欧美一区二区白浆黑人| 欧美猛男性生活免费| 亚洲国产精品嫩草影院久久| 国产日韩欧美在线观看| 亚洲美女在线观看| 日韩在线中文字幕| 成人免费在线视频网站| 欧美亚洲国产日本| 中文字幕在线观看亚洲| 这里只有精品久久| 精品亚洲国产成av人片传媒| 亚洲一区二区日本| 草民午夜欧美限制a级福利片| 亚洲精品成人久久| 亚洲第一视频在线观看| 日韩黄在线观看| 色悠悠久久88| 欧美激情亚洲自拍| 国产精品自产拍在线观看中文| 97久久精品人人澡人人爽缅北| 日韩在线观看av| 97碰在线观看| 国产精品h片在线播放| 国产成人激情视频| 米奇精品一区二区三区在线观看| 亚洲电影中文字幕| 在线观看国产欧美| 欧美日本中文字幕| 久久影视免费观看| 日韩av在线直播| 国产成人精品在线观看| 日本高清+成人网在线观看| 九九精品视频在线观看| 欧美午夜性色大片在线观看| 亚洲最大的av网站| 国产mv久久久| 韩日精品中文字幕| 日韩亚洲第一页| 亚洲精品不卡在线| 自拍偷拍亚洲区| 亚洲天堂成人在线| 麻豆成人在线看| 91免费福利视频| 亚洲最大福利视频| 国产成人精品在线观看| 欧美巨乳美女视频| 国产91ⅴ在线精品免费观看| 这里只有精品丝袜| 欧美日韩另类在线| 久久国产精品99国产精| 亚洲福利视频免费观看| 久久国产精品影片| 日韩av电影手机在线观看| 97国产suv精品一区二区62| 成人中文字幕在线观看| 国产精品亚洲激情| 国产日韩中文字幕| 欧美激情极品视频| 精品日本高清在线播放| 国产精品天天狠天天看| 久久天天躁狠狠躁夜夜躁| 国模精品一区二区三区色天香| 中文字幕亚洲天堂| 久久国产精品久久国产精品| 国产精品a久久久久久| 在线观看日韩专区| 日本午夜人人精品| 超碰97人人做人人爱少妇| 午夜精品久久久久久久男人的天堂| 国产成人精品999| 亚洲大胆美女视频| 精品女厕一区二区三区| 国内精品久久久久久中文字幕| 亚洲国产成人精品一区二区| 国产精品电影网| 亚洲欧美国产日韩天堂区| 欧美人在线视频| 国产亚洲成精品久久| 国产成人精品av在线| 精品国产一区二区在线| 亚洲天堂男人天堂| 不卡在线观看电视剧完整版| 日本久久久久亚洲中字幕| 国产精品久久久久久久久久99| 青草成人免费视频| 国产成人97精品免费看片| 精品视频久久久久久久| 亚洲国产精品高清久久久| 九九热这里只有精品免费看| 全球成人中文在线| 亚洲国产天堂网精品网站| 欧美性视频精品| 亚洲国产精品一区二区久| 日韩欧美亚洲综合| 久久久久www| 亲子乱一区二区三区电影| 欧美一区视频在线| 欧美午夜精品久久久久久久| 亚洲综合中文字幕在线| 国产999精品| 日韩电影免费在线观看中文字幕| 91精品免费视频| 成人网欧美在线视频| 国内精品小视频| 国产午夜精品麻豆| 亚洲精品综合久久中文字幕| 精品国产依人香蕉在线精品| 日韩av电影手机在线| 欧美洲成人男女午夜视频| 亚洲欧洲在线视频| 98精品国产自产在线观看| 亚洲二区在线播放视频| 亚洲国产日韩欧美在线动漫| 国产精品久久久91| 91免费看片网站| 亚洲精品电影网| 狠狠躁夜夜躁久久躁别揉| 亚洲国产精品成人va在线观看| 97超视频免费观看| 久久精品久久久久久| 欧美日韩国产色视频| 成人性教育视频在线观看| 亚洲精品日韩欧美| 欧美激情啊啊啊| 一个色综合导航| 91亚洲精品久久久久久久久久久久| 激情av一区二区| 国产精品国产福利国产秒拍| 91精品久久久久久久久久久久久| 国产精品日日摸夜夜添夜夜av| 国产精品久久国产精品99gif| 久久网福利资源网站| 精品免费在线观看| 2019精品视频| 77777少妇光屁股久久一区| 欧美黑人极品猛少妇色xxxxx| 亚洲老头同性xxxxx| 欧美中文字幕在线观看| 91久久精品久久国产性色也91| 97久久精品国产| 福利视频一区二区|