天天看點

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

文章目錄

  • 一、SQL概述
    • 1.1 SQL特點
    • 1.2 SQL的基本概念
  • 二、資料定義
    • 2.1 模式的定義與删除
    • 2.2 基本表的定義、删除與修改
    • 2.3 索引的建立與删除
  • 三、資料查詢
    • 3.1 語句格式
    • 3.2 單表查詢(僅涉及一個表)
    • 3.2 連接配接查詢
    • 3.3 嵌套查詢
    • 4.4 SELECT語句的一般格式
  • 四、資料更新
    • 4.1 插入資料
    • 4.2 修改資料
    • 4.3 删除資料
  • 五、MySQL使用
    • 5.1、MySQLworkbench中
    • 5.2 在Navicat Premium中
  • 六、結語

一、SQL概述

SQL(Structured Query Language)為結構化查詢語言,是關系資料庫的标準語言。

1.1 SQL特點

1.綜合統一

(1)集資料定義語言(DDL),資料操縱語言(DML),資料控制語言(DCL)功能于一體。

(2)可以獨立完成資料庫生命周期中的全部活動:

①定義關系模式,插入資料,建立資料庫;

②對資料庫中的資料進行查詢和更新;

③資料庫重構和維護

④資料庫安全性、完整性控制等

(3)使用者資料庫投入運作後,可根據需要随時逐漸修改模式,不影響資料的運作。

(4)資料操作符統一

2.高度非過程化:無須了解存取路徑

3.面向集合的操作方式:

①操作對象、查找結果可以是元組的集合;

②一次插入、删除、更新操作的對象可以是元組的集合。

4.以同一種文法結構提供多種使用方式:

①能夠獨立地用于聯機互動的使用方式;

②SQL又是嵌入式語言:能夠嵌入進階語言(例如C,C++,Java)程式中,供程式員設計程式時使用。

5.語言簡潔,易學易用:

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

1.2 SQL的基本概念

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語
關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

學生-課程資料庫

學生-課程模式 S-T :

(1)學生表:Student(Sno,Sname,Ssex,Sage,Sdept)

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

(2)課程表:Course(Cno,Cname,Cpno,Ccredit)

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

(3)學生選課表:SC(Sno,Cno,Grade)

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

二、資料定義

SQL的資料定義功能: 模式定義、表定義、視圖和索引的定義

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

2.1 模式的定義與删除

1.定義模式

(1)定義模式實際上定義了一個命名空間

(2)在這個命名空間中可以定義該模式包含的資料庫對象,例如基本表、試圖、索引等。

(3)在CREATE SCHEMA中可以接受CREATE TABLE,CREATE VIEW和GRANT子句。

CREATE SCHEMA <模式名> AUTHORIZATION <使用者名>[<表定義子句>|<視圖定義子句>|<授權定義子句>]

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

2.删除模式

DROP SCHEMA <模式名> <CASCADE|RESTRICT>

(1)CASCADE(級聯): 删除模式的同時把該模式中所有的資料庫對象全部删除

(2)RESTRICT(限制):如果該模式中定義了下屬的資料庫對象(如表、視圖等),則拒絕該删除語句的執。當該模式中沒有任何下屬的對象時才能執行。

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

2.2 基本表的定義、删除與修改

1.定義基本表

CREATE TABLE <表名>

(<列名> <資料類型>[ <列級完整性限制條件> ]

[,<列名> <資料類型>[ <列級完整性限制條件>] ] …

[,<表級完整性限制條件> ] );

如果完整性限制條件涉及到該表的多個屬性列,則必須定義在表級上,否則既可以定義在列級也可以定義在表級。

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語
關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

2.資料類型

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

3.删除基本表

DROP TABLE <表名>[RESTRICT| CASCADE];

(1)RESTRICT:删除表是有限制的。

①欲删除的基本表不能被其他表的限制所引用

②如果存在依賴該表的對象,則此表不能被删除

(2)CASCADE:删除該表沒有限制。

①在删除基本表的同時,相關的依賴對象一起删除

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語
關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

4.修改基本表

ALTER TABLE <表名>

[ ADD <新列名> <資料類型> [ 完整性限制 ] ]

[ DROP <完整性限制名> ]

[ ALTER COLUMN<列名> <資料類型> ];

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

2.3 索引的建立與删除

(1)建立索引的目的:加快查詢速度

(2)誰可以建立索引

①DBA 或 表的屬主(即建立表的人)

②DBMS一般會自動建立以下列上的索引

PRIMARY KEY

UNIQUE

(3)誰 維護索引

DBMS自動完成

(4)使用索引

DBMS自動選擇是否使用索引以及使用哪些索引

1.語句格式

CREATE [UNIQUE] [CLUSTER] INDEX <索引名>

ON <表名>(<列名>[<次序>][,<列名>[<次序>] ]…);

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

2.删除索引

DROP INDEX <索引名>;

删除索引時,系統會從資料字典中删去有關該索引的描述。

三、資料查詢

3.1 語句格式

SELECT [ALL|DISTINCT] <目标清單達式>

[,<目标清單達式>] …

FROM <表名或視圖名>[, <表名或視圖名> ] …

[ WHERE <條件表達式> ]

[ GROUP BY <列名1> [ HAVING <條件表達式> ] ]

[ ORDER BY <列名2> [ ASC|DESC ] ];

3.2 單表查詢(僅涉及一個表)

1.選擇表中的若幹列

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

2.選擇表中的若幹元組

指定DISTINCT關鍵詞,去掉表中重複的行

SELECT DISTINCT Sno

FROM SC;

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

(1)比較大小

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

(2)确定範圍

