① 如何使用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命令控制使用者的數據訪問許可權
② sql2000安裝教程
1、先把SQL解壓,找到「CHS_MSDE2000A」。
③ 如何學習SQL語句,才能達到精通的標准
SQL語言,資料庫基礎電子資料:
SQL語法大全中文版
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=148128
SQL語言案頭完全參考手冊
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=146159
SQL - A Practical Introction
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=148095
O'Reilly SQL Tuning
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=159156
O'Reilly The Art of SQL
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=163611
資料庫綜合資料庫
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=146238
資料庫設計指南
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=148082
Wrox Beginning Database Design
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=145206
SQL Puzzles and Answers
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=160834
SQL Queries for Mere Mortals
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=162978
SQL Puzzles and Answers
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=160834
Apress出版 The Berkeley DB Book
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=168290
The Handbook of Data Mining
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=176600
資料庫系統概論 浙江大學張軍教授主講(全32講)
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=154299
MS SQL Server電子資料:
Transact-SQL Cookbook
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=163150
SQL Server 2005寶典
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=149644
Microsoft SQL Server 2005完全參考
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=152872
O'Reilly Learning SQL on SQL Server 2005
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=163464
Beginning SQL Server 2005 Programming
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=153216
Pro SQL Server 2005 High Availability
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=162981
Beginning SQL Server 2005 Administration
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=152863
SQL Server 2005 Management and Administration
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=176845
SQL Server 2005 Unleashed
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=152874
Pro SQL Server 2005
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=152325
A Developer's Guide to SQL Server 2005
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=145565
Pro T-SQL 2005 Programmer's Guide
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=154245
Beginning Transact-SQL with SQL Server 2000 and 2005
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=152868
SQL Server 2005報表服務
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=148376
Wrox Professional SQL Server 2005 Programming
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=151270
Scaling Out SQL Server 2005權威指南
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=162785
Sql Server 2005 Performance Optimiztion and Tuning Handbood
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=165048
Microsoft SQL Server 2005編程傻瓜書
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=152864
Pro SQL Server 2005 Assemblies
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=151269
MS SQL Server 2005 Reporting Essentials
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=147862
SQL Server 2005工具箱內幕
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=152321
SQL Server 2005管理員手冊
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=152347
SQL Server 2005工具箱內幕
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=152321
SQL Server 2005數據挖掘
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=148099
Pro SQL Server 2005 Service Broker
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=159656
Pro SQL Server 2005 Replication
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=160606
Sql server 2005的XML最佳實施策略
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=152278
Microsoft SQL Server Black Book
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=163457
MS SQL Server2000 寶典
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=145853
SQL Server 2000存儲過程和XML編程
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=152873
SQL Server 2005高級數據分析視頻教程系列
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=162737
SQL Server 2005盛宴系列視頻 全52講
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=151642
MySQL電子資料:
MySQL寶典
http://bbs.topsage.com/dispbbs_122_159157_1.html
SQL for MySQL Developers
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=152862
MySQL教程
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=146824
Teach Yourself MySQL in 10 Minutes
http://bbs.topsage.com/dispbbs_122_174432_1.html
O'Reilly MySQL Pocket Reference 第二版 PDF
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=175014
MySQL 5 權威指南(第三版)
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=148867
MySQL培訓經典教程
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=146795
MySQL Cookbook 第二版
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=175972
The Definitive Guide to MySQL
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=175382
O'Reilly MySQL Pocket Reference 第二版
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=175014
MySQL Essential Skills
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=146749
MySQL Administrators Guide
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=146580
MySQL權威指南 中文版+英文版
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=148870
MySQL 4.1.0 中文參考手冊
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=148869
MySQL in a Nutshell
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=148868
Export MySQL
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=152865
MySQL and PHP from Scratch
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=152162
④ 怎麼開始學習sql2000
軟體入門與提高叢書——SQL Server 2000中文版入門與提高
http://book.jqcq.com/advanced_search_result.php?keywords=sql%202000
http://book.jqcq.com/proct/800530.html
本書針對Microsoft公司最新推出的大型關系資料庫管理系統SQL Server 2000編寫,循序漸進地介紹了從入門到深入掌握SQL Server 2000所需的各方面知識。內容包括SQL Server 2000的新特點;安裝、配置SQL Server 2000的方法;SQL Server 2000日常管理方法和技巧;Transact-SQL語言程序設計;存儲過程,觸發器等資料庫對象的設計方法和使用策略;SQL Server 2000分布式管理、自動管理和數據輿服務等高級應用;應用高級程序開發語言開發基於SQL Server 2000的應用程序;使用Web向導快速生成HTML頁面。
本書介紹了大量SQL Server的使用經驗,對使用中的重點、難點進行了專門的講解,是一本有效實用的入門指南。本書的提高部分,內容有一定深度,對有SQL Server使用基礎但希望進一步提高的讀者來說也有一定幫助。
目錄: 第1章 SQL Server 2000概述
1.1 SQL Server的發展簡史
1.2 SQL Server 2000的特點
1.3 SQL Server 2000的體系結構
1.4 SQL Server 2000的新特點
1.5 本章小結
第2章 關系資料庫基礎
2.1 關系資料庫的基本概念
2.2 SQL Server的資料庫對象
2.3 SQL和Transact-SQL
2.4 本章小結
第3章 安裝SQL Server 2000
3.1 SQL Server實例
3.2 安裝SQL Server 2000所需的軟硬體配置
3.3 安裝SQL Server 2000必須注意的若幹事項
3.4 遠程安裝SQL Server 2000
3.5 本地安裝SQL Server 2000軟體
3.6 升級到SQL Server 2000
3.7 企業管理器介紹
3.8 本章小結
第4章 SQL Server的系統組成
4.1 SQL Server 2000的系統資料庫
4.2 SQL Server 2000的系統表
4.3 SQL Server 2000的系統存儲過程
4.4 SQL Server 2000的示例資料庫
4.5 本章小結
第5章 SQL Server伺服器管理與使用
5.1 管理SQL Server伺服器組
5.2 SQL Server伺服器的連接和注冊
5.3 注冊SQL Server伺服器的注意事項
5.4 配置SQL Server伺服器
5.5 啟動和關閉SQL Server服務
5.6 本章小結
第6章 查詢分析器使用方法
6.1 登錄到伺服器
6.2 查詢分析器的菜單命令
6.3 配置查詢分析器
6.4 對象瀏覽器的使用
6.5 模板的使用
6.6 本章小結
第7章 SQL Server資料庫管理
7.1 文件和文件組
7.2 創建資料庫
7.3 查看資料庫的信息
7.4 管理資料庫
7.5 刪除SQL Server資料庫
7.6 資料庫的存儲結構
7.7 本章小結
第8章 SQL Server的命名規則
8.1 SQL Server的標識符
8.2 對象命名規則
8.3 關於實例的命名習慣
8.4 本章小結
第9章 表的管理和使用
9.1 創建表
9.2 刪除表格
9.3 修改表格定義
9.4 查看錶屬性
9.5 表格重命名
9.6 索引
9.7 本章小結
第10章 Transact-SQL查詢基礎
10.1 簡單的SELECT查詢
10.2 使用TOP關鍵字
10.3 使用DISTINCT關鍵字
10.4 使用計算列
10.5 操作查詢的列名
10.6 使用WHERE子句
10.7 使用LIKE子句進行模糊查詢
10.8 使用ORDER BY給數據排序
10.9 本章小結
第11章 編輯維護表格數據
11.1 使用INSERT添加表格數據
11.2 使用RPDATE實現數據的修改
11.3 使用DELETE刪除表中數據
11.4 使用TRUNCATE TABLE清空表格
11.5 使用企業管理器管理表格數據
11.6 本章小結
第12章 視圖
12.1 視圖的優點
12.2 視圖的創建與刪除
12.3 修改視圖的定義
12.4 瀏覽視圖信息
12.5 使用視圖來簡化查詢
12.6 在視圖上使用INSERT語句
12.7 使用UPDATE更新視圖中的數據
12.8 刪除視圖中的數據
12.9 WITH CHECK OPTION的視圖
12.10 對視圖進行加密
12.11 使用視圖加強數據安全
12.12 本章小結
第13章 SQL Server的數據類型
13.1 3種新的數據類型
13.2 整數數據類型
13.3 貨幣數據類型
13.4 數字數據類型
13.5 浮點數據類型
13.6 日期/時間數據類型
13.7 字元數據類型
13.8 二進制數據類型
13.9 統一碼數據類型
13.10 圖像、文本數據的使用
13.11 sql_variant數據類型及使用
13.12 table數據類型及使用
13.13 用戶自定義數據類型及使用
13.14 本章小結
第14章 Transact-SQL高級查詢
14.1 多表查詢和笛卡兒乘積
14.2 使用表格別名
14.3 使用UNION子句
14.4 使用統計函數
14.5 使用GROUP BY子句
14.6 使用COMPUTE和COMPUTE BY子句
14.7 使用嵌套查詢
14.8 本章小結
第15章 設計數據完整性
15.1 數據完整性基礎
15.2 使用約束實施數據完整性
15.3 使用規則
15.4 使用默認值
15.5 使用IDENTITY列
15.6 本章小結
第16章 SQL Server編程結構
16.1 程序注釋語句
16.2 批處理
16.3 局部變數
16.4 全局變數
16.5 IF…ELSE條件判斷結構
16.6 BEGIN…END語句塊
16.7 WHILE循壞結構
16.8 CASE
16.9 RETURN
16.10 游標
16.11 事務
16.12 本章小結
第17章 SQL Server函數
17.1 SQL Server的數學函數
17.2 SQL Server的字元串函數
17.3 SQL Server的日期函數
17.4 SQL Server的系統函數
17.5 其他常用函數
17.6 設置查詢屬性
17.7 用戶自定義函數
17.8 本章小結
第18章 存儲過程與觸發器
18.1 存儲過程概述
18.2 存儲過程的使用和管理
18.3 觸發器概述
18.4 觸發器使用與管理
18.5 觸發器的特殊功能
18.6 利用存儲過程和觸發器維護數據完整性
18.7 本章小結
第19章 管理SQL Server的安全性
19.1 SQL Server的安全性機制
19.2 SQL Server標准登錄模式
19.3 SQL Server集成登錄模式
19.4 使用企業管理器建立登錄賬戶
19.5 SQL Server資料庫安全性
19.6 角色
19.7 許可權
19.8 本章小結
第20章 備份與恢復
20.1 資料庫備份概念
20.2 資料庫備份策略與規劃
20.3 執行數據備份與恢復
20.4 本章小結
第21章 SQL Server的數據傳輸服務
21.1 DTS概述
21.2 數據轉換服務導入向導和數據轉換服務導出向導
21.3 使用DTS設計器
21.4 本章小結
第22章 SQL Server自動化管理
22.1 SQL Server自動化管理基礎
22.2 使用SQL郵件
22.3 創建操作員
22.4 設置警報
22.5 創建作業
22.6 本章小結
第23章 SQL Server分布式數據管理
23.1 復制技術概述
23.2 配置出版伺服器
23.3 創建出版物
23.4 設計訂閱
23.5 本章小結
第24章 通過Web助手發布數據
24.1 SQL Server與Web頁的交互
24.2 使用SQL Server Web助手建立Web頁
24.3 本章小結
第25章 SQL Server 2000應用編程
25.1 SQL Server 2000應用編程概述
25.2 ADO概述
25.3 SQL Server 2000與ADO編程舉例
25.4 SQL-DMO概述
25.5 使用SQL-DMO對象
25.6 SQL-DMO應用舉例
25.7 本章小結
你得採納啊!
⑤ 怎樣學習sql
先入門:找一本入門的書,多操作,(首先肯定自己要裝個資料庫)多練習,可以先看書上的例子!
等到熟練以後可以看一些深一點的書籍,記住要多練習
⑥ SQL進階教程
網路網盤地址:https://pan..com/s/1cZIHvO43AJRhaXDxmCfaMg
解壓碼:rzy2
封面圖片
⑦ SQL語法:一些最重要的 SQL 命令
SQL語法
資料庫表
一個資料庫通常包含一個或多個表。每個表由一個名字標識(例如:Websites),表包含帶有數據的記錄(行)。
在本教程中,我們在 MySQL 的 RUNOOB 資料庫中中創建了 Websites 表,用於存儲網站記錄。
我們可以通過以下命令查看 Websites 表的數據:
mysqluseRUNOOB;;QueryOK,0rowsaffected(0.00sec)mysqlSELECT*FROMWebsites;+----+--------------+---------------------------+-------+---------+|id|name|url|alexa|country|+----+--------------+---------------------------+-------+---------+|1|Google|
解析
use RUNOOB;命令用於選擇資料庫。
set names utf8;命令用於設置使用的字元集。
SELECT * FROM Websites;讀取數據表的信息。
上面的表包含五條記錄(每一條對應一個網站信息)和5個列(id、name、url、alexa 和country)。
SQL 語句
您需要在資料庫上執行簡仔的大部分工作都由 SQL 語句完成。
下面的 SQL 語句從 Websites 表中選取所有記錄:
實盯咐昌例
SELECT * FROM Websites;
在本教程中,我們將為您講解各種不同的 SQL 語句。
請記住...
SQL 對大小寫不敏感:SELECT 與 select 是相同的。
SQL 語句後面的分號?
某些資料庫系統要求在每條 SQL 語句的末端使用分號。
分號是在資料庫系統中分隔每條 SQL 語句的標准方法,這樣就可以在對伺服器的相同請求中執行一條以上的 SQL 語句。
在本教程中,我們將在每條 SQL 語句的末端使用分號。
一些最重要的 SQL 命令
SELECT- 從資料庫中提取數據
UPDATE- 更新資料庫中的數據
DELETE- 從資料庫中刪除數據
INSERT INTO- 向資料庫中插入新數據
CREATE DATABASE- 創建新資料庫
ALTER DATABASE- 修改資料庫
CREATE TABLE- 創建新表
ALTER TABLE- 變更(改變)資料庫表
DROP TABLE- 刪除表
CREATE INDEX- 創建索引(搜索鍵)凱扒
DROP INDEX- 刪除索引
⑧ sql入門新手教程是什麼
在關系資料庫實現過程中,第一步是建立關系模式,定義基本表的結構,即該關系模式是哪些屬性組成的,每一屬性的數據類型及數據可能的長度、是否允許為空值以及其它完整性約束條件。
定義基本表:
CREATE TABLE([列級完整性約束條件]
[,[列級完整性約束條件]]…
[,[列級完整性約束條件]]
[,表列級完整性約束條件]);
說明:
1、中是SQL語句必須定義的部分,[]中是SQL語句可選擇的部分,可以省略的。
2、CREATE TABLE表示是SQL的關鍵字,指示本SQL語句的功能。
3、是所要定義的基本表的名稱,一個表可以由一個或若干個屬性(列)組成,但至少有一個屬性,不允許一個屬性都沒有的表,這樣不是空表的含義。
多個屬性定義由圓括弧指示其邊界,通過逗號把各個屬性定義分隔開,各個屬性名稱互不相同,可以採用任意順序排列,一般按照實體或聯系定義屬性的順序排列,關鍵字屬性組在最前面,這樣容易區分,也防止遺漏定義的屬性。
4、每個屬性由列名、數據類型、該列的多個完整性約束條件組成。其中列名一般為屬性的英文名縮寫,在Microsoft Access 2010中也可以採用中文,建議不要這樣做,編程開發時不方便。
5、完整性約束條件,分為列級的完整性約束和表級的完整性約束,如果完整性約束條件涉及該表的多個屬性列,則必須定義在表級上,否則既可以定義在列級也可以定義在表級。
這些完整性約束條件被存入系統的數據字典中,當用戶操作表中數據時由RDBMS自動檢查該操作是否違背這些完整性約束,如果違背則RDBMS拒絕本次操作;
這樣保持了資料庫狀態的正確性和完整性,不需要用戶提供檢查,提高了編程的效率,降低了編程難度。列級的完整性通常為主關鍵字的定義、是否允許為空。表級的完整性約束條件一般為外碼定義。
數據操縱
數據操縱語言是完成數據操作的命令,一般分為兩種類型的數據操縱。
1、數據檢索(常稱為查詢):尋找所需的具體數據。
2、數據修改:插入、刪除和更新數據。
數據操縱語言一般由 INSERT(插入)、 DELETE(刪除)、 UPDATE(更新)、 SELECT(檢索,又稱查詢)等組成。由於 SELECT經常使用,所以一般將它稱為查詢(檢索)語言並單獨出現。