【正文】
寫出添加該列的SQL語句。, NULLCREATE TABLE tblCustomerInfo( 代號(hào) integer IDENTITY(10001,5) NOT NULL, 名稱 varchar(80) NOT NULL, 電話 type_TelphoneNum , 傳真 type_TelphoneNum ,備注 varchar(2000) NULL )ALTER TABLE tblCustomerInfo ADD 手機(jī) type_TelphoneNum2 你需要運(yùn)行一個(gè)使用SQL你想把每個(gè)學(xué)生的信息按照身份證號(hào)碼的順序物理地存放在數(shù)據(jù)庫文件中。答:D4. 在數(shù)據(jù)庫中應(yīng)該將哪種約束添加到Country字段中,以確保你的印度尼西亞子公司只與其他印度尼西亞公司進(jìn)行貿(mào)易。你的子公司遷移到了馬來群島與其他幾個(gè)東亞國(guó)家做生意。7. 在學(xué)生管理系統(tǒng)中已經(jīng)創(chuàng)建了學(xué)生信息表tblStudInfo和系信息表tblDeptInfo,而且這兩個(gè)表都存放了不少數(shù)據(jù)。答:可以使用ALTER TABLE語句來創(chuàng)建該約束,ALTER TABLE tblStudInfo ADD CONSTRAINT FK_DeptIDFOREIGN KEY (DeptID) REFERENCES tblDeptInfo(DeptID)8. 某公司使用數(shù)據(jù)庫進(jìn)行內(nèi)部管理:表tblEmployees存儲(chǔ)雇員的代號(hào)(4位字符,唯一)、身份證號(hào)碼(18個(gè)字符)、名字(最長(zhǎng)20個(gè)字符)和工資等信息;表tblDepartments存儲(chǔ)部門的部門號(hào)(2個(gè)字符,唯一)、部門名稱(30個(gè)字符)等信息;表tblWork每一行表示某雇員在某部門工作過及其開始工作時(shí)間和備注。在Orders表中使用FOREIGN KEY約束來引用Customers表。 = 39。 + SUBSTRING(CONVERT(varchar(10),SerialNumber),3,3) + 39。 = 39。 + SUBSTRING(CONVERT(varchar(10),SerialNumber),3,4) + 39。 = 39。 + SUBSTRING(CONVERT(varchar(10),SerialNumber),3,3) + 39。 = 39。 + SUBSTRING(CONVERT(varchar(10),SerialNumber),4,3) + 39。數(shù)據(jù)控制語言(DCL)語句能夠決定誰能查看和修改數(shù)據(jù)。當(dāng)執(zhí)行SET a=a+1語句時(shí),會(huì)因?yàn)樽兞縜沒有定義而產(chǎn)生錯(cuò)誤。答:select year(TempDate) from tblTempwhere TempID % 2 = 0DECLARE Temp integerSELECT Temp = max(TempID)FROM tblTempSELECT * FROM tblTempWHERE TempID = Temp第6章 使用TransactSQL查詢工具3. 一個(gè)腳本有如下代碼:CREATE TABLE Employees 第一條語句( EmployeeID int IDENTITY(10001,1) PRIMARY KEY, Name varchar(40) not null, Birthday datetime null)SELECT * FROM Employees 第二條語句CREATE DEFAULT phone_no_default 第三條語句 AS 39。 第五條語句在執(zhí)行過程中會(huì)因?yàn)槿鄙貵O語句而出現(xiàn)錯(cuò)誤,下面哪些是必須的?A. 在“第一條語句”和“第二條語句”之間添加GO語句B. 在“第二條語句”和“第三條語句”之間添加GO語句C. 在“第三條語句”和“第四條語句”之間添加GO語句D. 在“第四條語句”和“第五條語句”之間添加GO語句答:B, C2 為了捕獲文本文件中的查詢結(jié)果,在批處理文件中最好使用什么查詢工具?為什么?答:最好使用osql命令行實(shí)用工具執(zhí)行查詢,然后通過使用命令行選項(xiàng)–o 。2 TransactSQL批處理和TransactSQL腳本有何不同?答:TransactSQL批處理是由GO語句描繪的一系列語句,這些語句將立即被分析和執(zhí)行。假設(shè)您在編寫一個(gè)商場(chǎng)管理信息系統(tǒng)的安裝軟件,該安裝軟件要在SQL Server 2000服務(wù)器上創(chuàng)建數(shù)據(jù)庫和表等對(duì)象。答:企業(yè)管理器使用向?qū)У姆绞剑容^簡(jiǎn)單和直觀,適合初學(xué)和維護(hù)數(shù)據(jù)庫時(shí)使用。在開發(fā)階段,您可以使用TransactSQL語句在開發(fā)環(huán)境中創(chuàng)建數(shù)據(jù)庫和表等對(duì)象,并保存這些語句到文本文件中,以后在實(shí)際運(yùn)行環(huán)境中只要運(yùn)行這些命令行就可以重新創(chuàng)建數(shù)據(jù)庫和表等對(duì)象。職員信息表tblEmployees包含列Name和列HireDate,下面哪些語句能完成該功能?A、 SELECT Name, HireDate FROM tblEmployeesB、 SELECT Name, HireDate FROM tblEmployees WHERE HireDate =’20010101’ OR ‘20011231’C、 SELECT Name, HireDate FROM tblEmployees WHERE HireDate BETWEEN ’20001231’ AND ‘20020101’D、 SELECT Name, HireDate FROM tblEmployees WHERE HireDate DATEPART(yy, HireDate) =2001答:D2. 在SQL Server 2000 創(chuàng)建了定單表,創(chuàng)建語句如下: CREATE TABLE 定單表 ( 定單代號(hào) int IDENTITY(1,1) PRIMARY KEY, 客戶代號(hào) int not null, 雇員代號(hào) int not null, 經(jīng)手該筆業(yè)務(wù)的雇員的代號(hào) 定單日期 datetime not null, 銷售金額 money not null, 備注 varchar(200) null ) 你需要獲得定單信息列表,包括雇員代號(hào)、銷售金額和定單日期。WHERE state = 39。 OR state = …Or, use a WHERE clause that includes the IN keyword:WHERE state in (39。, 39。)b) 在結(jié)果集中,如何產(chǎn)生一個(gè)沒有重復(fù)州的列表? 答:在SELECT語句中使用DISTINCT關(guān)鍵字。列“成績(jī)”的值為NULL表示該學(xué)生缺考這門課。 AND 成績(jī) IS NULL5. 雇員信息表包含列“雇員代號(hào)”、列“雇員姓名”、列“出生日期”、列“基本工資”、列“津貼”,總工資=基本工資+津貼,請(qǐng)用SELECT語句查詢1972年以后出生的雇員的姓名、出生日期和總工資,按總工資遞減的順序顯示。使用者在網(wǎng)頁輸入教職工的部分姓名,網(wǎng)頁就返回匹配該查詢條件的所有教職工的姓名和電話號(hào)碼。)答:DECLARE SearchCondition varchar(200) DECLARE i smallint,Count smallintSET SearchCondition = 39。 SET i = i + 1 ENDSELECT * FROM tblTelphoneWHERE 姓名 like SearchCondition第8章 數(shù)據(jù)分組與匯總4. 你在SQL Server 2000數(shù)據(jù)庫中創(chuàng)建了定單表,其創(chuàng)建語句如下: CREATE TABLE 定單表 ( 定單號(hào) int IDENTITY(1,1) PRIMARY KEY, 雇員代號(hào) int NOT NULL, 地區(qū)代號(hào) int NOT NULL, 訂購(gòu)日期 datetime NOT NULL, 訂購(gòu)金額 money NOT NULL ) 銷售經(jīng)理想要獲得總的銷售金額和按地區(qū)分組的總銷售金額。GROUP BY和HAVING子句只能提供一種級(jí)別的匯總(或分組)。3 你的經(jīng)理要求你把包含從問題3得到的所有數(shù)據(jù)的文件提供給另外一個(gè)開發(fā)小組使用,此開發(fā)小組負(fù)責(zé)報(bào)表生成和圖形化工具。應(yīng)該使用GROUP BY子句和CUBE或ROLLUP運(yùn)算符提供標(biāo)準(zhǔn)關(guān)系格式的數(shù)據(jù),這樣其他客戶比較容易使用。GROUP BY 學(xué)號(hào)3 接上題,現(xiàn)在想評(píng)定該班級(jí)第二學(xué)年(包括第三學(xué)期和第四學(xué)期)的優(yōu)秀學(xué)生獎(jiǎng)學(xué)金,要求從該班級(jí)選出平均成績(jī)排前5名的同學(xué)。 OR 學(xué)期=39。答:SELECT 學(xué)號(hào), AVG(成績(jī)) AS 三年平均成績(jī)FROM 學(xué)生成績(jī)表WHERE 學(xué)期=39。 OR 學(xué)期=39。 OR 學(xué)期=39。GROUP BY 學(xué)號(hào) HAVING AVG(成績(jī))=90 AND MIN(成績(jī))=60ORDER BY 三年平均成績(jī) DESC3 查看在SELECT語句中使用GROUP BY子句和CUBE運(yùn)算符的結(jié)果。如果是一個(gè)匯總行,通過GROUPING函數(shù)產(chǎn)生的列值會(huì)出現(xiàn)數(shù)字1。第一個(gè)問題可以用SELECT TOP 100…ORDER BY…DESC語句,這樣會(huì)使銷售量最高的列在上面。09/01/200339。09/01/200339。這個(gè)數(shù)據(jù)庫有下列數(shù)據(jù)表。病人和醫(yī)生的關(guān)系屬于多對(duì)多的關(guān)系。c) 如何查詢具有相同專業(yè)的醫(yī)生?答:需要把醫(yī)生表進(jìn)行自聯(lián)接。再寫從病人表中查詢病人姓名和電話號(hào)碼的查詢,使用操作符UNION合并兩個(gè)查詢。請(qǐng)用SELECT語句列出所有學(xué)生的學(xué)號(hào)、姓名和所在的系名。5. 接上題,請(qǐng)用SELECT語句統(tǒng)計(jì)并顯示每個(gè)系的系號(hào)、系名以及每個(gè)系學(xué)生的人數(shù)。請(qǐng)用SELECT語句列出系號(hào)為‘12’的系的所有人員的姓名和出生日期(包括學(xué)生和教師)。1239。請(qǐng)用“相關(guān)子查詢作為表達(dá)式”方法寫出SELECT語句,來統(tǒng)計(jì)并顯示每個(gè)系的系號(hào)、系名以及每個(gè)系學(xué)生的人數(shù)。=(SELECT count(*) FROM 學(xué)生信息表ASa WHERE = )FROM 系信息表 AS b2. 接上題,使用派生表方法寫出SELECT語句,來統(tǒng)計(jì)并顯示每個(gè)系的系號(hào)、系名以及每個(gè)系學(xué)生的人數(shù)。答:SELECT 雇員姓名FROM 雇員表 AS aWHERE NOT EXISTS( SELECT FROM 部門表 AS b WHERE NOT IN ( SELECT FROM 任職表 AS c WHERE =) )5. 實(shí)驗(yàn)方案Duluth Mutual Life健康保健組織有一個(gè)用于跟蹤醫(yī)生和他們的病人的信息的數(shù)據(jù)庫。用WHERE子句把子 查詢的結(jié)果同每個(gè)病例的入院治療日期進(jìn)行比較。第11章 修改數(shù)據(jù)1. 你在SQL Server 2000數(shù)據(jù)庫中創(chuàng)建了定單表: CREATE TABLE 定單表 ( 定單號(hào) int IDENTITY(100001,1) PRIMARY KEY, 雇員代號(hào) int NOT NULL, 客戶代號(hào) int NOT NULL, 訂購(gòu)日期 datetime NOT NULL, 訂購(gòu)金額 money NOT NULL ) 由于業(yè)務(wù)量很大,定單表已經(jīng)存放了大量的數(shù)據(jù)。假設(shè)成立了一個(gè)新的系,“系號(hào)”為“18”,“系名”為“生命科學(xué)系”,“系主任”和“系簡(jiǎn)介”為空值。,39。,39。提示:使用局部變量‘系號(hào)’。0312000139。1982010139。,39。,( SELECT 系號(hào)=系號(hào) FROM 系信息表 WHERE 系名=39。計(jì)算機(jī)科學(xué)系39。答:DECLARE 系號(hào) varchar(2),姓名 varchar(20), 新備注 varchar(200)BEGIN TRANSACTION SELECT 系號(hào)=系號(hào),姓名=姓名 FROM 學(xué)生信息表 WHERE 學(xué)號(hào)=39。+姓名+39。39。錯(cuò)誤,不能更新學(xué)生備注!39。錯(cuò)誤,不能更新系簡(jiǎn)介!39。所有其它列都允許空值或存在為它們產(chǎn)生