第一章 SQL語句簡介
內容摘要 Transact-SQL編程語言; Transact-SQL的語句類型; Transact-SQL的語法元素;
SQL Query Analyzer的基本功能;
如何使用SQL Query Analyzer中的對象瀏覽工具;
如何使用SQL Query Analyzer中的模板;
如何使用osql命令行工具;
使用不同的方法執(zhí)行Transact-SQL語句;
使用SELECT語句從表中查詢數(shù)據(jù);
通過在WHERE子句中指定不同的搜索條件過濾數(shù)據(jù);
格式化結果集;
查詢是如何進行的;
進行數(shù)據(jù)查詢時,影響性能的幾個注意事項。
考點提示:
osql命令行用法;
消除重復的行;
改變字段的名字。
1.1 什么是Transact-SQL編程語言
Transact-SQL 語言是在微軟的SQL Server中使用的編程語言,它是一個數(shù)據(jù)定義、操作和控制語言。
美國國家標準協(xié)會(ANSI)和國際標準組織(ISO)制訂了SQL語言的標準。SQL-92是由ANSI和ISO在1992年發(fā)布的SQL標準,通過使用Transact-SQL,微軟SQLServer2000支持SQL-92入口級別的實現(xiàn)。同ANSI-SQL兼容的Transact-SQL語句,能夠在與ANSI-SQL兼容的任何入口級產(chǎn)品中運行。Transact-SQL同時還包含幾種擴展用以增強其性能。
1.2 Transact-SQL語句的類型
查詢就是獲取存儲在SQL Server中的數(shù)據(jù)。所有的查詢都使用SELECT語句為用戶提供一個結果集。一個結果集是運行SELECT語句后所得到的一個表數(shù)據(jù)集,包含行和列。 編寫和運行Transact-SQL語句是向SQL Server發(fā)出查詢申請的一種方法。在編寫這些語句時,你將會用到下列類型的Transact-SQL語句: 數(shù)據(jù)定義語句(DDL),允許你在數(shù)據(jù)庫中創(chuàng)建對象; 數(shù)據(jù)控制語句(DCL),允許你決定誰能查看或更改數(shù)據(jù); 數(shù)據(jù)操作語句(DML),允許你查詢或更改數(shù)據(jù)。
本課程主要講述的是數(shù)據(jù)操作語言(DML)的語句。 1.2.1 數(shù)據(jù)定義語言(DDL)
數(shù)據(jù)定義語句(DDL)通過創(chuàng)建數(shù)據(jù)庫、表和用戶自定義數(shù)據(jù)類型來定義一個數(shù)據(jù)庫。你也可以使用DDL語句管理數(shù)據(jù)庫對象。DDL語句包括CREATE 、ALTER和 DROP 。 默認情況下,只有sysadmin、dbcreator、db_owner或db_ddladmin預定義角色(role)的成員才能執(zhí)行DDL語句。一般不推薦其他角色的用戶使用DDL語句。如果不同的用戶在數(shù)據(jù)庫中創(chuàng)建了他們自己的對象,那么每個對象的所有者都需要給予其他用戶使用這些對象的權限。這將給管理工作帶來沉重的負擔,所以應當盡量避免發(fā)生這種情況。通過限制用戶使用語句的權限,還能夠避免對象所有權帶來的問題。當對象所有者被從數(shù)據(jù)庫刪除,或者一個存儲過程、視圖的所有者并不擁有內部數(shù)據(jù)表的使用權的時候將導致這種問題。
下面的腳本在數(shù)據(jù)庫Northwind中創(chuàng)建一個叫customer的表。表中包含cust_id, company、contact和phone字段。
USE northwind
CTRATE TABLE customer
(cust_id int, company varchar(40), contact varchar(30), phone char(12))
GO