第一篇:SQL語言簡介
SQL—結(jié)構(gòu)化查詢語言
數(shù)據(jù)定義語言
CREATE
DROP
ALTER
數(shù)據(jù)操縱語言
SELECT
INSERT
UPDATE
DELETE
數(shù)據(jù)控制語言
GRANT
REVOKE
數(shù)據(jù)定義語言
CREATE TABLE 學(xué)生
(學(xué)生ID SMALLINT NOT NULL UNIQUE,姓名 CHAR(10)NOT NULL UNIQUE,性別 CHAR(20)CHECK(VALUE IN(男,女)),生日 DATE,婚否 LOGIC,地址 CHAR(20),城市 CHAR(10),郵編 CHAR(6),電話 CHAR(20),PRMARY KEY(學(xué)生ID));
ALERT TABLE 學(xué)生
ADD 班級CHAR(10),DROP城市;
DROP TABLE 學(xué)生
數(shù)據(jù)操縱語言
INSERT INTO 學(xué)生
(101,張三,男,#1968-1-25#,FALSE,海淀太平路23號,北京,100858,90909090)
UPDATE 學(xué)生
SET 電話 = ‘888888888’
WHERE 學(xué)生ID = 10
1DELETEFROM成績WHERE成績 < 60
一般格式:
SELECT[DESTINCT] <字段列表>
FROM <表名列表>
[WHERE條件表達式]
[GROUP BY <字段列表> [HAVING <條件>]]
[ORDER BY <字段列表 ASC/DESC>]
投影、篩選、排序:
SELECTDESTINCT學(xué)生ID,姓名,性別,生日FROM 學(xué)生
WHERE 性別 = ‘男’
ORDER BY 生日
WHERE 工資 BETWEEN 1000 AND 2999
WHERE 城市 IN(‘北京’,’上海’,’廣州’)
WHERE 姓名 LIKE‘王*’
連接
SELECT學(xué)生ID,姓名,課程,成績
FROM 學(xué)生 JOIN 學(xué)生.學(xué)生ID = 成績.學(xué)生ID
分組
SELECT學(xué)生ID,姓名,課程,成績
FROM 學(xué)生 JOIN 學(xué)生.學(xué)生ID = 成績.學(xué)生ID GROUP BY 課程
授權(quán)語句
GRANT <權(quán)力> ON <表名> TO <用戶名>
收回授權(quán)
REVOKE <權(quán)力> ON <表名> FROM <用戶名>
SELECT READ WRITE UPDATE ……
第二篇:SQL語言簡介
SQL語言簡介
㈠、什么是SQL語言
SQL(Structure Query Languge,結(jié)構(gòu)化查詢語言)是一種數(shù)據(jù)庫專用的計算機語言,不管是Oracle、MS SQL、Access、MySQL或其他公司的數(shù)據(jù)庫,也不管數(shù)據(jù)庫建立在大型主機或個人計算機上,都可以使用SQL語言來訪問和修改數(shù)據(jù)庫的內(nèi)容。雖然不同公司的數(shù)據(jù)庫軟件多多少少會增加一些專屬的SQL語法,但大體上,它們還是遵循ASNI(美國國家標準協(xié)會)制定的SQL標準。因為SQL語言具有易學(xué)習(xí)及閱讀等特性,所以SQL逐漸被各種數(shù)據(jù)庫廠商采用,而成為一種共通的標準查詢語言。只要你學(xué)會SQL,即可操作各種數(shù)據(jù)庫如Visual Foxpro、Access、dBase等等。總之,SQL語言是各種數(shù)據(jù)庫都可以使用的數(shù)據(jù)庫查詢語言。
SQL語言不僅僅具有查詢數(shù)據(jù)庫的功能,而且可以對數(shù)據(jù)庫完成選取、增刪、更新與跳轉(zhuǎn)等各種操作。㈡、SQL語言的組成SQL語言是由命令(函數(shù))、子句、運算符、加總函數(shù)及通配符等組成,分述如下:
1、命令
SQL的命令可分成數(shù)據(jù)定義語言與數(shù)據(jù)操作語言,數(shù)據(jù)定義語言可用來建立新的數(shù)據(jù)庫、數(shù)據(jù)表、字段及索引等,本教程不予介紹;另一為數(shù)據(jù)操作語言,可用來建立查詢表、排序、篩選數(shù)據(jù)、修改、增刪等動作。數(shù)據(jù)定義語言命令常用的有選擇、添加、刪除和修改這四種:
⑴、命令:SELECT
中文意思:選擇
說明:用于找出合乎條件的記錄
⑵、命令:INSERT
中文意思:插入
說明:用于增加一筆記錄或合并兩個數(shù)據(jù)表
⑶、命令:UPDATE
中文意思:更新
說明:用于更正合乎條件的記錄
⑷、命令:DELETE
中文意思:刪除
說明:用于刪除合乎條件的記錄
2、子句
子句是用于設(shè)定命令要操作的對象(即參數(shù)),SQL所用的子句如下:
⑴、子句:FROM
中文意思:數(shù)據(jù)表
說明:用于指定數(shù)據(jù)表
⑵、子句:WHERE
中文意思:條件
說明:用于設(shè)定條件
⑶、GROUP BY
中文意思:分組(合并)
說明:用于設(shè)定分組
⑷、ORDER BY
中文意思:排序
說明:用于設(shè)定輸出的順序及字段
3、運算符
子句參數(shù)中的運算符使子句構(gòu)成不同的語法格式,如“字段1='100'”、“字段1>'100'”等。運算符又分邏輯運算符與比較運算符。
◇邏輯運算符如下:
⑴、運算符:AND
中文意思:并且
說明:邏輯且
⑵、運算符:OR
中文意思:或者
說明:邏輯非
⑶、運算符:NOT
中文意思:取反
說明:邏輯非或邏輯反
◇比較運算符如下:
⑴、運算符:<說明:小于
⑵、運算符:≤說明:小于等于
⑶、運算符:≥說明:大于等于
⑷、運算符:>說明:大于
⑸、運算符:=說明:等于
⑹、運算符:<>說明:不等于
⑺、運算符:BETWEEN說明:用于設(shè)定范圍中文意思:在...之間
⑻、運算符:LIKE說明:用于通配設(shè)定中文意思:如同
⑼、運算符:IN說明:用于集合設(shè)定中文意思:在...之內(nèi)
4、加總函數(shù)
加總函數(shù)常常運用在命令的參數(shù)中,如:“SELECT SUM(數(shù)學(xué)),AVG(數(shù)學(xué))FROM 成績單”。⑴、加總函數(shù):AVG
中文意思:平均
說明:用于求指定條件的平均
⑵、加總函數(shù):COUNT
中文意思:數(shù)量
說明:用于求指定的數(shù)量
⑶、加總函數(shù):SUM
中文意思:和
說明:用于求指定條件的和
⑷、加總函數(shù):MAX
中文意思:最大值
說明:用于求指定條件的最大值
⑸、加總函數(shù):MIN
中文意思:最小值
說明:用于求指定條件的最小值
5、通配符
⑴、通配符:%意義:任何長度的字符串(包括0)
⑵、通配符:_意義:下劃線表示任何一個字符
⑶、通配符:[ ]意義:中括號表示某個范圍內(nèi)的一個字符
在下一講將說明SQL語言是怎樣把命令(函數(shù))、子句、運算符、及加總函數(shù)等組合在一起的。
第三篇: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] 目標列FROM 表(或查詢)
[WHERE 條件表達式]
[GROUP BY 列名1 HAVING 過濾表達式]
[ORDER BY 列名2[ASC|DESC]]
功能
根據(jù)WHERE子句中的表達式,從指定的表或視圖中找出滿足條件的記錄,按目標列顯示數(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é)果按分數(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è)標準語言
在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(美國國家標準協(xié)會)的規(guī)定,SQL被作為關(guān)系型數(shù)據(jù)庫管理系統(tǒng)的標準語言。SQL語句可以用來執(zhí)行各種各樣的操作,例如更新數(shù)據(jù)庫中的數(shù)據(jù),從數(shù)據(jù)庫中提取數(shù)據(jù)等。目前,絕大多數(shù)流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),如Oracle, Sybase, Microsoft SQL Server, Access等都采用了SQL語言標準。包括數(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 返回當前服務(wù)器的連接數(shù)目
select 1@@rowcount 返回上一條T-SQL語句影響的數(shù)據(jù)行數(shù) select @@error返回上一條T-SQL語句執(zhí)行后的錯誤號 select @@procid返回當前存儲過程的ID號
select @@remserver 返回登錄記錄中遠程服務(wù)器的名字 select @@spid返回當前服務(wù)器進程的ID標識
select @@version 返回當前SQL Server服務(wù)器的版本和處理器類型 select @@language 返回當前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
第五篇:SQL 語言
SQL語言
create database student
on primary
(name=student_data1,filename='c:student_data1.mdf',size=10M,maxsize=100M,filegrowth=10%)
filegroupstudent_group分組
(name=student_data2,filename='c:student_data2.ndf',size=10M,maxsize=100M,filegrowth=10%)
log on
(name=student_log1,filename='c:student_data1.ldf',size=10M,maxsize=100M,filegrowth=10%)
create table xi
(系編號 char(2)primary key,系名varchar(20))主碼
insert into xi values('01','物理系')
insert into xi values('02','化學(xué)系')
select *from xi查詢
create table student
(學(xué)號 char(11)primary key,姓名varchar(10),民族 char(2)default'漢',出生日期datetime ,獎學(xué)金 money check(獎學(xué)金<=8000), 系編號 char(2)foreign key references xi(系編號))
默認值,約束,外碼
insert into student values('20090214201','馬帥', '漢','1990-1-8',1500, '01')
insert into student values('20100214202','周伊','回' ,'1989-2-4',500,'02')
update student set 出生日期='1911-3-1'where 學(xué)號 ='20100214201'
更新數(shù)據(jù)
select* from student/ 3
alter table student add 性別 char(2)check(性別='男'or 性別='女')
增加列
update student set 性別 ='男' where 學(xué)號 ='20090214201' update student set 性別 ='女' where 學(xué)號 ='20100214202' select student* from student where left(學(xué)號,4)=’2009’ 查詢大三學(xué)生的詳細信息
create table kc
(課程編號 char(2),課程名varchar(20))
alter table kc alter column 課程編號 char(2)not null 修改字段
alter table kc addconstraint pk_kcprimary key(課程編號)加主碼(加主碼的字段不能為空)
insert into kc values('01','語文')
insert into kc values('02','數(shù)學(xué)')
insert into kc values('03','英語')
update kc set課程名 ='歷史學(xué)' where 課程編號= '05' execute sp_rename '課程編號','課程名','column'
改名
create table cj
(學(xué)號 char(11)foreign key references student(學(xué)號))alter table cj add 課程編號 char(2)
增加列
alter table cj add foreign key(課程編號)references kc(課程編號)
增加外碼
alter table cj add 成績varchar(3)
insert into cj values('20100214201','01','69')
insert into cj values('20100214201','02','90')
insert into cj values('20100214201','03','56')
insert into cj values('20100214202','01','26')
insert into cj values('20100214202','02','54')
insert into cj values('20100214202','03','89')
1.select student.*,課程名,成績 ,系名 from student ,kc,cj ,xi where student.系編號 = xi.系編號and cj.學(xué)號=student.學(xué)號 and kc.課程編號=cj.課程編號 and student.學(xué)號='20100214202'
查詢學(xué)號為20100214202的學(xué)生student表的全部內(nèi)容和每門課的成績及所在系
2.select 姓名,課程名,成績,系名 from student,kc,cj,xi where student.學(xué)號 = cj.學(xué)號 and student.系編號=xi.系編號 and cj.課程編號= kc.課程編號 and month(getdate())=month(student.出生日期)and day(getdate())= day(student.出生日期)
查詢今天過生日的學(xué)生的姓名每門課的成績及系名
3.select student.學(xué)號,課程名,成績,系名 from student,kc,cj,xi where student.學(xué)號=cj.學(xué)號 and kc.課程編號=cj.課程編號 and student.系編號=xi.系編號 and cj.學(xué)號 =student.學(xué)號 查看所有學(xué)生的學(xué)號的每門課的成績及系名
4.Select count()as 學(xué)生數(shù) from student ,xi where student.系編號=xi.系編號and xi.系名=’物理系’
查看物理系的學(xué)生數(shù)
5.Select student.姓名,avg(cj.成績)as平均成績 from student, cj where student.學(xué)號=cj.學(xué)號
查看所有學(xué)生的平均成績