麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > MySQL > 正文

MySQL語句整理及匯總介紹

2024-07-25 19:09:28
字體:
來源:轉載
供稿:網友

SQL(Structured Query Language)語句,即結構化查詢語言,是操作和檢索關系數據庫的標準語言。SQL語句一般分為以下幾種:

  1. DCL(Database Control Language,數據控制語言)語句:主要由GRANT和REVOKE兩個關鍵字完成
  2. DDL(Database Definition Language,數據定義語言)語句:主要由CREATE、ALTER、DROP和TRUNCATE四個關鍵字完成
  3. DML(Database Manipulation Language,數據操作語言)語句:主要由INSERT、UPDATE和DELETE三個關鍵字完成
  4. 查詢語句:主要由SELECT語句完成
  5. 事務控制語句:主要由COMMIT、ROLLBACK和SAVEPOINT三個關鍵字完成

注:SQL語句不區分大小寫,所以create和CREATE是相同的

一.DCL語句

DCL語句就是對用戶進行授權和授權收回的操作,可以對不同的用戶的權限進行控制,增加數據庫安全性,進行數據庫的維護。一般都是數據庫管理員使用超級用戶root進行操作。

MySQL的權限命令是grant,權限撤銷的命令時revoke;

1.grant授權格式:

grant 權限列表 on 庫.表 to 用戶名@'ip' identified by "密碼";

2.revoke回收權限格式:

revoke 權限列表 on 庫.表 from 用戶名@'ip';

二.DDL語句

數據庫對象:

表(table)、數據字典、約束(constraint)、視圖(view)、索引(index)、函數(function)、存儲過程(procedure)、觸發器(trigger)

CREATE、ALTER、DELETE關鍵字分別是創建、修改和刪除數據庫對象的,此處使用我們使用最多的對表的操作來舉例

1.CREATE:

CREATE TABLE [模式名.] 表名(
該表中的列定義
);

e.g.

CREATE TABLE test(StuId VARCHAR(8) PRIMARY KEY,StuName VARCHAR(30) NOT NULL,StuAge SMALLINT NOT NULL,StuBirth DATETIME);

注:查看表結構:DESCRIBE 表名;

2.ALTER:

1)添加列:

ALTER TABLE 表名
ADD column columnName1 datatype [default expr] [FIRST|AFTER colName];
columnName1:新添加的列名;
datatype:數據類型;
default expr:完整性約束;
FIRST|AFTER colName:插入位置,默認是插入在最后一列,FIRST是在第一列,AFTER colName是在指定列后插入

e.g.

ALTER TABLE testADD column StuMajor VARCHAR(20) NOT NULL AFTER StuName;

2)修改列

ALTER TABLE 表名 CHANGE oldName newName datatype; 

e.g.

ALTER TABLE test CHANGE StuBirth Birthday year;

3)刪除列

ALTER TABLE 表名 DROP column columnName;

e.g.

ALTER TABLE test DROP column StuMajor;

4)修改表名

ALTER TABEL 表名 RENAME TO 新表名;

e.g.

ALTER TABLE test RENAME TO student;

3.DROP

刪除表
DROP TABLE 表名;

e.g.

DROP TABLE student;

4.TRUNCATE

刪除表內所有數據但保留表的結構,叫做“截斷”
TRUNCATE TABLE 表名;

e.g.

TRUNCATE TABLE student;

三.DML語句

1.INSERT

標準SQL語句只允許一次插入一條數據,但MySQL對其進行擴展使其可以一次插入多條數據

插入一條數據:

INSERT INTO 表名 VALUES(value1, value2, ...);

插入多條數據:

INSERT INTO 表名 VALUES(value1,value2,...),(value1,value2,...),(value1,value2,...);

e.g.

INSERT INTO student VALUES(‘001','Lisa',20,1997),(‘002','Rose',21,1996);

2.UPDATE

UPDATE 表名 SET COLUMN1 = VALUE1[, COLUMN2 = VALUE2]...
[WHERE CONDITION];

e.g.將所有年齡大于20歲的學生的年齡+1

UPDATE student SET StuAge = StuAge+1 WHERE StuAge>20;

3.DELETE

DELETE FROM 表名 [WHERE CONDITION];

e.g.將所有1997年出生的學生信息刪除

DELETE FROM student WHERE Birthday = 1997;

四.查詢語句

1.單表查詢:

SELECT COLUMN1, COLUMN2...FROM 數據源[WHERE CONDITION][GROUP BY columnName][ORDER BY columnName DESC|ASC]

e.g.將計算機科學專業的學生選出來并按照學號降序排列,只顯示學生姓名

SELECT StuName FROM student WHERE StuMajor = 'CS'ORDER BY StuId DESC;

2.多表查詢:

1)簡單的外連接方式

SELECT VALUE1[,VALUE2]...FROM tableName1,tableName2WHERE tableName1.column1 = tableName2.column2[AND ...];WHERE 后跟的是連接條件和查詢條件

2)自連接:有時需要自己和自己進行連接,叫做自連接

e.g.

有如下的表temp

CREATE TABLE emp(id INT AUTO_INCRETMENT PRIMARY KEY,name VARCAHR(255),mangerId INT,FOREIGN KEY(managerId) references temp(id));

