數(shù)據(jù)查詢與表的創(chuàng)建作業(yè)優(yōu)質(zhì)資料_第1頁(yè)
數(shù)據(jù)查詢與表的創(chuàng)建作業(yè)優(yōu)質(zhì)資料_第2頁(yè)
數(shù)據(jù)查詢與表的創(chuàng)建作業(yè)優(yōu)質(zhì)資料_第3頁(yè)
數(shù)據(jù)查詢與表的創(chuàng)建作業(yè)優(yōu)質(zhì)資料_第4頁(yè)
數(shù)據(jù)查詢與表的創(chuàng)建作業(yè)優(yōu)質(zhì)資料_第5頁(yè)
已閱讀5頁(yè),還剩30頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

數(shù)據(jù)查詢與表的創(chuàng)建作業(yè)優(yōu)質(zhì)資料(可以直接使用,可編輯優(yōu)質(zhì)資料,歡迎下載)

數(shù)據(jù)查詢與表的創(chuàng)建作業(yè)優(yōu)質(zhì)資料(可以直接使用,可編輯優(yōu)質(zhì)資料,歡迎下載)圖1用兩種方法建立一個(gè)新數(shù)據(jù)庫(kù)HRM(也可任意取名),如上圖所示(圖1);鼠標(biāo)右擊數(shù)據(jù)庫(kù)HRM-數(shù)據(jù)查詢,然后輸入如下SQLServer語(yǔ)句:DepartmentIDCHAR(3)NOTNULLPRIMARYKEY,DepartmentNameCHAR(20)NOTNULL,NoteTEXT)CREATETABLEEmployee(EmployeeIDCHAR(6)NOTNULLPRIMARYKEY,NAMECHAR(10)NOTNULL,BirthdayDatetimeNOTNULL,SEXchar(2)NOTNULL,AddressCHAR(20),ZipCHAR(6),PhoneNumberCHAR(12),EmailAddressCHAR(30),DepartmentIDCHAR(3)NOTNULLREFERENCESDepartments(DepartmentID)ONDELETENOACTION)CREATETABLESalary(EmployeeIDCHAR(6)NOTNULLREFERENCESEmployee(EmployeeID)ONDELETENOACTION,IncomeFLOAT(8)NOTNULL,OutComeFLOAT(8)NOTNULL)在數(shù)據(jù)庫(kù)HRM中,建立如下所示的三個(gè)表:Employee表,Departments表,Salary表對(duì)上節(jié)建立的表輸入數(shù)據(jù):Departments表:Employee表Salary表如下圖:練習(xí)下面簡(jiǎn)單的查詢語(yǔ)句:查詢每個(gè)雇員的所有信息:輸入語(yǔ)句select*fromEmployeeb)查詢每個(gè)雇員的地址和SELECTPhoneNumber,AddressfromEmployeec)查詢EmployeeID為000001的雇員的地址和SELECTPhoneNumber,AddressfromEmployeewhereEmployeeID=1001d)查詢女雇員地址和,并用AS子句將結(jié)果中各列的標(biāo)題分別指定為“地址”和“”。SELECT=PhoneNumber,地址=AddressfromEmployeewhereSEX=0e)計(jì)算每個(gè)雇員的實(shí)際收入。select實(shí)際收入=Income-OutComefromSalaryselectDepartmentIDfromEmployeewhereNAMElike'王%'f)找出所有姓王的雇員的部門號(hào)3查詢每個(gè)雇員的情況及工資情況(工資=Income-Outcome)selectIncome-outcome,Employee.*fromEmployee,salarywhereEmployee.EmployeeID=Salary.EmployeeID查詢財(cái)務(wù)部工資在2200元以上的雇員姓名及工資情況selectName,Income-outcomeas'工資',DepartmentNamefromDepartments,Salary,EmployeewhereDepartments.DepartmentID=Employee.DepartmentIDandSalary.EmployeeID=Employee.EmployeeIDandDepartmentName='財(cái)務(wù)部'GroupbyDepartmentName,Income,Outcome,Employee.NAMEhaving(Income-outcome)>2200查詢?nèi)肆Y源部雇員的最高和最低工資selectMAX(Income-Outcome)as"最高工資",min(Income-Outcome)as"最低工資"fromSalarywhereEmployeeIDlike'3%'將各雇員的情況按工資由低到高排列selectincome,employee.*fromemployee,salarywheresalary.employeeid=employee.employeeidorderbyincomeasc求各部門的雇員數(shù)selectdepartments.departmentname,count(*)as'員工數(shù)'fromemployee,departmentswhereemployee.departmentid=departments.departmentidgroupbydepartments.departmentnamef找出所有在財(cái)務(wù)部和人力資源部工作的雇員的編號(hào)selectDepartmentName,EmployeeIDfromDepartments,EmployeewhereDepartments.DepartmentID=Employee.DepartmentIDgroupbyDepartmentName,EmployeeIDhavingDepartmentName='財(cái)務(wù)部'orDepartmentName='人力資源部'g.和統(tǒng)計(jì)人力資源部工資在2500以上雇員的人數(shù)selectcount(*)as'人力資源部以上的人數(shù)'fromdepartments,employee,salarywheredepartments.departmentid=employee.departmentidandsalary.employeeid=employee.departmentidanddepartmentnamein('人力資源部')andincome>=2500h.求財(cái)務(wù)部雇員的總?cè)藬?shù)selectcount(*)as'財(cái)務(wù)部員工人數(shù)'fromemployeewheredepartmentidin('1')i求財(cái)務(wù)部雇員的平均工資selectAvg(Income-outcome)as"平均工資",DepartmentNamefromDepartments,Salary,EmployeewhereDepartments.DepartmentID=Employee.DepartmentIDandSalary.EmployeeID=Employee.EmployeeIDgroupbyDepartmentName,Departments.DepartmentIDhavingDepartments.DepartmentName='財(cái)務(wù)部'j查找比所有財(cái)務(wù)部的雇員工資都高的雇員的姓名正確的為:selectnamefromemployee,salarywhereemployee.employeeid=salary.employeeidandincome>all(selectincomefromsalarywhereemployeeidin(selectemployeeidfromemployee,departmentswheredepartments.departmentid=employee.departmentidanddepartmentname='財(cái)務(wù)部'))k查找財(cái)務(wù)部年齡不低于研發(fā)部所有雇員年齡的雇員的姓名selectnamefromemployee,departmentswherebirthday<all(selectbirthdayfromemployeewheredepartmentid='2')anddepartments.departmentid=employee.departmentidandemployee.departmentid='1'l查找在財(cái)務(wù)部工作的雇員的情況:詞法錯(cuò)誤應(yīng)為:selectemployee.*fromemployee,departmentswheredepartments.departmentid=employee.departmentidandemployee.departmentid='1'實(shí)驗(yàn)一創(chuàng)建數(shù)據(jù)庫(kù)和表1、目的和要求(1)了解SQLServer數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)。(2)了解表的結(jié)構(gòu)特點(diǎn)(3)了解SQLServer的基本數(shù)據(jù)類型。2、實(shí)驗(yàn)內(nèi)容(1)實(shí)驗(yàn)題目①創(chuàng)建一個(gè)新的數(shù)據(jù)庫(kù)。創(chuàng)建用于企業(yè)管理的員工數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)名稱為YGGL。②在創(chuàng)建好的數(shù)據(jù)庫(kù)YGGL中創(chuàng)建數(shù)據(jù)表??紤]到數(shù)據(jù)庫(kù)YGGL中包含員工的信息、部分信息以及員工的薪水信息,所以數(shù)據(jù)庫(kù)YGGL應(yīng)該包含三個(gè)表:Employees(員工自然信息)表、Departments(部門信息)表和Salary(員工薪水情況)表。3、實(shí)驗(yàn)步驟(1)在對(duì)象資源管理器中創(chuàng)建數(shù)據(jù)庫(kù)YGGL。(2)刪除數(shù)據(jù)庫(kù)YGGL。①界面操作刪除數(shù)據(jù)庫(kù)刪除數(shù)據(jù)庫(kù)YGGL時(shí),右鍵單擊數(shù)據(jù)庫(kù),彈出菜單點(diǎn)擊“刪除”,彈出“刪除對(duì)象”窗口,確認(rèn)刪除。②T-SQL語(yǔ)句刪除數(shù)據(jù)庫(kù)在代碼空白處右擊鼠標(biāo),彈出菜單選擇“執(zhí)行(X)”或者鍵盤“F5”運(yùn)行代碼,在下方會(huì)顯示運(yùn)行成功。此時(shí)在左側(cè)“對(duì)象資管理器”中右鍵點(diǎn)擊“數(shù)據(jù)庫(kù)”選擇刷新數(shù)據(jù)庫(kù),會(huì)發(fā)現(xiàn)數(shù)據(jù)庫(kù)“PX”已經(jīng)刪除。注意:當(dāng)執(zhí)行過(guò)一遍代碼時(shí),也就是執(zhí)行了T-SQL語(yǔ)句刪除數(shù)據(jù)庫(kù)后再次執(zhí)行代碼會(huì)出現(xiàn)這樣的警告。原因是由于執(zhí)行過(guò)一遍T-SQL語(yǔ)句,進(jìn)行操作的數(shù)據(jù)庫(kù)已經(jīng)被刪除,不存在。(3)使用T-SQL語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)YGGL。新建查詢后,在窗口中輸入上面代碼,右鍵代碼空白處執(zhí)行。然后在“對(duì)象資源管理器”中查看。如果“數(shù)據(jù)庫(kù)”列表中并未列出YGGL數(shù)據(jù)庫(kù),則單擊右鍵“數(shù)據(jù)庫(kù)”,選擇“刷新”選項(xiàng),“數(shù)據(jù)庫(kù)”列表中就會(huì)出現(xiàn)創(chuàng)建的YGGL數(shù)據(jù)庫(kù)。(4)在對(duì)象資源管理器中創(chuàng)建表。①創(chuàng)建表。Employees(員工自然信息)表、Departments(部門信息)表和Salary(員工薪水情況)表。在對(duì)象資源管理器中選擇創(chuàng)建的數(shù)據(jù)庫(kù)“YGGL”,展開數(shù)據(jù)庫(kù)YGGL,選擇“表”,右鍵單擊“表”在彈出的菜單中選擇“新建表”。將表保存并命名為“Employees”。下面是相同方法創(chuàng)建的Employees(員工自然信息)表、Departments(部門信息)表和Salary(員工薪水情況)表。Employees(員工自然信息)表Departments(部門信息)表Salary(員工薪水情況)表②刪除表。右擊表彈出的快捷菜單中“刪除”項(xiàng),打開“刪除對(duì)象”窗口。在YGGL數(shù)據(jù)庫(kù)中選擇“表”,展開找到Employees(員工自然信息)表右鍵單擊在彈出菜單內(nèi)選擇刪除,在“對(duì)象刪除”窗口中選擇確定刪除。(5)使用T-SQL語(yǔ)句創(chuàng)建表。①利用T-SQL語(yǔ)句創(chuàng)建Employees(員工自然信息)注:Employees紅色下劃線,由于已經(jīng)運(yùn)行了代碼,數(shù)據(jù)庫(kù)中已經(jīng)存在Employees表,所以將鼠標(biāo)放在上面才會(huì)出現(xiàn)下面這樣的錯(cuò)誤。②利用T-SQL語(yǔ)句創(chuàng)建Departments(部門信息)表。在代碼空白處單擊右鍵選擇“執(zhí)行”,會(huì)在下方“消息”對(duì)話框中看到執(zhí)行成功。在左側(cè)對(duì)象資源管理器中YGGL數(shù)據(jù)庫(kù)的子菜單表中右鍵選擇刷新,就會(huì)顯示創(chuàng)建的表。③利用T-SQL語(yǔ)句創(chuàng)建Salary(員工薪水情況)表。同樣執(zhí)行后,在下方“消息”中會(huì)看到“命令已成功完成”,在左邊對(duì)象資源管理器中YGGL數(shù)據(jù)庫(kù)的表中單擊右鍵選擇刷新,會(huì)出現(xiàn)新建的Salary(員工薪水情況)表。4、思考與練習(xí)(1)在YGGL數(shù)據(jù)庫(kù)存在的情況下,使用CREATEDATABASE語(yǔ)句新建數(shù)據(jù)庫(kù)YGGL,查看錯(cuò)誤信息。當(dāng)左側(cè)資源管理器的數(shù)據(jù)庫(kù)中已經(jīng)存在數(shù)據(jù)庫(kù)YGGL時(shí),再次用CREATEDATABASE語(yǔ)句新建數(shù)據(jù)庫(kù)YGGL時(shí),在下方“消息”中會(huì)出現(xiàn)以下錯(cuò)誤,是由于已經(jīng)存在數(shù)據(jù)庫(kù)YGGL。(2)創(chuàng)建數(shù)據(jù)庫(kù)YGGL1,使用界面方式或者ALTERDATABASE語(yǔ)句嘗試修改YGGL1數(shù)據(jù)庫(kù)邏輯文件的初始大小。在左側(cè)對(duì)象資源管理器中刷新數(shù)據(jù)庫(kù),在數(shù)據(jù)庫(kù)YGGL1中右鍵單擊查看屬性,邏輯文件大小已經(jīng)由初始值修改為20MB。(3)在YGGL1中創(chuàng)建表Salary1(參照表Salary的結(jié)構(gòu)),表Salary1比Salary多一列計(jì)算列,列名為“ActIncome”,由InCome-OutCome得到。在下方“消息”中顯示“命令執(zhí)行完成”。在數(shù)據(jù)庫(kù)YGGL1的Salary1表單擊右鍵“設(shè)計(jì)”中會(huì)發(fā)現(xiàn)比起Salary表已經(jīng)多了ActInCome一項(xiàng)。(4)在YGGL1數(shù)據(jù)庫(kù)中創(chuàng)建Employees1(結(jié)構(gòu)與Employees相同),分別使用命令行方式和界面方式將表Employees1中的Address列刪除,并將Sex列的默認(rèn)值修改為0。利用命令行形式在數(shù)據(jù)庫(kù)YGGL1中創(chuàng)建表Employees1.利用界面操作的形式將數(shù)據(jù)庫(kù)YGGL1中表Address列刪除,并且將Sex的默認(rèn)值修改為0。在數(shù)據(jù)庫(kù)YGGL1中打開表Employees1,在列中找到Sex這一項(xiàng),單擊右鍵修改,在列屬性中將Sex的默認(rèn)值或綁定由原來(lái)的1修改為0。同樣在表Employees1中找到Address找到,在Address屬性上單擊右鍵,選擇刪除,在彈出的刪除對(duì)象窗口中選擇確定,進(jìn)行刪除。(5)什么是臨時(shí)表?怎樣創(chuàng)建臨時(shí)表?可以創(chuàng)建本地和全局臨時(shí)表。本地臨時(shí)表僅在當(dāng)前會(huì)話中可見(jiàn);全局臨時(shí)表在所有會(huì)話中都可見(jiàn)。本地臨時(shí)表的名稱前面有一個(gè)編號(hào)符(#table_name),而全局臨時(shí)表的名稱前面有兩個(gè)編號(hào)符(##table_name)。方法一:createtable#臨時(shí)表名(字段1約束條件,字段2約束條件,.....)createtable##臨時(shí)表名(字段1約束條件,字段2約束條件,.....)方法二:select*into#臨時(shí)表名from你的表;select*into##臨時(shí)表名from你的表;注:以上的#代表局部臨時(shí)表,##代表全局臨時(shí)表下面是我創(chuàng)建的臨時(shí)表Salary1數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告-順序表的創(chuàng)建、遍歷及有序合并操作二、實(shí)驗(yàn)內(nèi)容與步驟實(shí)現(xiàn)順序表的創(chuàng)建、遍歷及有序合并操作,基本數(shù)據(jù)結(jié)構(gòu)定義如下:typedefintElemType;#defineMAXSIZE100#defineFALSE0#defineTRUE1typedefstruct{ElemTypedata[MAXSIZE];intlength;}seqlist;創(chuàng)建順序表,遍歷順序表#include<stdio.h>#include<stdlib.h>#defineMAXSIZE100#defineIcreament20#defineFALSE0#defineTRUE1typedefintElemType;//用戶自定義數(shù)據(jù)元素類型//順序表結(jié)構(gòu)體的定義typedefstruct{ElemType*elem;//順序表的基地址intlength;//順序表的當(dāng)前長(zhǎng)度intlistsize;//預(yù)設(shè)空間容量}SqList;//線性表的順序存儲(chǔ)結(jié)構(gòu)SqList*InitList()//創(chuàng)建空的順序表{SqList*L=(SqList*)malloc(sizeof(SqList));//定義順序表Lif(!L){printf("空間劃分失敗,程序退出\n");returnNULL;}L->elem=(ElemType*)malloc(MAXSIZE*sizeof(ElemType));if(!L->elem){printf("空間劃分失敗,程序退出\n");returnNULL;}L->length=0;L->listsize=MAXSIZE;returnL;}intCreateList(SqList*L)//創(chuàng)建順序表(非空){intnumber;//順序表中元素的個(gè)數(shù)inti;//循環(huán)變量printf("請(qǐng)輸入順序表中元素的個(gè)數(shù):");scanf("%d",&number);if(number>MAXSIZE)//一定要判斷輸入的個(gè)數(shù)是否大于順序表的最大長(zhǎng)度{printf("輸入個(gè)數(shù)大于順序表的長(zhǎng)度\n");return0;}for(i=0;i<number;i++){printf("輸入第%d個(gè)數(shù):",i+1);scanf("%d",L->elem+i);//L->elem+i:每次的輸入都保存在順序表元素中的下一個(gè)地址,而不是一直放在元素的首地址}//給順序表中每個(gè)數(shù)據(jù)元素賦值L->length=number;//當(dāng)前順序表的長(zhǎng)度return1;}voidprint(SqList*L)//遍歷順序表{inti; printf("\n開始遍歷順序表\n");for(i=0;i<L->length;i++){printf("%d",*(L->elem+i));//L->elem+i:和輸入是一個(gè)道理} printf("\n遍歷結(jié)束\n");printf("\n");}intmain(){SqList*L=InitList();//申請(qǐng)一個(gè)指向順序表的指針,并對(duì)其初始化if(!L)//判斷申請(qǐng)是否成功{printf("初始化線性表失敗\n");return1;}if(!CreateList(L))//判斷創(chuàng)建順序表是否成功{printf("創(chuàng)建順序表失敗\n");return1;}print(L);//打印順序表與上面遍歷順序表相對(duì)應(yīng),若沒(méi)有就不遍歷free(L->elem);//釋放申請(qǐng)的順序表元素的內(nèi)存free(L);//釋放申請(qǐng)的順序表內(nèi)存return0;}表的有序合并#include<stdio.h>#include<stdlib.h>#defineMAXSIZE100typedefintElemType;//順序表結(jié)構(gòu)體的定義typedefstruct{ ElemTypedata[MAXSIZE]; intsize;}seqlist;//函數(shù)聲明voidinit(seqlist*slt);voiddisplay(seqlistslt);voidsort(seqlist*s);voidcombine(seqlist*s1,seqlist*s2,seqlist*s3);//順序表的初始化函數(shù)voidinit(seqlist*slt){ slt->size=0;}//順序表的顯示函數(shù)voiddisplay(seqlistslt){ inti; if(!slt.size) { printf("\n順序表為空"); } else {for(i=0;i<slt.size;i++) printf("\n%d\n",slt.data[i]); }}//順序表排序voidsort(seqlist*s){ inti; intj; inttemp; for(i=0;i<s->size-1;i++) { for(j=i+1;j<s->size;j++) { if(s->data[i]>=s->data[j]) { temp=s->data[i]; s->data[i]=s->data[j]; s->data[j]=temp; } } }}//兩

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論