謂詞: BETWEEN … AND …

NOT BETWEEN … AND …

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

(3)确定集合

謂詞:IN <值表>, NOT IN <值表>

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

(4)字元比對

謂詞: [NOT] LIKE ‘<比對串>’ [ESCAPE ‘ <換碼字元>’]

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語
關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語
關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

(5)涉及空值的查詢

謂詞: IS NULL 或 IS NOT NULL

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

(6)多重條件查詢

①邏輯運算符:AND和 OR來聯結多個查詢條件:AND的優先級高于OR; 可以用括号改變優先級

②可用來實作多種其他謂詞: [NOT] IN;[NOT] BETWEEN … AND …

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

3.聚集函數

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語
關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

3.2 連接配接查詢

(1)連接配接查詢:同時涉及多個表的查詢

(2)連接配接條件或連接配接謂詞:用來連接配接兩個表的條件——一般格式:

①[<表名1>.]<列名1> <比較運算符> [<表名2>.]<列名2>

②[<表名1>.]<列名1> BETWEEN [<表名2>.]<列名2> AND [<表名2>.]<列名3>

(3)連接配接字段:連接配接謂詞中的列名稱

連接配接條件中的各連接配接字段類型必須是可比的,但名字不必是相同的

1.等值與非等值連接配接查詢

(1)等值連接配接:連接配接運算符為=

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語
關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

(2)自然連接配接

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

2.自身連接配接

(1)自身連接配接:一個表與其自己進行連接配接

(2)需要給表起别名以示差別

(3)由于所有屬性名都是同名屬性,是以必須使用别名字首

3.外連接配接

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語
關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

4.複合條件連接配接

複合條件連接配接:WHERE子句中含多個連接配接條件

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

3.3 嵌套查詢

1.嵌套查詢概述

一個SELECT-FROM-WHERE語句稱為一個查詢塊,那麼将一個查詢塊嵌套在另一個查詢塊的WHERE子句或HAVING短語的條件中的查詢稱為嵌套查詢。

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

2.帶有比較運算符的子查詢

當能确切知道内層查詢傳回單值時,可用比較運算符(>,<,=,>=,<=,!=或< >)。

與ANY或ALL謂詞配合使用

3.帶有ANY(SOME)或ALL謂詞的子查詢

ANY:任意一個值

ALL:所有值

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語
關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語
關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

4.帶有EXISTS謂語的子查詢

[例44]查詢所有選修了1号課程的學生姓名。

思路分析:

① 本查詢涉及Student和SC關系

②在Student中依次取每個元組的Sno值,用此值去檢查SC關系

③若SC中存在這樣的元組,其Sno值等于此Student.Sno值,并且其Cno= ‘1’,則取此Student.Sname送入結果關系

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語
關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

4.4 SELECT語句的一般格式

SELECT [ALL|DISTINCT]

<目标清單達式> [别名] [ ,<目标清單達式> [别名]] …

FROM <表名或視圖名> [别名]

[ ,<表名或視圖名> [别名]] …

[WHERE <條件表達式>]

[GROUP BY <列名1>

[HAVING <條件表達式>]]

[ORDER BY <列名2> [ASC|DESC]

四、資料更新

4.1 插入資料

1.插入元組(将新元組插入指定表中)

(1)語句格式:

INSERT

INTO <表名> [(<屬性列1>[,<屬性列2 >…)]

VALUES (<常量1> [,<常量2>] … )

(2)INTO子句

屬性列的順序可與表定義中的順序不一緻;沒有指定屬性列;指定部分屬性列

(3) VALUES子句

提供的值必須與INTO子句比對(值的個數、

值的類型)

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

2.插入子查詢結果( 将子查詢結果插入指定表中)

(1)語句格式

INSERT

INTO <表名> [(<屬性列1> [,<屬性列2>… )]

子查詢;

(2)INTO子句(與插入元組類似)

(3) 子查詢:

SELECT子句目标列必須與INTO子句比對(值的個數、值的類型)

4.2 修改資料

(1)語句格式

UPDATE <表名>

SET <列名>=<表達式>[,<列名>=<表達式>]…

[WHERE <條件>];

(2)功能:修改指定表中滿足WHERE子句條件的元組

(3)SET子句:

①指定修改方式

②要修改的列

③修改後取值

(4)WHERE子句

①指定要修改的元組

②預設表示要修改表中的所有元組

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語
關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

4.3 删除資料

(1)語句格式

DELETE

FROM <表名>

[WHERE <條件>];

(2)功能:删除指定表中滿足WHERE子句條件的元組

(3)WHERE子句

①指定要删除的元組

②預設表示要删除表中的全部元組,表的定義仍在字典中

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

五、MySQL使用

5.1、MySQLworkbench中

步驟

(1)打開MySQL workbench

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

(2)打開頁面如下,并進行連接配接

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語
關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

再輕按兩下進入

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

(3)建立模式并命名S-T

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語
關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

(4)建立基本表

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

(5)右擊student表

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語
關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

(6)建立表格後儲存即可查詢。輸入查詢語句

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

5.2 在Navicat Premium中

(1)打開Navicat Premium,點選連接配接,輸入密碼,使用者名

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

(2)右擊建立資料庫

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

(3)建立基本表,通過添加欄位設計基本表,再儲存命名,再輕按兩下進入填充資料

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

設計表

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

(4)如若查詢,可點模式下方的查詢,編寫程式後查詢

關系資料庫标準語言SQL及其軟體MySQL使用一、SQL概述二、資料定義三、資料查詢四、資料更新五、MySQL使用六、結語

六、結語

以上,謝謝!

繼續閱讀