第一篇:SQL語言簡介
SQL語言簡介
㈠、什么是SQL語言
SQL(Structure Query Languge,結(jié)構(gòu)化查詢語言)是一種數(shù)據(jù)庫專用的計算機(jī)語言,不管是Oracle、MS SQL、Access、MySQL或其他公司的數(shù)據(jù)庫,也不管數(shù)據(jù)庫建立在大型主機(jī)或個人計算機(jī)上,都可以使用SQL語言來訪問和修改數(shù)據(jù)庫的內(nèi)容。雖然不同公司的數(shù)據(jù)庫軟件多多少少會增加一些專屬的SQL語法,但大體上,它們還是遵循ASNI(美國國家標(biāo)準(zhǔn)協(xié)會)制定的SQL標(biāo)準(zhǔn)。因?yàn)镾QL語言具有易學(xué)習(xí)及閱讀等特性,所以SQL逐漸被各種數(shù)據(jù)庫廠商采用,而成為一種共通的標(biāo)準(zhǔn)查詢語言。只要你學(xué)會SQL,即可操作各種數(shù)據(jù)庫如Visual Foxpro、Access、dBase等等??傊?,SQL語言是各種數(shù)據(jù)庫都可以使用的數(shù)據(jù)庫查詢語言。
SQL語言不僅僅具有查詢數(shù)據(jù)庫的功能,而且可以對數(shù)據(jù)庫完成選取、增刪、更新與跳轉(zhuǎn)等各種操作。㈡、SQL語言的組成SQL語言是由命令(函數(shù))、子句、運(yùn)算符、加總函數(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、運(yùn)算符
子句參數(shù)中的運(yùn)算符使子句構(gòu)成不同的語法格式,如“字段1='100'”、“字段1>'100'”等。運(yùn)算符又分邏輯運(yùn)算符與比較運(yùn)算符。
◇邏輯運(yùn)算符如下:
⑴、運(yùn)算符:AND
中文意思:并且
說明:邏輯且
⑵、運(yùn)算符:OR
中文意思:或者
說明:邏輯非
⑶、運(yùn)算符:NOT
中文意思:取反
說明:邏輯非或邏輯反
◇比較運(yùn)算符如下:
⑴、運(yùn)算符:<說明:小于
⑵、運(yùn)算符:≤說明:小于等于
⑶、運(yùn)算符:≥說明:大于等于
⑷、運(yùn)算符:>說明:大于
⑸、運(yùn)算符:=說明:等于
⑹、運(yùn)算符:<>說明:不等于
⑺、運(yùn)算符:BETWEEN說明:用于設(shè)定范圍中文意思:在...之間
⑻、運(yùn)算符:LIKE說明:用于通配設(shè)定中文意思:如同
⑼、運(yùn)算符:IN說明:用于集合設(shè)定中文意思:在...之內(nèi)
4、加總函數(shù)
加總函數(shù)常常運(yùn)用在命令的參數(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ù))、子句、運(yùn)算符、及加總函數(shù)等組合在一起的。
第二篇: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條件表達(dá)式]
[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語言匯總
1.UPDATE MARK
SET 總分=語文+數(shù)學(xué)+英語
SELECT 準(zhǔn)考證號,姓名,總分
FROM MARK
WHERE 語文>=75 AND數(shù)學(xué)>=75 AND 英語>=75 AND 語文+數(shù)學(xué)+英語>=240
ORDER BY 總分 DESC
UPDATE MARK
SET 修正分?jǐn)?shù)=高考分?jǐn)?shù)*1.3
WHERE 籍貫='云南' OR 籍貫='福建'
SELECT AVG(高考分?jǐn)?shù))as平均分
FROM MARK
GROUP BY 性別
SELECT *
FROM cj
WHERE 期中成績>=80 OR 期末成績>=80 ORDER BY 課程號 ASC
UPDATE cj
SET平均成績=期中成績*0.2+期末成績*0.8
SELECT 書號,書名,作者
FROM gm
WHERE 書號 LIKE '理*' AND 單價>20 ORDER BY 單價 ASC
UPDATE gm
SET 金額=單價*數(shù)量
UPDATE Sale
SET 銷售金額=銷售數(shù)量*單價
UPDATE Wage
SET 實(shí)發(fā)工資=工資+獎金
SELECT 姓名,實(shí)發(fā)工資
FROM Wage
WHERE 姓名 LIKE '*輝'OR 姓名 LIKE ' *輝*' ORDER BY 年齡 DESC
SELECT 部門號, COUNT(*)as人數(shù)
FROM zhigong
GROUP BY 部門號
UPDATE kaoshi
SET平均成績=筆試成績*0.6+上機(jī)成績*0.4
SELECT 考號,姓名,平均成績
FROM kaoshi
WHERE 姓名 LIKE '黃*'
DELETE *
FROM mark
WHERE 學(xué)號='1003'
SELECT 學(xué)號,課程號,期末成績
FROM mark
WHERE 學(xué)號 LIKE '*1'
ORDER BY 期末成績 DESC
UPDATE fk
SET 超期罰款=單價*超期天數(shù)*0.005
SELECT *
FROM fk
WHERE 單價>=50 OR 超期天數(shù)>30 ORDER BY 超期罰款 DESC
UPDATE gp
SET 浮動盈虧=(市場現(xiàn)價-買入加個)*買入數(shù)量
SELECT 股票代碼,買入時間,浮動盈虧 FROM gp
WHERE 股票代碼 LIKE '6*' AND 浮動盈虧>0 ORDER BY 買入時間 ASC
UPDATE ah
SET 年齡=年齡+1
SELECT 寢室,COUNT(*)as 愛好球類人數(shù) FROM ah
WHERE 愛好 LIKE '*球'
GROUP BY 寢室
UPDATE JHKC
SET 總價=單價*庫存量
SELECT 設(shè)備編號,設(shè)備名稱,單價
FROM JHKC
WHERE 庫存量<300 AND 單價<500 ORDER BY 單價 DESC
UPDATE HCSK
SET 票價=600
WHERE 航班號=F807
SELECT 航班號,起飛日期,票價
FROM HCSK
WHERE 出發(fā)地='福州' AND 目的地='巴黎' ORDER BY 票價 ASC
第四篇: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.運(yùn)行以下代碼,觀察以下全局變量的功能
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 返回登錄記錄中遠(yuǎn)程服務(wù)器的名字 select @@spid返回當(dāng)前服務(wù)器進(jìn)程的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,并進(jìn)行以下操作
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
SQL語言以及SQL*PLUS工具
1.SQL語言組成:
? 數(shù)據(jù)查詢語言(DQL):SELECT;
? 數(shù)據(jù)操縱語言(DML):INSERT、UPDATE、DELETE; ? 事務(wù)控制語言(TCS):COMMIT、ROLLBACK;
? 數(shù)據(jù)定義語言(DDL):CREATE、DROP、ALTER;
? 數(shù)據(jù)控制語言(DCL):GRANT、REVOKE;
2.數(shù)據(jù)查詢語言(DQL):
? 一般格式:
1.SELECT [ALL|DISTINCT] <目標(biāo)列表達(dá)式> [, <目標(biāo)列表達(dá)式>]…
2.FROM <表名或者視圖名> [, <表名或者視圖名>]…
3.[WHERE <條件表達(dá)式>]
4.[GROUP BY <列名1> [HAVING <條件表達(dá)式>]]
5.[ORDER BY <列名2> [ASC|DESC];
? 實(shí)例:
6.SELECT empno,ename FROM emp WHERE ename<>'a' order by empno;
3.數(shù)據(jù)操縱語言(DML):
? INSERT:
? 一般格式:
7.INSERT
8.INTO <表名> [(<屬性列1>[, <屬性列2>]…)]
9.VALUES(<常量1>[, <常量2>]…);
? 實(shí)例:
INSERT INTO emp(empno,ename)VALUES(1,’test1’);
? UPDATE:
? 一般格式:
10.UPDATE<表名>
11.SET <列名>=<表達(dá)式> [,<列名>=<表達(dá)式>]…
12.[WHERE <條件>];
? 實(shí)例:
13.UPDATE emp SET ename=’test2’ WHERE empno=1;
? DELETE:
? 一般格式:
14.DELETE
15.FROM <表名>
16.[WHERE <條件>];
? 實(shí)例:
DELETE FROM emp WHERE empno=1;
4.事務(wù)控制語言(TCS):
? COMMIT:
? 說明:
5.6.7.8.17.放在DML之后,提交事務(wù)。? 一般格式: 18.COMMIT;? 實(shí)例: INSERT INTO emp(empno,ename)VALUES(1,’test1’);COMMIT;? ROLLBACK: ? 說明: 19.放在DML之后,回滾事務(wù)。? 一般格式: 20.ROLLBACK;? 實(shí)例: INSERT INTO emp(empno,ename)VALUES(1,’test1’);? ROLLBACK;課后練習(xí)(2小時): ? 用各種組合反復(fù)練習(xí)數(shù)據(jù)查詢語言DQL; ? 用各種組合反復(fù)練習(xí)數(shù)據(jù)操縱語言DML; ? 和DML結(jié)合反復(fù)練習(xí)事務(wù)控制語言TCS。SQL*PLUS簡介: ? 是Oracle數(shù)據(jù)庫提供的用于和數(shù)據(jù)庫交互的工具; ? 數(shù)據(jù)庫管理員管理數(shù)據(jù)庫的主要工具; ? 支持SQL-2和SQL-3標(biāo)準(zhǔn); ? 支持Oracle PL/SQL語言; ? 支持一套Oracle公司定義的SQL*PLUS操縱語言。SQL*PLUS語言介紹: ? 不是標(biāo)準(zhǔn)語言; ? 可以縮寫(一般取英文單詞的前4位); ? 不用加分號; ? 分成數(shù)據(jù)庫訪問、輸出格式設(shè)置、文本編輯、執(zhí)行程序、環(huán)境設(shè)置、其他等幾類。常用的SQL*PLUS命令:
? CONNECT(CONN):連接數(shù)據(jù)庫:
21.CONN SCOTT/TIGER@FIS
? EXIT:退出SQL*PLUS;
? DESCRIBE(DESC):顯示數(shù)據(jù)庫對象的結(jié)構(gòu):
22.DESC emp
? SHOW:顯示系統(tǒng)信息:
23.SHOW user
? EDIT:文本編輯;
? RUN(/):運(yùn)行前一命令;
? SAVE:保存前一命令:
24.SAVE c:temptest.txt
? PASSWORD(PASSW):修改當(dāng)前用戶的口令; ? SPOOL:將輸出結(jié)果保存到本地硬盤上
SPOOL c:temptest.txt SELECT * FORM emp;SPOOL OFF
START(@):路徑*.sql執(zhí)行腳本 column 字段名 format a35set line 100