第一篇:實驗五 SQL語言的DML初步
實驗五 SQL語言的DML初步
一、實驗?zāi)康腟QL的數(shù)據(jù)操縱功能通過DML(數(shù)據(jù)庫操作語言)實現(xiàn)。DML包括數(shù)據(jù)查詢和數(shù)據(jù)更新兩種數(shù)據(jù)操作語句。其中,數(shù)據(jù)查詢指對數(shù)據(jù)庫中的數(shù)據(jù)查詢、統(tǒng)計、分組、排序等操作;數(shù)據(jù)更新指數(shù)據(jù)的插入、刪除和修改等數(shù)據(jù)維護操作。
本次實驗了解DML語言的INSERT、UPDATE、DELETE對數(shù)據(jù)的操作,學(xué)會SQL Server 2000的查詢分析器中用DML語言對表中的數(shù)據(jù)進行插入、刪除和修改。
本實驗需2學(xué)時
二、實驗內(nèi)容
1. 啟動數(shù)據(jù)庫服務(wù)軟件SQL Server 2000的查詢分析器,用INSERT語句對表進行插入操作,語法格式如下:
Insert Into <表名> [(<屬性列1>[,<屬性列2>]…)]
Values(<常量1>[,<常量2>]…);
2. 用UPDATE語句對表中已有的記錄進行修改,語法格式如下:
Update <表名> Set <列名>=<表達式>[,<列名>=
<表達式>][,…n] [Where <條件>];
3. 用DELETE語句對表中已有的記錄進行刪除,語法格式如下:
Delete From <表名> [Where <條件>];
三、實驗任務(wù)
1. 打開數(shù)據(jù)庫SQL Server 2000的查詢分析器,用INSERT語句對表插入記錄 查詢分析器窗體下完成以下題目,分別運行,觀察結(jié)果
(1)將一個新學(xué)生記錄(學(xué)號:95020;姓名:陳冬;性別:男;所在系:IS;年齡:
18)插入到Student表中。
(2)插入一條選課記錄(‘95020’,‘1’)
(3)對每個系求學(xué)生的平均年齡,并把結(jié)果存入表Deptage2、利用查詢分析器用UPDATE語句更改表中數(shù)據(jù)。完成以下題目,分別運行,觀察結(jié)果。
(1)將學(xué)生95001的年齡改為22歲。
(2)將所有學(xué)生的年齡增加1歲
(3)將計算機科學(xué)系全體學(xué)生的成績置零。
3、利用查詢分析器用DELETE語句刪除表中數(shù)據(jù)。完成以下題目,分別運行,觀察結(jié)果。
(1)刪除學(xué)號為95019的學(xué)生記錄。
(2)刪除計算機科學(xué)系所有學(xué)生的選課記錄
(3)刪除所有的學(xué)生選課記錄
4.將以上的SQL語言存盤,以備老師檢查。
第二篇:實驗四SQL語言
實驗四 SQL語言——數(shù)據(jù)更新操作
2007-06-16 01:12:44|分類: 課程作業(yè) |標(biāo)簽:數(shù)據(jù)更新操作sql語言|字號大中小 訂閱
實驗四 SQL語言——數(shù)據(jù)更新操作
三、實驗條件與環(huán)境
1.通用PC機
2.PC機必須安裝Windows 2000系列、Windows XP系列或Windows NT操作系統(tǒng)平臺 3.PC機還須安裝Microsoft SQL Server 2000 任意一版本(個人版、標(biāo)準(zhǔn)版、企業(yè)版)
4.最好有一臺公用的SQL Server 2000 服務(wù)器
四、實驗?zāi)康?.通過上機實驗進一步加深對SQL數(shù)據(jù)更新(插入、修改及刪除)語句的基本語法格式的掌
握
2.通過上機實驗掌握單個元組插入操作的實現(xiàn)過程
3.通過上機實驗掌握多個元組插入操作的實現(xiàn)過程
4.通過上機實驗掌握單個元組修改操作的實現(xiàn)過程
5.通過上機實驗掌握多個元組修改操作的實現(xiàn)過程
6.通過上機實驗掌握單個元組刪除操作的實現(xiàn)過程
7.通過上機實驗掌握多個元組刪除操作的實現(xiàn)過程
8.通過上機實驗加深對更新操作時數(shù)據(jù)庫中數(shù)據(jù)一致性問題的了解
9.通過上機實驗加深對約束條件在數(shù)據(jù)更新操作執(zhí)行中的作用問題的了解
五、實驗要求
1.本實驗所有實驗內(nèi)容要求在規(guī)定時間(2課時)內(nèi)完成2.實驗內(nèi)容中涉及到的各更新操作均通過SQL語言來實現(xiàn)
3.本實驗中各操作內(nèi)容的執(zhí)行均會更新當(dāng)前數(shù)據(jù)庫,為便于下一實驗內(nèi)容的順利執(zhí)行,請在每成功完成一個實驗內(nèi)容后重新導(dǎo)入初始狀態(tài)下的實驗數(shù)據(jù)庫
4.實驗完成后需要書寫實驗報告,本次實驗報告需在下次實驗課堂上上交
六、實驗內(nèi)容:
1.在S表中插入元組“s6,華譽,40,廣州,02085268888”
2.在J表中插入元組“j8,傳感器廠”
3.對每一個供應(yīng)商,求他為各種工程供應(yīng)零件的總數(shù)量,并將此結(jié)果存入數(shù)據(jù)庫
4.將P表中PNO值為p6的元組的color屬性值改為綠,weight屬性值改為60
5.將SPJ表中前4個元組的qty屬性值統(tǒng)一修改為300
6.將S表中city屬性名含有“京”或“津”的相應(yīng)status屬性值增加100
7.將供應(yīng)商s2為“一汽”工程項目所供應(yīng)的零件數(shù)量修改為2000
8.將全部紅色零件的顏色修改為淺紅色
9.由s5供給j4的零件p6改為由s3供應(yīng),請在數(shù)據(jù)庫中作必要的數(shù)據(jù)修改
10.在SPJ表中新增一列屬性名為SDATE的屬性列,對該表中的每一元組在SDATE屬性列
上填上實驗當(dāng)時的日期和時間
11.刪除所在城市為“廣州”的供應(yīng)商記錄
12.刪除所有零件名稱中第一個字為“螺”字的零件記錄,并在供應(yīng)情況表中刪除相應(yīng)的記錄
13.刪除s3和s4兩供應(yīng)商為“三建”工程供應(yīng)“螺母”或“螺絲刀”零件的相應(yīng)供應(yīng)情況數(shù)
據(jù)信息
七、實驗總結(jié):
數(shù)據(jù)更新操作(插入操作[INSERT]、修改操作[UPDATE]、刪除操作[DELETE])是關(guān)系數(shù)據(jù)庫系統(tǒng)中一種極為重要、數(shù)據(jù)更新能力強、使用靈活的數(shù)據(jù)操縱方式,此數(shù)據(jù)操作的使用不是完全獨立的,而是和數(shù)據(jù)定義操作、數(shù)據(jù)查詢操作有著緊密聯(lián)系的。實驗完成后,請同學(xué)們總結(jié)一下SQL語言在實現(xiàn)各種數(shù)據(jù)更新操作時與數(shù)據(jù)定義操作和數(shù)據(jù)查詢操作兩類操作之間的相互聯(lián)系,通過深入總結(jié),從而學(xué)會利用SQL語言實現(xiàn)較為復(fù)雜的數(shù)據(jù)更新任務(wù)。
實驗四 SQL語言——數(shù)據(jù)更新操作
實驗內(nèi)容參考答案
六、實驗內(nèi)容
1.在S表中插入元組“s6,華譽,40,廣州,02085268888”
use shiyan
go
insert
into s
values('s6','華譽',40,'廣州','02085268888')
2.在J表中插入元組“j8,傳感器廠”
use shiyan
go
insert
into j(jno,jname)
values('j8','傳感器廠')
3.對每一個供應(yīng)商,求他為各種工程供應(yīng)零件的總數(shù)量,并將此結(jié)果存入數(shù)據(jù)庫
use shiyan
go
create table TotalQTYofS(SNO char(4)not null unique,TotalQTY int);
insert
into TotalQTYofS
select sno,sum(qty)
from spj
group by sno;
4.將P表中PNO值為p6的元組的color屬性值改為綠,weight屬性值改為60
use shiyan
go
update p
set color='綠',weight=60
where pno='p6'
5.將SPJ表中前4個元組的qty屬性值統(tǒng)一修改為300
use shiyan
go
update spj
set qty=300
from(select top 4 * from spj order by sno)as table1
where spj.sno=table1.sno
6.將S表中city屬性名含有“京”或“津”的相應(yīng)status屬性值增加100
use shiyan
go
update s
set status=status+100
where city like '%京%' or city like '%津%
7.將供應(yīng)商s2為“一汽”工程項目所供應(yīng)的零件數(shù)量修改為2000
use shiyan
go
update spj
set qty=2000
where sno='s2' and jno=(select jno
from j
where jname='一汽')
8.將全部紅色零件的顏色修改為淺紅色
use shiyan
go
update p
set color='淺紅'
where color='紅'
9.由s5供給j4的零件p6改為由s3供應(yīng),請在數(shù)據(jù)庫中作必要的數(shù)據(jù)修改
use shiyan
go
update spj
set sno='s3'
where sno='s5' and jno='j4' and pno='p6'
10.在SPJ表中新增一列屬性名為SDATE的屬性列,對該表中的每一元組在SDATE屬性列
上填上實驗當(dāng)時的日期和時間
use shiyan
go
alter table spj
add SDATE datetime
update spj
set SDATE=getdate()
11.刪除所在城市為“廣州”的供應(yīng)商記錄
use shiyan
go
delete
from s
where city='廣州'
12.刪除所有零件名稱中第一個字為“螺”字的零件記錄,并在供應(yīng)情況表中刪除相應(yīng)的記錄
use shiyan
go
delete
from p
where pname like '螺%'
delete
from spj
where pno in(select pno
from p
where pname like '螺%')
13.刪除s3和s4兩供應(yīng)商為“三建”工程供應(yīng)“螺母”或“螺絲刀”零件的相應(yīng)供應(yīng)情況數(shù)據(jù)信息
use shiyan
go
delete
from spj
where(sno='s3' or sno='s4')and jno in(select jno
from j
where jname='三建')and pno in(select pno
from p
where pname='螺母' or pname='螺絲刀')
第三篇:實驗三 SQL語言的DDL
實驗三 視圖、存儲過程的定義和使用
一、實驗?zāi)康腟QL(Structured Query Language)語言是關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言。是一種介于關(guān)系代數(shù)與關(guān)系演算之間的結(jié)構(gòu)化查詢語言,其功能并不僅僅是查詢,SQL語言是一個通用的、功能極強的關(guān)系數(shù)據(jù)庫語言。
本次實驗了解DDL語言的CREATE、DROP、ALTER對視圖和存儲過程的操作,學(xué)會SQL Server 2000的查詢分析器中實現(xiàn)視圖的創(chuàng)建、查看、修改和刪除;實現(xiàn)對存儲過程的創(chuàng)建、修改、撤消和運行。
本實驗需2學(xué)時。
二、實驗內(nèi)容
1. 啟動數(shù)據(jù)庫服務(wù)軟件SQL Server 2000的查詢分析器,用如下語句對視圖進行操作,詳
細的語法格式參看課本相應(yīng)章節(jié):
Create view 創(chuàng)建視圖
Drop view刪除視圖
Select * from 視圖名查詢視圖
2. 如下語句對存儲過程進行操作,詳細的語法格式參看課本相應(yīng)章節(jié):
Create proc 過程名
Dropproc 過程名
三、實驗任務(wù)
1.打開數(shù)據(jù)庫SQL Server 2000的查詢分析器,用Create Table建表student。
2.向表中填入教材P82數(shù)據(jù)
3.根據(jù)student表創(chuàng)建視圖V_stud.4.使用視圖v_stud,向原student表中插入一行記錄。
5.根據(jù)P82,創(chuàng)建SC表,創(chuàng)建視圖,通過視圖查看學(xué)生的姓名和選課情況。
6. 刪除視圖v_stud.7.根據(jù)student,sc,c三個表,創(chuàng)建存儲過程proc1,查看學(xué)生的姓名,選課的課程名和相應(yīng)的成績。
8. 執(zhí)行proc1
9.修改該存儲過程為p_proc,并刪除proc1.運行以上語句,并觀察結(jié)果.10.將以上的SQL語言以報告的形式寫出來,以備老師檢查。
第四篇:sql語言
11.2.2 數(shù)據(jù)定義命令
1.CreateTable命令
Create Table <表名>(<列名1><數(shù)據(jù)類型1>[<列級完整性約束1>][,<列名2>] <數(shù)據(jù)類型2>[<列級完整性約束2>][,……][,<列名n>] <數(shù)據(jù)類型n>[<列級完整性約束n>][<表級完整性約束n>]); 語句功能:創(chuàng)建一個以<表名>為名的、以指定的列屬性定義的表結(jié)構(gòu)。
2.Alter Table命令
Alter Table<表名>
[ ADD <新列名> <數(shù)據(jù)類型> [ 完整性約束 ] ]
[ DROP <完整性約束名> ]
[ MODIFY <列名> <數(shù)據(jù)類型> ];
語句功能:修改以<表名>為名的表結(jié)構(gòu)。
3.Drop命令
Drop Table <表名>
語句功能:刪除以<表名>為名的表。
11.2.3 數(shù)據(jù)查詢命令 SELECT
語法形式為:
SELECT [ALL|DISTINCT] 目標(biāo)列FROM 表(或查詢)
[WHERE 條件表達式]
[GROUP BY 列名1 HAVING 過濾表達式]
[ORDER BY 列名2[ASC|DESC]]
功能
根據(jù)WHERE子句中的表達式,從指定的表或視圖中找出滿足條件的記錄,按目標(biāo)列顯示數(shù)據(jù)GROUP BY子句按列名1的值進行分組,每一組產(chǎn)生一條記錄,HAVING短語對組進行輸出過濾
ORDER BY子句按列名2 對查詢結(jié)果的值進行排序
1.SELECT語句示例
例11.1查詢所有學(xué)生的基本情況
SELECT學(xué)號,姓名,性別,出生日期,專業(yè)
FROM Student;
例11.2查詢所有男生的信息記錄。
SELECT *
FROM student
WHERE 性別=“男”;
例11.1查詢所有的專業(yè),查詢結(jié)果中不出現(xiàn)重復(fù)的記錄。
SELECT DISTINCT 專業(yè) FROM Student ;
例11.4 查詢學(xué)生的人數(shù)和平均年齡
SELECT Count(*)AS 人數(shù),Avg(Year(Date())-Year(出生年月))AS平均年齡 FROM Student ; 例85 查詢計算機專業(yè)學(xué)生的學(xué)號、姓名和專業(yè)
SELECT 學(xué)號,姓名,專業(yè) FROM Student WHERE 專業(yè)=“計算機” ;
例11.6顯示所有非計算機專業(yè)學(xué)生的學(xué)號、姓名和年齡
SELECT 學(xué)號, 姓名, Year(Date())-Year(出生年月)AS 年齡
FROM StudentWHERE 專業(yè)<>“計算機” ;
例11.7 查詢1981年(包括1981年)以前出生的女生姓名和出生年月。
SELECT 姓名,出生年月 FROM Student
WHERE 出生年月 < #1/1/1982# AND 性別=“女” ;
例11.8 查詢選修了1號課程的學(xué)生的學(xué)號及其成績,查詢結(jié)果按分?jǐn)?shù)降序排列。
Select 學(xué)號,成績Fromsc
Where課程號= “1”
Order By 成績 DESC;
例11.9查詢選修了2門(包括2門)以上課程的學(xué)生的學(xué)號和課程數(shù)
SELECT 學(xué)號, Count(*)AS 課程數(shù) FROM Sc
GROUP BY 學(xué)號HAVING Count(*)>=2 ;
例11.10查詢所有課程的成績在70分以上的學(xué)生的學(xué)號
SELECT 學(xué)號 FROM ScGROUP BY 學(xué)號
HAVING Min(成績)>=70 ;
例11.11 查詢所有學(xué)生的學(xué)號、姓名、課程和成績
SELECT Student.學(xué)號,Student.姓名,Sc.課程, Sc.成績
使用內(nèi)連接格式
SELECT Student.學(xué)號,Student.姓名,Sc.課程,Sc.成績
2.ORDER BY、GROUP BY、HAVING子句示例
例11.12 對學(xué)生成績表,統(tǒng)計每人的平均分和課程數(shù),按學(xué)號遞減排序
SELECT學(xué)號, COUNT(課程號)AS 課程數(shù), AVG(成績)AS平均成績
FROM sc
學(xué)號
ORDER BY學(xué)號DESC;
例11.13查詢選修了2門(包括2門)以上課程、最低成績在60分以上的學(xué)生的學(xué)號、課程數(shù)和最低分 SELECT 學(xué)號, Min(成績)AS 成績之Min, Count(課程)AS 課程之Count FROM ScGROUP BY Sc.學(xué)號
HAVING(((Min(成績))>=60)AND((Count(課程))>2));
3、多表連接查詢SELECT語句
WHERE 條件,在兩表中有相同的屬性值
例11.14 查詢所有學(xué)生的學(xué)號、姓名、課程和成績
SELECT Student.學(xué)號,Student.姓名,Sc.課程, Sc.成績
FROM Student,Sc WHERE Student.學(xué)號 = Sc.學(xué)號;
4.嵌套查詢
在SQL中,將一個SELECT語句查詢塊嵌套在另一個SELECT語句的WHERE子句或HAVING子句中稱為嵌套查詢
例11.15 查詢沒有學(xué)過大學(xué)計算機基礎(chǔ)的學(xué)生的學(xué)號、姓名和專業(yè)
SELECT Student.學(xué)號, Student.姓名, Student.專業(yè)
FROM Student
(SELECT Sc.學(xué)號
FROM Sc
WHERE Sc.課程=“大學(xué)計算機基礎(chǔ)”);
嵌套查詢示例
例11.16 查詢與“鄧倩梅”在同一個專業(yè)的學(xué)生的學(xué)號和姓名
SELECT Student.學(xué)號, Student.姓名
FROM Student
WHERE
FROM Student
11.2.4SQL中的數(shù)據(jù)更新命令
結(jié)構(gòu)化查詢語言SQL是操作關(guān)系數(shù)據(jù)庫的工業(yè)標(biāo)準(zhǔn)語言
在SQL中,常用的語句有兩類:
數(shù)據(jù)查詢語句 SELECT
數(shù)據(jù)更新命令 INSERT、UPDATE、DELETE
INSERT語句用于數(shù)據(jù)插入 其語法格式為:
? 插入一條記錄
INSERT INTO 表名 [(字段1,…,字段n)] VALUES(值1,…,值n)
? 插入查詢的結(jié)果
INSERT INTO 表名(字段1,…,字段n)VALUES 子查詢
數(shù)據(jù)更新-INSERT語句實例
例11.17向表Students中插入一條記錄
Insert Into student(學(xué)號, 姓名, 出生日期,性別, 專業(yè))VALUES(“20031011”, “陳偉”,男“, ”化學(xué)“)
注意:
字符型常量用 單引號 或 雙引號 括起來
邏輯型字段的值是 True/False、Yes/No 或 On/Off
日期的表示形式為 MM/DD/YY 或 MM/DD/YYYY
數(shù)據(jù)更新-DELETE語句
DELETE語句用于數(shù)據(jù)刪除其語法格式為:
DELETE FROM 表 [WHERE 條件]
注意: WHERE子句缺省,則刪除表中所有的記錄(表還在)
例11.18 刪除表Students中所有學(xué)號為990301的記錄
DELETE FROM Students WHERE 學(xué)號=“990301”
例11.19 刪除表Sc中成績低于70分的記錄
DELETE FROM Sc WHERE 成績<70
數(shù)據(jù)更新-UPDATE語句
UPDATE語句用于數(shù)據(jù)修改其語法格式為:
UPDATE 表 SET 字段1=表達式1, …,字段n=表達式n [WHERE 條件]
注意: WHERE子句缺省,則修改表中所有的記錄
例11.20 將表Student中學(xué)生王濤的姓名改為王寶 #12/28/80#,”
UPDATE Students SET 姓名=“王寶” WHERE 姓名=“王濤”
UPDATE語句一次只能對一個表進行修改
SQL是英文Structured Query Language的縮寫,意思為結(jié)構(gòu)化查詢語言。SQL語言的主要功能就是同各種數(shù)據(jù)庫建立聯(lián)系,進行溝通。按照ANSI(美國國家標(biāo)準(zhǔn)協(xié)會)的規(guī)定,SQL被作為關(guān)系型數(shù)據(jù)庫管理系統(tǒng)的標(biāo)準(zhǔn)語言。SQL語句可以用來執(zhí)行各種各樣的操作,例如更新數(shù)據(jù)庫中的數(shù)據(jù),從數(shù)據(jù)庫中提取數(shù)據(jù)等。目前,絕大多數(shù)流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),如Oracle, Sybase, Microsoft SQL Server, Access等都采用了SQL語言標(biāo)準(zhǔn)。包括數(shù)據(jù)定義、數(shù)據(jù)操縱、數(shù)據(jù)查詢和數(shù)據(jù)控制四個方面,共9個命令。
SQL語言使用使用數(shù)據(jù)定義語言(Data Definition Language,簡稱DDL)實現(xiàn)數(shù)據(jù)定義功能。1、創(chuàng)建數(shù)據(jù)表
【命令格式】
CREATETABLE<表名> [free]
(<字段名1><數(shù)據(jù)類型>[(<寬度>[,<小數(shù)位數(shù)>]),<字段名2>…])
【功能】定義(也稱創(chuàng)建)一個表結(jié)構(gòu)。
【命令格式】
CREATETABLE<表名> [free]
(<字段名1><數(shù)據(jù)類型>[(<寬度>[,<小數(shù)位數(shù)>]),[NULL|NOTNULL]<字段名2>…])
【功能】定義(也稱創(chuàng)建)一個表結(jié)構(gòu)。
【命令格式】
CREATETABLE<表名> [free]
(<字段名1><數(shù)據(jù)類型>[(<寬度>[,<小數(shù)位數(shù)>]),[NULL|NOTNULL]
[CHECK<表達式>[error<提示信息]
<字段名2>…])
【功能】定義(也稱創(chuàng)建)一個表結(jié)構(gòu)。
【命令格式】
CREATETABLE<表名> [free]
(<字段名1><數(shù)據(jù)類型>[(<寬度>[,<小數(shù)位數(shù)>]),[NULL|NOTNULL]
[CHECK<表達式>[error<提示信息]
[DEFAULT<表達式>]
<字段名2>…])
【功能】定義(也稱創(chuàng)建)一個表結(jié)構(gòu)。
【命令格式】
CREATETABLE<表名> [free]
(<字段名1><數(shù)據(jù)類型>[(<寬度>[,<小數(shù)位數(shù)>]),[NULL|NOTNULL]
[CHECK<表達式>[error<提示信息]
[DEFAULT<表達式>]
[PRIMARY KEY/UNIQUE]
<字段名2>…])
【功能】定義(也稱創(chuàng)建)一個表結(jié)構(gòu)。
【例11-1】創(chuàng)建一個表STUD(學(xué)生信息表),它由以下字段組成:學(xué)號(C,8);姓名(C,8);性別(C,2);出生年月(D);入??偡?N,3);三好生(L);特長(M);照片(G)。
CREATE TABLESTUD
(學(xué)號C(8),姓名C(8),性別 C(2),出生年月 D, 入??偡?N(3),;三好生 L,特長 M,照片 G)
【例11-2】創(chuàng)建一個表STUD(學(xué)生信息表),它由以下字段組成:學(xué)號(C,8);姓名(C,8);性別(C,2);出生年月(D);入??偡?N,3)。
并要求:學(xué)號為主鍵并不能為空值;姓名也不允許為空值,性別字段必須是“男”或者“女”;出生年月取值范圍在1970到1990年之間。
CREATE TABLESTUD
(學(xué)號C(8)PRIMARY KEYNOT NULL,;
姓名C(8),;性別C(2),;出生年月 D,;入??偡?N(3))
【例11-2】創(chuàng)建一個表STUD(學(xué)生信息表),它由以下字段組成:學(xué)號(C,8);姓名(C,8);性別(C,2);出生年月(D);入校總分(N,3)。
并要求:學(xué)號為主鍵并不能為空值;姓名也不允許為空值,性別字段必須是“男”或者“女”;出生年月取值范圍在1970到1990年之間。
CREATE TABLESTUD
(學(xué)號C(8)PRIMARY KEYNOT NULL,;
姓名C(8), NOT NULL;性別C(2),;出生年月 D,;入??偡?N(3))
【例11-2】創(chuàng)建一個表STUD(學(xué)生信息表),它由以下字段組成:學(xué)號(C,8);姓名(C,8);性別(C,2);出生年月(D);入??偡?N,3)。
并要求:學(xué)號為主鍵并不能為空值;姓名也不允許為空值,性別字段必須是“男”或者“女”;出生年月取值范圍在1970到1990年之間。
CREATE TABLESTUD
(學(xué)號C(8)PRIMARY KEYNOT NULL,;
姓名C(8), NOT NULL;
性別C(2), DEFAULT=“男”CHECK 性別=“男”O(jiān)R 性別 =“女” ERROR“性別必須是男或女”;出生年月 D,;入校總分 N(3))
【例11-2】創(chuàng)建一個表STUD(學(xué)生信息表),它由以下字段組成:學(xué)號(C,8);姓名(C,8);性別(C,2);出生年月(D);入校總分(N,3)。
并要求:學(xué)號為主鍵并不能為空值;姓名也不允許為空值,性別字段必須是“男”或者“女”;出生年月取值范圍在1970到1990年之間。
CREATE TABLESTUD
(學(xué)號C(8)PRIMARY KEYNOT NULL,;
姓名C(8), NOT NULL;
性別C(2), DEFAULT=“男”CHECK 性別=“男”O(jiān)R 性別;
=“女” ERROR“性別必須是男或女”;
出生年月 D, CHECK(出生年月)<={^1990-01-01} and 出生;
年月>={^1970-01-01},;
入??偡?N(3))
2、修改數(shù)據(jù)表
【命令格式1】
ALTER TABLE <表名>[ADD/ ALTER
[COLUMN] <新字段名><數(shù)據(jù)類型>[<寬度>[,<小數(shù)位數(shù)>]]
[NULL |NOTNULL]]
[CHECK<表達式>[error<提示信息>]]
[DEFAULT <表達式>]
[PRIMARY KEY/UNIQUE]]
【功能】修改表結(jié)構(gòu)。、插入記錄
【格式1】INSERTINTO<表名>[<字段名表>]VALUES(<表達式表>)
【格式2】INSERTINTO<表名>FROMARRAY<數(shù)組名>|FROMMEMVAR
【功能】在指定的表文件末尾追加一條記錄。格式1用表達式表中的各表達式值賦值給<字段名表>中的相應(yīng)的各字段。格式2用數(shù)組或內(nèi)存變量的值賦值給表文件中各字段。
【說明】如果某些字段名在INTO子句中沒有出現(xiàn),則新記錄在這些字段名上將取空值(或默認值)。但必須注意的是,在表定義說明了NOTNULL的字段名不能取空值。
<字段名表>:指定表文件中的字段,缺省時,按表文件字段的順序依次賦值。
<表達式表>:指定要追加的記錄各個字段的值。
【例11-6】在表文件STUD的末尾追加三條記錄。
***用表達式方式追加第一條記錄***
INSERTINTOSTUD
(學(xué)號,姓名,性別,班級名,系別代號);
VALUES
(“011110”,“李建國”,“男”,“計0121”,“01”)
DIMENSIONDATA[5]
DATA(1)=“011103”
DATA(2)=“李寧”
DATA(3)=“女”
DATA(4)=“電0134”
DATA(5)=“02”
INSERTINTOSTUDFROMARRAYDATA
第五篇:SQL語言
1.輸出任意兩個字符串變量的值(參考代碼)
declare @v1 varchar(12),@V2 varchar(12)
set @v1='中國'
set @v2='你好!'
select @v1+@v2
2.為以下程序糾錯
declare @v1 varchar(12),@V2 varchar(10)
set @v1='中國'
set @v2='你好!'
set @s='嗎!'
select @v1+@v2+@s
3.運行以下代碼,觀察以下全局變量的功能
select 34@@connections 返回當(dāng)前服務(wù)器的連接數(shù)目
select 1@@rowcount 返回上一條T-SQL語句影響的數(shù)據(jù)行數(shù) select @@error返回上一條T-SQL語句執(zhí)行后的錯誤號 select @@procid返回當(dāng)前存儲過程的ID號
select @@remserver 返回登錄記錄中遠程服務(wù)器的名字 select @@spid返回當(dāng)前服務(wù)器進程的ID標(biāo)識
select @@version 返回當(dāng)前SQL Server服務(wù)器的版本和處理器類型 select @@language 返回當(dāng)前SQL Server服務(wù)器的語言
select @@connections
4.輸入以下代碼并理解其含意
bggin
if 3>5
select 'true'
else print 'false'
end
go
begin
if 'a'<'A'
select 'true'
else print 'false'
end
go
begin
if '張'>'李'
select 'true'
else print 'false'
end
go
begin
if getdate()>2008-10-10
print'true'
else print'false'
end
5.附加數(shù)據(jù)庫student,并進行以下操作
use student
select * from xsda
以XSDa表為例,如果平均成績高于75分,則顯示“不錯!”,否則,顯示“加油呀!”。
declare @av1 char(12), @av2 char(12)
set @av1='不錯!'
set @av2='加油!'
if(select avg(總學(xué)分)from xsda)>75
begin
select @av1
end
else
select @av2
編寫一個程序,顯示每一同學(xué)的成績等級
select xh,zf,dj=
case
when zf>70 then '優(yōu)秀'
when zf>65 then '良好'
when zf>=60 then '合格'
else '不合格'
end
from xsdn
6.求1-100偶數(shù)和(參考代碼)
declare @i int,@s int/*定義變量*/
set @i=0/*變量賦初值*/
set @s=0
while @i<=100/*條件*/
begin
set @s=@s+@i/*累加求和*/
set @i=@i+2/*偶數(shù)*/
end
print @s
7.求10!
8.為以下程序糾錯(求1-100的積)
declare @i int,@s int
set @i=0
set @s=0
while @i<=100 begin
set @s=@s*@iset @i=@i+2 end
print @s