sql語言入門教程
Ⅰ sql基礎教程的目錄
1.1運行SQL程序
1.2Microsoft Access
1.3Microsoft SQL Server
1.3.1SQL Server 2000
1.3.2SQL Server 2005/2008
1.4Oracle
1.5IBM DB2
1.6MySQL
1.7PostgreSQL 2.1表、列和行
2.1.1表
2.1.2列
2.1.3行
2.2主鍵
2.3外鍵
2.4聯系
2.4.1一對一
2.4.2一對多
2.4.3多對多
2.5規范化
2.5.1第一範式
2.5.2第二範式
2.5.3第三範式
2.5.4其他範式
2.6示例資料庫
2.6.1表authors
2.6.2表publishers
2.6.3表titles
2.6.4表titles_authors
2.6.5表royalties
2.7創建示例資料庫 3.1SQL語法
3.2SQL標准和一致性
3.3標識符
3.4數據類型
3.5字元串類型
3.6二進制大型對象類型
3.7精確數字類型
3.8近似數字類型
3.9布爾類型
3.10日期和時間類型
3.11時間間隔類型
3.12唯一標識符
3.13其他數據類型
3.14空值 4.1使用SELECT和FROM檢索列
4.2使用AS創建列的別名
4.3使用DISTINCT消除重復的行
4.4使用ORDER BY排序行
4.5使用WHERE篩選行
4.6使用AND、OR和NOT組合及求反條件
4.6.1AND操作符
4.6.2OR操作符
4.6.3NOT操作符
4.6.4AND、OR和NOT一起使用
4.7使用LIKE匹配模式
4.8使用BETWEEN進行范圍篩選
4.9使用IN進行列表篩選
4.10使用IS NULL測試空值 5.1創建派生列
5.2執行算術運算
5.3確定計算的順序
5.4使用||連接串
5.5使用SUBSTRING()提取子串
5.6使用UPPER()和LOWER()更改串的大小寫
5.7使用TRIM()修整字元
5.8使用CHARACTER_LENGTH()得到串長度
5.9使用POSITION()查找子串
5.10執行日期及時間間隔運算
5.11獲得當前日期和時間
5.12獲得用戶信息
5.13使用CAST()轉換數據類型
5.14使用CASE計算條件值
5.15使用COALESCE()檢查空值
5.16使用NULLIF()比較表達式 6.1使用聚合函數
6.2創建聚合表達式
6.3使用MIN()查找最小值
6.4使用MAX()查找最大值
6.5使用SUM()計算總和
6.6使用AVG()計算平均值
6.7使用COUNT()統計行數
6.8使用DISTINCT聚合不重復的值
6.9使用GROUP BY分組行
6.10使用HAVING篩選分組 7.1限定列名
7.2使用AS創建表的別名
7.3使用聯結
7.4使用JOIN或WHERE創建聯結
7.5使用CROSS JOIN創建交叉聯結
7.6使用NATURAL JOIN創建自然聯結
7.7使用INNER JOIN創建內聯結
7.8使用OUTER JOIN創建外聯結
7.9創建自聯結 8.1理解子查詢
8.2子查詢語法
8.3子查詢和聯結
8.4簡單子查詢和相關子查詢
8.4.1簡單子查詢
8.4.2相關子查詢
8.5在子查詢中限定列名
8.6子查詢中的空值
8.7使用子查詢作為列表達式
8.8使用比較操作符比較子查詢的值
8.9使用IN測試集合成員資格
8.10使用ALL比較所有子查詢的值
8.11使用ANY比較某些子查詢的值
8.12使用EXISTS檢測存在性
8.13比較等價查詢 9.1使用UNION合並行
9.2使用INTERSECT查找相同行
9.3使用EXCEPT查找不同行 10.1顯示表結構
10.2使用INSERT插入行
10.3使用UPDATE更新行
10.4使用DELETE刪除行 11.1創建表
11.2理解約束
11.3使用CREATE TABLE創建新表
11.4使用NOT NULL禁止空值
11.5使用DEFAULT確定默認值
11.6使用PRIMARY KEY指定主鍵
11.7使用FOREIGN KEY指定外鍵
11.8使用UNIQUE確保值唯一
11.9使用CHECK創建檢查約束
11.10使用CREATE TEMPORARY TABLE創建臨時表
11.11使用CREATE TABLE AS利用已存在表創建新表
11.12使用ALTER TABLE修改表
11.13使用DROP TABLE刪除表 12.1使用CREATE INDEX創建索引
12.2使用DROP INDEX刪除索引 13.1使用CREATE VIEW創建視圖
13.2通過視圖檢索數據
13.3通過視圖修改數據
13.3.1通過視圖插入行
13.3.2通過視圖更新行
13.3.3通過視圖刪除行
13.4使用DROP VIEW刪除視圖 15.1動態統計
15.2產生序列
15.3發現等差數列、遞增數列和等值數列
15.4限定返回行的數量
15.4.1Microsoft Access
15.4.2Microsoft SQL Server
15.4.3Oracle
15.4.4IBM DB2
15.4.5MySQL
15.4.6PostgreSQL
15.5分配排名
15.6計算修整均值
15.7隨機選取行
15.8處理重復值
15.9創建電話列表
15.10檢索元數據
15.10.1Microsoft Access
15.10.2Microsoft SQL Server
15.10.3Oracle
15.10.4IBM DB2
15.10.5MySQL
15.10.6PostgreSQL
15.11處理日期
15.11.1Microsoft Access
15.11.2Microsoft SQL Server
15.11.3Oracle
15.11.4IBM DB2
15.11.5MySQL
15.11.6PostgreSQL
15.12計算中值
15.13查詢極值
15.14改變動態統計的中流
15.15旋轉結果
15.16處理層次結構
索引
Ⅱ SQL怎麼用
掌握SQL四條最基本的數據操作語句:Insert,Select,Update和Delete。
練掌握SQL是資料庫用戶的寶貴財 富。掌握四條最基本的數據操作語句—SQL的核心功能—來依次介紹比較操作符、選擇斷言以及三值邏輯。當你完成這些學習後,顯然你已經開始算是精通SQL了。
在我們開始之前,先使用CREATE TABLE語句來創建一個表(如圖1所示)。DDL語句對資料庫對象如表、列和視進行定義。它們並不對表中的行進行處理,這是因為DDL語句並不處理資料庫中實際的數據。這些工作由另一類SQL語句—數據操作語言(DML)語句進行處理。
SQL中有四種基本的DML操作:INSERT,SELECT,UPDATE和DELETE。由於這是大多數SQL用戶經常用到的,我們有必要在此對它們進行一一說明。在圖1中我們給出了一個名為EMPLOYEES的表。其中的每一行對應一個特定的雇員記錄。請熟悉這張表,我們在後面的例子中將要用到它。
INSERT語句
用戶可以用INSERT語句將一行記錄插入到指定的一個表中。例如,要將雇員John Smith的記錄插入到本例的表中,可以使用如下語句:
INSERT INTO EMPLOYEES VALUES
('Smith','John','1980-06-10',
'Los Angles',16,45000);
通過這樣的INSERT語句,系統將試著將這些值填入到相應的列中。這些列按照我們創建表時定義的順序排列。在本例中,第一個值「Smith」將填到第一個列LAST_NAME中;第二個值「John」將填到第二列FIRST_NAME中……以此類推。
我們說過系統會「試著」將值填入,除了執行規則之外它還要進行類型檢查。如果類型不符(如將一個字元串填入到類型為數字的列中),系統將拒絕這一次操作並返回一個錯誤信息。
如果SQL拒絕了你所填入的一列值,語句中其他各列的值也不會填入。這是因為SQL提供對事務的支持。一次事務將資料庫從一種一致性轉移到另一種一致性。如果事務的某一部分失敗,則整個事務都會失敗,系統將會被恢復(或稱之為回退)到此事務之前的狀態。
回到原來的INSERT的例子,請注意所有的整形十進制數都不需要用單引號引起來,而字元串和日期類型的值都要用單引號來區別。為了增加可讀性而在數字間插入逗號將會引起錯誤。記住,在SQL中逗號是元素的分隔符。
同樣要注意輸入文字值時要使用單引號。雙引號用來封裝限界標識符。
對於日期類型,我們必須使用SQL標准日期格式(yyyy-mm-dd),但是在系統中可以進行定義,以接受其他的格式。當然,2000年臨近,請你最好還是使用四位來表示年份。
既然你已經理解了INSERT語句是怎樣工作的了,讓我們轉到EMPLOYEES表中的其他部分:
INSERT INTO EMPLOYEES VALUES
('Bunyan','Paul','1970-07-04',
'Boston',12,70000);
INSERT INTO EMPLOYEES VALUES
('John','Adams','1992-01-21',
'Boston',20,100000);
INSERT INTO EMPLOYEES VALUES
('Smith','Pocahontas','1976-04-06',
'Los Angles',12,100000);
INSERT INTO EMPLOYEES VALUES
('Smith','Bessie','1940-05-02',
'Boston',5,200000);
INSERT INTO EMPLOYEES VALUES
('Jones','Davy','1970-10-10',
'Boston',8,45000);
INSERT INTO EMPLOYEES VALUES
('Jones','Indiana','1992-02-01',
'Chicago',NULL,NULL);
在最後一項中,我們不知道Jones先生的工薪級別和年薪,所以我們輸入NULL(不要引號)。NULL是SQL中的一種特殊情況,我們以後將進行詳細的討論。現在我們只需認為NULL表示一種未知的值。
有時,像我們剛才所討論的情況,我們可能希望對某一些而不是全部的列進行賦值。除了對要省略的列輸入NULL外,還可以採用另外一種INSERT語句,如下:
INSERT INTO EMPLOYEES(
FIRST_NAME, LAST_NAME,
HIRE_DATE, BRANCH_OFFICE)
VALUE(
'Indiana','Jones',
'1992-02-01','Indianapolis');
這樣,我們先在表名之後列出一系列列名。未列出的列中將自動填入預設值,如果沒有設置預設值則填入NULL。請注意我們改變了列的順序,而值的順序要對應新的列的順序。如果該語句中省略了FIRST_NAME和LAST_NAME項(這兩項規定不能為空),SQL操作將失敗。
讓我們來看一看上述INSERT語句的語法圖:
INSERT INTO table
[(column { ,column})]
VALUES
(columnvalue [{,columnvalue}]);
和前一篇文章中一樣,我們用方括弧來表示可選項,大括弧表示可以重復任意次數的項(不能在實際的SQL語句中使用這些特殊字元)。VALUE子句和可選的列名列表中必須使用圓括弧。
SELECT語句
SELECT語句可以從一個或多個表中選取特定的行和列。因為查詢和檢索數據是資料庫管理中最重要的功能,所以SELECT語句在SQL中是工作量最大的部分。實際上,僅僅是訪問資料庫來分析數據並生成報表的人可以對其他SQL語句一竅不通。
SELECT語句的結果通常是生成另外一個表。在執行過程中系統根據用戶的標准從資料庫中選出匹配的行和列,並將結果放到臨時的表中。在直接SQL(direct SQL)中,它將結果顯示在終端的顯示屏上,或者將結果送到列印機或文件中。也可以結合其他SQL語句來將結果放到一個已知名稱的表中。
SELECT語句功能強大。雖然表面上看來它只用來完成本文第一部分中提到的關系代數運算「選擇」(或稱「限制」),但實際上它也可以完成其他兩種關系運算—「投影」和「連接」,SELECT語句還可以完成聚合計算並對數據進行排序。
SELECT語句最簡單的語法如下:
SELECT columns FROM tables;
當我們以這種形式執行一條SELECT語句時,系統返回由所選擇的列以及用戶選擇的表中所有指定的行組成的一個結果表。這就是實現關系投影運算的一個形式。
讓我們看一下使用圖1中EMPLOYEES表的一些例子(這個表是我們以後所有SELECT語句實例都要使用的。而我們在圖2和圖3中給出了查詢的實際結果。我們將在其他的例子中使用這些結果)。
假設你想查看雇員工作部門的列表。那下面就是你所需要編寫的SQL查詢:
SELECT BRANCH_OFFICE FROM EMPLOYEES;
以上SELECT語句的執行將產生如圖2中表2所示的結果。
由於我們在SELECT語句中只指定了一個列,所以我們的結果表中也只有一個列。注意結果表中具有重復的行,這是因為有多個雇員在同一部門工作(記住SQL從所選的所有行中將值返回)。要消除結果中的重復行,只要在SELECT語句中加上DISTINCT子句:
SELECT DISTINCT BRANCH_OFFICE
FROM EMPLOYEES;
這次查詢的結果如表3所示。
現在已經消除了重復的行,但結果並不是按照順序排列的。如果你希望以字母表順序將結果列出又該怎麼做呢?只要使用ORDER BY子句就可以按照升序或降序來排列結果:
SELECT DISTINCT BRANCH_OFFICE
FROM EMPLOYEES
ORDER BY BRANCH_OFFICE ASC;
這一查詢的結果如表4所示。請注意在ORDER BY之後是如何放置列名BRANCH _OFFICE的,這就是我們想要對其進行排序的列。為什麼即使是結果表中只有一個列時我們也必須指出列名呢?這是因為我們還能夠按照表中其他列進行排序,即使它們並不顯示出來。列名BRANCH_ OFFICE之後的關鍵字ASC表示按照升序排列。如果你希望以降序排列,那麼可以用關鍵字DESC。
同樣我們應該指出ORDER BY子句只將臨時表中的結果進行排序;並不影響原來的表。
假設我們希望得到按部門排序並從工資最高的雇員到工資最低的雇員排列的列表。除了工資括弧中的內容,我們還希望看到按照聘用時間從最近聘用的雇員開始列出的列表。以下是你將要用到的語句:
SELECT BRANCH_OFFICE,FIRST_NAME,
LAST_NAME,SALARY,HIRE_DATE
FROM EMPLOYEES
ORDER BY SALARY DESC,
HIRE_DATE DESC;
這里我們進行了多列的選擇和排序。排序的優先順序由語句中的列名順序所決定。SQL將先對列出的第一個列進行排序。如果在第一個列中出現了重復的行時,這些行將被按照第二列進行排序,如果在第二列中又出現了重復的行時,這些行又將被按照第三列進行排序……如此類推。這次查詢的結果如表5所示。
將一個很長的表中的所有列名寫出來是一件相當麻煩的事,所以SQL允許在選擇表中所有的列時使用*號:
SELECT * FROM EMPLOYEES;
這次查詢返回整個EMPLOYEES表,如表1所示。
下面我們對開始時給出的SELECT語句的語法進行一下更新(豎直線表示一個可選項,允許在其中選擇一項。):
SELECT [DISTINCT]
(column [{, columns}])| *
FROM table [ {, table}]
[ORDER BY column [ASC] | DESC
[ {, column [ASC] | DESC }]];
定義選擇標准
在我們目前所介紹的SELECT語句中,我們對結果表中的列作出了選擇但返回的是表中所有的行。讓我們看一下如何對SELECT語句進行限制使得它只返回希望得到的行:
SELECT columns FROM tables [WHERE predicates];
WHERE子句對條件進行了設置,只有滿足條件的行才被包括到結果表中。這些條件由斷言(predicate)進行指定(斷言指出了關於某件事情的一種可能的事實)。如果該斷言對於某個給定的行成立,該行將被包括到結果表中,否則該行被忽略。在SQL語句中斷言通常通過比較來表示。例如,假如你需要查詢所有姓為Jones的職員,則可以使用以下SELECT語句:
SELECT * FROM EMPLOYEES
WHERE LAST_NAME = 'Jones';
LAST_NAME = 'Jones'部分就是斷言。在執行該語句時,SQL將每一行的LAST_NAME列與「Jones」進行比較。如果某一職員的姓為「Jones」,即斷言成立,該職員的信息將被包括到結果表中(見表6)。
使用最多的六種比較
我們上例中的斷言包括一種基於「等值」的比較(LAST_NAME = 'Jones'),但是SQL斷言還可以包含其他幾種類型的比較。其中最常用的為:
等於 =
不等於 <>
小於 <
大於 >
小於或等於 <=
大於或等於 >=
下面給出了不是基於等值比較的一個例子:
SELECT * FROM EMPLOYEES
WHERE SALARY > 50000;
這一查詢將返回年薪高於$50,000.00的職員(參見表7)。
邏輯連接符
有時我們需要定義一條不止一種斷言的SELECT語句。舉例來說,如果你僅僅想查看Davy Jones的信息的話,表6中的結果將是不正確的。為了進一步定義一個WHERE子句,用戶可以使用邏輯連接符AND,OR和NOT。為了只得到職員Davy Jones的記錄,用戶可以輸入如下語句:
SELECT * FROM EMPLOYEES
WHERE LAST_NAME = 'Jones' AND FIRST_NAME = 'Davy';
在本例中,我們通過邏輯連接符AND將兩個斷言連接起來。只有兩個斷言都滿足時整個表達式才會滿足。如果用戶需要定義一個SELECT語句來使得當其中任何一項成立就滿足條件時,可以使用OR連接符:
SELECT * FROM EMPLOYEES
WHERE LAST_NAME = 'Jones' OR LAST_NAME = 'Smith';
有時定義一個斷言的最好方法是通過相反的描述來說明。如果你想要查看除了Boston辦事處的職員以外的其他所有職員的信息時,你可以進行如下的查詢:
SELECT * FROM EMPLOYEES
WHERE NOT(BRANCH_OFFICE = 'Boston');
關鍵字NOT後面跟著用圓括弧括起來的比較表達式。其結果是對結果取否定。如果某一職員所在部門的辦事處在Boston,括弧內的表達式返回true,但是NOT操作符將該值取反,所以該行將不被選中。
斷言可以與其他的斷言嵌套使用。為了保證它們以正確的順序進行求值,可以用括弧將它們括起來:
SELECT * FROM EMPLOYEES
WHERE (LAST_NAME = 'Jones'
AND FIRST_NAME = 'Indiana')
OR (LAST_NAME = 'Smith'
AND FIRST_NAME = 'Bessie');
SQL沿用數學上標準的表達式求值的約定—圓括弧內的表達式將最先進行求值,其他表達式將從左到右進行求值。
以上對邏輯連接符進行了說明,在對下面的內容進行說明之前,我們再一次對SELECT語句的語法進行更新:
SELECT [DISTINCT]
(column [{, column } ] )| *
FROM table [ { , table} ]
[ORDER BY column [ASC] | [DESC
[{ , column [ASC] | [DESC } ] ]
WHERE predicate [ { logical-connector predicate } ];
NULL和三值邏輯
在SQL中NULL是一個復雜的話題,關於NULL的詳細描述更適合於在SQL的高級教程而不是現在的入門教程中進行介紹。但由於NULL需要進行特殊處理,並且你也很可能會遇到它,所以我們還是簡略地進行一下說明。
首先,在斷言中進行NULL判斷時需要特殊的語法。例如,如果用戶需要顯示所有年薪未知的職員的全部信息,用戶可以使用如下SELECT語句:
SELECT * FROM EMPLOYEES
WHERE SALARY IS NULL;
相反,如果用戶需要所有已知年薪數據的職員的信息,你可以使用以下語句:
SELECT * FROM EMPLOYEES
WHERE SALARY IS NOT NULL;
請注意我們在列名之後使用了關鍵字IS NULL或IS NOT NULL,而不是標準的比較形式:COLUMN = NULL、COLUMN <> NULL或是邏輯操作符NOT(NULL)。
這種形式相當簡單。但當你不明確地測試NULL(而它們確實存在)時,事情會變得很混亂。
例如,回過頭來看我們圖1中的EM-PLOYEES表,可以看到Indiana Jones的工薪等級或年薪值都是未知的。這兩個列都包含NULL。可以想像運行如下的查詢:
SELECT * FROM EMPLOYEES
WHERE GRADE <= SALARY;
此時,Indiana Jones應該出現在結果表中。因為NULL都是相等的,所以可以想像它們是能夠通過GRADE小於等於SALARY的檢查的。這其實是一個毫無疑義的查詢,但是並沒有關系。SQL允許進行這樣的比較,只要兩個列都是數字類型的。然而,Indiana Jones並沒有出現在查詢的結果中,為什麼?
正如我們早先提到過的,NULL表示未知的值(而不是象某些人所想像的那樣表示一個為NULL的值)。對於SQL來說意味著這個值是未知的,而只要這個值為未知,就不能將其與其他值比較(即使其他值也是NULL)。所以SQL允許除了在true 和false之外還有第三種類型的真值,稱之為「非確定」(unknown)值。
如果比較的兩邊都是NULL,整個斷言就被認為是非確定的。將一個非確定斷言取反或使用AND或OR與其他斷言進行合並之後,其結果仍是非確定的。由於結果表中只包括斷言值為「真」的行,所以NULL不可能滿足該檢查。從而需要使用特殊的操作符IS NULL和IS NOT NULL。
UPDATE語句
UPDATE語句允許用戶在已知的表中對現有的行進行修改。
例如,我們剛剛發現Indiana Jones的等級為16,工資為$40,000.00,我們可以通過下面的SQL語句對資料庫進行更新(並清除那些煩人的NULL)。
UPDATE EMPLOYEES
SET GRADE = 16, SALARY = 40000
WHERE FIRST_NAME = 'Indiana'
AND LAST_NAME = 'Jones';
上面的例子說明了一個單行更新,但是UPDATE語句可以對多行進行操作。滿足WHERE條件的所有行都將被更新。如果,你想讓Boston辦事處中的所有職員搬到New York,你可以使用如下語句:
UPDATE EMPLOYEES
SET BRANCH_OFFICE = 'New York'
WHERE BRANCH_OFFICE = 'Boston';
如果忽略WHERE子句,表中所有行中的部門值都將被更新為'New York'。
UPDATE語句的語法流圖如下面所示:
UPDATE table
SET column = value [{, column = value}]
[ WHERE predicate [ { logical-connector predicate}]];
DELETE語句
DELETE語句用來刪除已知表中的行。如同UPDATE語句中一樣,所有滿足WHERE子句中條件的行都將被刪除。由於SQL中沒有UNDO語句或是「你確認刪除嗎?」之類的警告,在執行這條語句時千萬要小心。如果決定取消Los Angeles辦事處並解僱辦事處的所有職員,這一卑鄙的工作可以由以下這條語句來實現:
DELETE FROM EMPLOYEES
WHERE BRANCH_OFFICE = 'Los Angeles';
如同UPDATE語句中一樣,省略WHERE子句將使得操作施加到表中所有的行。
DELETE語句的語法流圖如下面所示:
DELETE FROM table
[WHERE predicate [ { logical-connector predicate} ] ];
現在我們完成了數據操作語言(DML)的主要語句的介紹。我們並沒有對SQL能完成的所有功能進行說明。SQL還提供了許多的功能,如求平均值、求和以及其他對表中數據的計算,此外SQL還能完成從多個表中進行查詢(多表查詢,或稱之為連接)的工作。這種語言還允許你使用GRANT和REVOKE命令控制使用者的數據訪問許可權
Ⅲ 初學者自學SQL有什麼好書推薦
【導讀】隨著互聯網的發展,數據分析已經成了非常熱門的職業,大數據分析師也成了社會打工人趨之若鶩的職業,不僅高薪還沒有很多職場微世界的繁瑣事情,不過要想做好數據分析工作也並不簡單,參看一些好書,對行進數據分析會更有幫助!那麼初學者自學SQL有什麼好書推薦呢?
SQL
1.《SQL 從入門到知曉》
學習 SQL 的入門書,SQL 是個性價比很高的技能,簡略而強健。任何想進一步跋涉自己數據分析技能的產品/運營/分析師,都主張點亮這個技能點。
2.《SQL必知必會》
本書是深受世界各地讀者歡迎的SQL經典暢銷書,內容豐厚,文字簡練明快,針對Oracle、SQL
Server、MySQL、DB2、PostgreSQL、SQLite等各種幹流資料庫供應了許多簡明的實例。與其他同類圖書不同,它沒有過多論說資料庫基礎理論,而是專門針對一線軟體開發人員,直接從SQL
SELECT開端,敘說實踐工作環境中最常用和最必需的SQL知識,有用性極強。通過本書,讀者能夠從沒有多少SQL經歷的新手,活絡編寫出世界級的SQL!
3.《SQL基礎教程》
本書介紹了聯絡資料庫以及用來操作聯絡資料庫的SQL語言的運用方法,供應了許多的示常式序和詳實的操作進程說明,讀者能夠親主動手處理詳細問題,故步自封地掌握SQL的基礎知識和技巧,真實跋涉自身的編程才調。在每章結束備有習題,用來查驗讀者對該章內容的了解程度。其他本書還將重要知識點總結為「規律」,便當我們隨時查閱。
4.《MySQL必知必會》
本書從介紹簡略的數據檢索開端,逐步深化一些雜亂的內容,包含聯合的運用、子查詢、正則表達式和根據全文本的查找、存儲進程、游標、觸發器、表綁縛,等等。通過要害超卓的章節,條理清楚、體系而扼要地敘說了讀者應該掌握的知識,使他們不經意間立刻功力大增。
5. 《深化淺出SQL》
帶你進入SQL語言的心臟地帶,從運用INSERT和SELECT這些根柢的查詢語法到運用子查詢(subquery)、聯接(join)和業務(transaction)這樣的中心技能來操作資料庫。你將不只能夠了解高效資料庫規劃和創建,還能像一個專家那樣查詢、歸一(normalizing)和聯接數據。你將成為數據的真實主人。
以上就是小編今天給大家整理分享關於「初學者自學SQL有什麼好書推薦?」的相關內容希望對大家有所幫助。小編認為要想在大數據行業有所建樹,需要考取部分含金量高的數據分析師證書,一直學習,這樣更有核心競爭力與競爭資本。
Ⅳ SQL命令怎麼用
SQL語句:
通過SQL語句可以完成對資料庫、表、數據的操作,也就是我們本教程要學習的主要內容。
一條SQL語句類似這樣,它的含義是:從Users表中取出列名為UserName的數據。
一些重要的SQL命令:
SELECT – 從資料庫中提取數據
UPDATE – 更新資料庫中的數據
DELETE – 從資料庫中刪除數據
INSERT INTO – 向資料庫中插入新數據
CREATE DATABASE – 創建新資料庫
ALTER DATABASE – 修改資料庫
CREATE TABLE – 創建新表
ALTER TABLE – 變更資料庫表
DROP TABLE – 刪除表
CREATE INDEX – 創建索引
DROP INDEX – 刪除索引
-from shulanxt
Ⅳ sql資料庫入門
語音吧,我教你
Ⅵ 學習 SQLite 資料庫有哪些好的書籍值得推薦
SQLite權威指南
嵌入式資料庫SQLite的原理與應用
sqlite 資料庫入門 sql語言資料庫教程書籍 sql從入門到精通
Ⅶ plsql使用教程
plsql使用教程如下:
1.在這里配置好資料庫服務,之後就可以登錄了。
plsql優點
支持SQL:SQL是訪問資料庫的標准語言,通過SQL命令,用戶可以操縱資料庫中的數據。PL/SQL支持所有的SQL數據操縱命令、游標控制命令、事務控制命令、SQL函數、運算符和偽列。同時PL/SQL和SQL語言緊密集成,PL/SQL支持所有的SQL數據類型和NULL值。
支持面向對象編程:PL/SQL支持面向對象的編程,在PL/SQL中可以創建類型,可以對類型進行繼承,可以在子程序中重載方法等。
更好的性能:SQL是非過程語言,只能一條一條執行,而PL/SQL把一個PL/SQL塊統一進行編譯後執行,同時還可以把編譯好的PL/SQL塊存儲起來,以備重用,減少了應用程序和伺服器之間的通信時間,PL/SQL是快速而高效的。
可移植性:使用PL/SQL編寫的應用程序,可以移植到任何操作系統平台上的Oracle伺服器,同時還可以編寫可移植程序庫,在不同環境中重用。
安全性:可以通過存儲過程對客戶機和伺服器之間的應用程序邏輯進行分隔,這樣可以限制對Oracle資料庫的訪問,資料庫還可以授權和撤銷其他用戶訪問的能力。