其中有四條記錄

id                     name                 managerId
1                       aaa                        null
2                       bbb                         1
3                       ccc                          1
4                       ddd                         1

對該表進行查詢操作:

SELECT employee.id, employee.name 員工名, manager.name 經理名FROM emp employee, emp managerWHERE employee.managerId = manager.id;

該查詢語句使用自連接顯示員工和經理的關系,其中:

  •  employee.name 員工名, manager.name 經理名 員工名和經理名是重命名,在顯示列時顯示員工名和經理名;
  •  FROM emp employee, emp manager 兩個相同的表需要進行區分,起不同的名字;
  •  WHERE employee.managerId = manager.id 是連接條件

五.事務處理

1.事務是由一步或幾步數據庫操作序列組成的邏輯執行單元。

這系列操作要么全部執行,要么全部放棄執行。程序和事務是完全兩種不同的概念。一般而言,一段程序中可能包含多個事務。在MySQL中,有多種引擎,最常用的兩個引擎:InnoDB和MyISAM,其中InnoDB是支持事務的,而MyISAM是不支持的,可以在config配置文件中對其進行修改。

2.事務的四個特性:

  • 原子性(Atomicity):事務是應用中最小的執行單位。
  • 一致性(Consistency):事務執行的結果必須讓數據庫從一個一致性的狀態變成另外一個一致性的狀態。一致性是通過原子性保證的
  • 隔離性(Isolation):各個事務執行相互不干擾。
  • 持續性(Durability):也成為持久性(Persistence),指事務一旦提交,將數據做的任何改變都保存進物理數據庫。

這四個特性也叫ACID性

3.數據庫的事務由一組DML語句、一條DDL語句和一條DCL語句組成

  • DML語句對數據進行操作
  • DDL和DCL都各只有一條,因為DDL和DCL語句都會將事務提交

4.事務的提交:

  • 顯示提交:commit
  • 自動提交:DDL/DCL語句

MySQL默認關閉事務(自動提交),在默認情況下,用戶輸入一條DML語句也會提交該操作,為了開啟事務可以通過以下語句對自動提交進行設置

SET AUTOCOMMIT = {0|1}       0是關閉自動提交(開啟事務),1是開啟自動提交(關閉事務)

5.事務的回滾(rollback)

事務包含的任意一個數據庫操作執行失敗后執行回滾事務,將該事務中進行的操作全部失效。兩種方式:

  • 顯示回滾:rollback
  • 自動回滾:系統錯誤或強行退出

6.例子:

若只是臨時開啟一個事務可以通過:start transaction或begin開啟臨時事務,在其之后的DML語句都不會立即執行,直到出現事務的提交或回滾才結束事務。

e.g.1

BEGIN;INSERT INTO student VALUES(NULL,'001','aaa');INSERT INTO student VALUES(NULL,'002','bbb');INSERT INTO student VALUES(NULL,'003','ccc');SELECT * FROM student;                ①ROLLBACK;SELECT * FROM student;                ②

①語句查詢的結果中包含插入的數據,但如果此時在別的命令行窗口中執行該語句,也不會看到以上的三條數據,體現了事務的隔離性,這三條數據其實并沒有寫入物理數據庫;

在執行了回滾操作后,在②的查詢語句的結果中看不到begin之后的那三條數據

e.g.2

INSERT INTO student VALUES(NULL,'001','aaa');INSERT INTO student VALUES(NULL,'002','bbb');SAVEPOINT p;INSERT INTO student VALUES(NULL,'003','ccc');SELECT * FROM student;                ①ROLLBACK TO p;SELECT * FROM student;                ②

MySQL還提供關鍵字SAVEPOINT設置中間點,可以設置回滾的位置,①處的查詢語句結果中包含三條插入數據的結果,但②處的查詢結果中不包含中間點p之后插入的數據。需要注意的是,回到中間點的回滾不會結束事務。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 视频一区国产 | 国产毛片在线看 | 国产一及毛片 | 噜噜噜躁狠狠躁狠狠精品视频 | 香蕉国产精品 | 性猛交ⅹxxx乱巴西 在线播放中文 | 成人aaaaa片毛片按摩 | 香蕉国产在线视频 | 免费在线观看亚洲 | 亚洲第一视频在线 | 国产伊人色 | 在线观看国产一区二区 | 国产成年人在线观看 | 精品久久久久久久久中文字幕 | 欧美精品v国产精品v日韩精品 | 欧美人人干| 国产成年人网站 | 国产精品免费看 | 日韩字幕在线观看 | 黄色特级片黄色特级片 | 色视频在线观看 | 久久av喷吹av高潮av懂色 | 久久影院国产精品 | 一级在线观看 | 91精品国产日韩91久久久久久360 | 91不雅视频| 九九热视频在线 | av中文一区| 在线播放黄色网址 | 亚州欧美视频 | 国产精品久久久久久久久久iiiii | 欧美中文字幕一区二区 | 欧美一级高清片在线 | www.精品久久 | 女人裸体让男人桶全过程 | 久久中文一区 | 福利在线影院 | av在线免费看片 | 中文字幕一区二区三区四区 | 欧美无极品 | 91一区二区三区久久久久国产乱 |