sql腳本語法
步驟:(1) 創建一個批處理文件:打開記事本,創建資料庫連接信息(例如,server name,username,password,databasename等)以及要執行的*.sql腳本名稱。具體語法參考下文"osql 實用工具" 。 將文件的擴展名改為.bat 並保存。
示例1:指定待執行sql 文件的相對路徑
osql -S admin\admin -U sa -P sa -d TestDB -i c:\test.sql
pause
示例2: 待執行文件與bat文件在同一個目錄,指定相對路徑
set localdir=%~dp0
osql -S (local) -U sa -P sa -d Test -i %localdir%\test1.sql
osql -S (local) -U sa -P sa -d Test -i %localdir%\test2.sql
osql -S (local) -U sa -P sa -d Test -i %localdir%\test3.sql
pause
(2) 創建需要執行的sql 腳本, test.sql,test2.sql 和test3.sql, 並放在步驟(1)示例1中指定的位置。本例為c:\ 根目錄。如果用示例2,將待執行的sql和bat文件放在同一個目錄下。
(3) 雙擊*.bat 文件並查看運行結果。
Ⅱ sql server 2000如何執行sql腳本
在查詢分析器里,
先連接到b資料庫
然後用查詢分析器打開a.sql或者用記事本打開拷貝到查詢分析里,執行!
Ⅲ 求SQL語法,就語法不要文字
1.創建表
(1)用Create Table 命令創建表
語法:
Create Table tabl_name
({
}column_name As computed_column_expression
}
}[,...n]
)
[On {fiegroup | Default}]
[Textimage_On {fiegroup | Default}]
例子:
打開cust資料庫,創建一個表,該表包含了學生的有關信息,即有學號、姓名、性別、出生日期、籍貫、聯系電話、住址和備注信息。
Use cust
Create Table students
(
number int not null,
name varchar(10) not null,
sex char(2) null,
birthday datetime null,
hometown varchar(30) null,
telphone_no varchar(12) null,
address varchar(30) null,
others varchar(50) null
)
在這個表中number表示學生代號,數據類型為int,不允許為空;name表示學生姓名,數據類型為varchar,長度為10,不允許為空;sex表示學生的性別,數據類型為char,長度為2,允許為空;birthday表示學生的出生日期,數據類型為datetime,允許為空;hometown表示學生的籍貫,數據類型為varchar,長度為30,允許為空;telephone_no表示學生的聯系電腦,數據類型為varchar,長度為12,允許為空;address表示學生的住址,數據類型為varchar,長度為30,允許為空;others表示學生的備注信息,長度為50,允許為空。
2.修改表的結構
(1)使用T-SQL語句增加和刪除一個新列
語法:
Alter Table table
{
ADO
{[]
|colun_name As computed_column_expression
|[]
}[,...n]
|Drop
{Column column
}[,...n]
}
例子:打開cust資料庫,修改其中的表students的結構,增加一個新欄位,欄位名為ying,數據類型是varchar,長度是10,沒有默認值,充許為空。
Use cust
Alter Table students Add ying varchar(10) null
打開cust資料庫,修改其中的表students的結構,刪除一個欄位,欄位名為ying。
Use cust
Alter Table students Drop Column ying
3.向表中插入數據
(1)用 Insert 語句
語法如下:
Insert [Into]
{table_name|view_name}[(column_list)]
{Values|values_list|select_statement}
注意:在插入數據時,字元數據和日期數據要使用引號引起來。
例子:
Use cust
Insert Into students
Values (11,"影子","男","1999-12-12","湖北","83779805","武漢市橋口區","VB愛好者")
打開cust資料庫,向students表中插入數據
(2)用Default 選項
在插入數據時,可以使用Default選項。Default選項有兩種形式,一種形式是Default Values,另一種是Default。
Default Values
形式為表中的某一行的所有列插入默認值。使用這種形式的前提條件是表中的所有列必須是這四種類型之一:Identity屬性,Timestamp數據類型,允許為Null,或者有一個指定的默認值。否則,會錯誤信息。
例子:
Use cust
Insert Into students Default Values
這個例子會出現錯誤,因為students表的number欄位是設置為不允許為空的。
Default 形式是為表中的某一列插入默認值。要插入的該列必須具備一定的條件,即該列要麼是Timestamp
數據類型,要麼是允許為Null,要麼是有一個指定的默認值,否則,會出現錯誤信息。
例子:
Use cust
Insert Into students
Values(11,"影子",Default,Default,Default,Default,Default,Default)
由天前2個欄位不能為空,所以要賦值,否則會出現錯誤,而後面的6個欄位允許為空,因此可以調用Default默認。
(3)插入部分數據
在使用Insert語句插入數據是,還可以插入部分數據,也就是可以為每一行的指定的部分列插入數據。在插入部分數據時,應該注意以下三個問題:
☆在 Insert 子句中,指定要插入數據的列名。
☆在 Values 子句中,列出與列名對應的數據。列名的順序和數據的順序應該完全對應。
☆在 Insert 子句中,沒有列出的列應該至少具有這四種類型之一:Identtty 屬性,Timestamp 數據類型,允許為
Null,或者有一個指定的默認值。否則,會出現錯誤信息。
例子:
Use cust
Insert Into students (number,name)
Values (110,"影子")
打開cust資料庫,向students表中插入一行數據
注意:如用下例語句將發生錯誤,因為name欄位是不允許為空的(在創建資料庫時設定的)
Insert Into students (number)
Values (110)
(4)用 Select 語句插入多條數據
Insert 語句插入數據的特點是每一次只能插入一行數據。相反,Select 也可以用在 Insert 語句中,並且可以一次插入多條數據。使用 Select
語句插入數據的語法形式如下:
Insert table_name
Select column_list
From table_list
Where search_conditions
在使用 Select 語句插入數據時,應該注意下面幾點:
☆在 Insert 語句中使用 Select 時,他們參考的表既可以是相同的,也可以是不同的。
☆要插入數據的表必須已經存在。
☆要插入數據的表必須和 Select 的結果集兼容。兼容的含義是列的數量和順序必須相同,列的數據類型或者相同,或者SQL Server 可以自動轉換。
例子:
Use cust
Insert students
Select number,name,sex,birthday,hometown,telphone_no,address,others
From students
注意:
Select 後面的欄位要輸完整,這個例子是自己向自己插入多條數據(自己向自己插入是被允許的)
補充:
你還可以「From students」後面加上「Where name="影子"」,只插入name等於影子的記錄,可以用And 和 Or 加上多個條件。
(5)使用 Select Into 插入數據到一個新表中
帶有 Into 子句的 Select
語句允許用戶定義一個新表並且把數據插入到新表中。這種方法不同於前面講述的那些方法。在前面的那些方法中,一個共同的特點,是在數據輸入之前表已經存在。而使用
Select Into 插入數據的方法,是在插入數據的過程中建立新表。
Select Into 語句的語法如下:
Select select_list
Into new_table_name
From table_list
Where search_conditions
在使用 Select Into 插入數據時,要注意下面幾點:
☆在某個資料庫中使用 Select Into 插入數據時,設置該資料庫的 Select Into/Bulk Copy 為真。
☆新表不能存在,否則會產生錯誤信息。
☆新表中的列和行是基於查詢結果集
☆要插入的數據不記錄在日誌中。
☆在select_list 中出現的列應該使用別名,否則,新表中的列沒有列名。沒列名的表只能通過 Select * From new_table_name
的形式查詢。因此,應該為列起個別名。
☆這種方法多用在對列進行各種計算的情況。
例子:
Select number,name
Into newcust1
From students
創建新的表newcust1,插入students表中的number和name欄位的所有數據。
補充:如果要插入所有欄位的記錄,則「Select *」,也可在「From students」後加條件,方法和上個例子一樣。
(6)用 UPdate 語句修改表中的數據
Update 語句用來修改表中已存在的數據。Update 語句既可以一次修改一行數據,也可以一次修改許多行,甚至可以一次修改表中的全部數據。Update
語句使用 Where 子句指定要修改的行,使用 Set 子句給出新的數據。新數據可以是常量,也可以是指定的表達式,還可以是使用 From 子句來自其他表的數據。
Update 語句的語法如下:
Update {table_name|view_name}
Set {column_list}=expression [,. . .]
[Where clause]
在使用 Update 語句時,如果沒有使用 Where 子句,那麼就對表中所有的行進行修改。如果使用Update
語句修改數據時與數據完整性約束有沖突,那麼修改就不會發生,整個修改事務全部滾回。例如,這種沖突可能是所輸入的值是錯誤的數據類型,或者所輸入的值違背了在該列定義的規則約束,等等。
例子:
Use cust
Update students
Set name=name+"007"
Where number>100
打開cust資料庫,修改students表,使number>100的數據的name的值全部加"007"。
4.用 Delete 語句刪除表中的數據
當資料庫中的數據不需要的進修可以刪除。一般情況下,刪除數據使用 Delete 語句。Delete 語句可以一次
回答者: yeqiezi - 高級經理 六級 2-5 08:46
我來評論>>
評價已經被關閉 目前有 1 個人評價
好
0% (0)不好
100% (1)
相關內容
• 誰能把SQL的入門以及下載地址和基本操作詳細說下謝謝
• 誰能幫我做一個以SQL的資料庫為底本,用C,C++或VB實...
• access導入MSSQL 後查詢表不能正常怎麼辦
• Sql存儲過程問題,求高手解決
• SQL Server 2005資料庫管理與應用高手修煉指南 pdf 下載
更多相關問題>>
查看同主題問題:基本操作
其他回答 共 3 條
select
回答者: catjj1748 - 魔法師 五級 2-5 08:52
1、說明:創建資料庫
CREATE DATABASE database-name
2、說明:刪除資料庫
drop database dbname
3、說明:備份sql server
--- 創建 備份數據的 device
USE master
EXEC sp_admpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'
--- 開始 備份
BACKUP DATABASE pubs TO testBack
4、說明:創建新表
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not
null],..)
根據已有的表創建新表:
A:create table tab_new like tab_old (使用舊表創建新表)
B:create table tab_new as select col1,col2… from tab_old definition only
5、說明:
刪除新表:drop table tabname
6、說明:
增加一個列:Alter table tabname add column col type
註:列增加後將不能刪除。DB2中列加上後數據類型也不能改變,唯一能改變的是增加varchar類型的長度。
7、說明:
添加主鍵:Alter table tabname add primary key(col)
說明:
刪除主鍵:Alter table tabname drop primary key(col)
8、說明:
創建索引:create [unique] index idxname on tabname(col….)
刪除索引:drop index idxname
註:索引是不可更改的,想更改必須刪除重新建。
9、說明:
創建視圖:create view viewname as select statement
刪除視圖:drop view viewname
10、說明:幾個簡單的基本的sql語句
選擇:select * from table1 where 范圍
插入:insert into table1(field1,field2) values(value1,value2)
刪除:delete from table1 where 范圍
更新:update table1 set field1=value1 where 范圍
查找:select * from table1 where field1 like 』%value1%』 ---like的語法很精妙,查資料!
排序:select * from table1 order by field1,field2 [desc]
總數:select count * as totalcount from table1
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1) as avgvalue from table1
最大:select max(field1) as maxvalue from table1
最小:select min(field1) as minvalue from table1
11、說明:幾個高級查詢運算詞
A: UNION 運算符
UNION 運算符通過組合其他兩個結果表(例如 TABLE1 和 TABLE2)並消去表中任何重復行而派生出一個結果表。當 ALL 隨 UNION
一起使用時(即 UNION ALL),不消除重復行。兩種情況下,派生表的每一行不是來自 TABLE1 就是來自 TABLE2。
B: EXCEPT 運算符
EXCEPT 運算符通過包括所有在 TABLE1 中但不在 TABLE2 中的行並消除所有重復行而派生出一個結果表。當 ALL 隨 EXCEPT 一起使用時
(EXCEPT ALL),不消除重復行。
C: INTERSECT 運算符
INTERSECT 運算符通過只包括 TABLE1 和 TABLE2 中都有的行並消除所有重復行而派生出一個結果表。當 ALL 隨 INTERSECT
一起使用時 (INTERSECT ALL),不消除重復行。
註:使用運算詞的幾個查詢結果行必須是一致的。
12、說明:使用外連接
A、left outer join:
左外連接(左連接):結果集幾包括連接表的匹配行,也包括左連接表的所有行。
SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
B:right outer join:
右外連接(右連接):結果集既包括連接表的匹配連接行,也包括右連接表的所有行。
C:full outer join:
全外連接:不僅包括符號連接表的匹配行,還包括兩個連接表中的所有記錄。
其次,大家來看一些不錯的sql語句
1、說明:復製表(只復制結構,源表名:a 新表名:b) (Access可用)
法一:select * into b from a where 1<>1
法二:select top 0 * into b from a
2、說明:拷貝表(拷貝數據,源表名:a 目標表名:b) (Access可用)
insert into b(a, b, c) select d,e,f from b;
3、說明:跨資料庫之間表的拷貝(具體數據使用絕對路徑) (Access可用)
insert into b(a, b, c) select d,e,f from b in 『具體資料庫』 where 條件
例子:..from b in '"&Server.MapPath(".")&"\data.mdb" &"' where..
4、說明:子查詢(表名1:a 表名2:b)
select a,b,c from a where a IN (select d from b ) 或者: select a,b,c from a where
a IN (1,2,3)
5、說明:顯示文章、提交人和最後回復時間
select a.title,a.username,b.adddate from table a,(select max(adddate) adddate
from table where table.title=a.title) b
6、說明:外連接查詢(表名1:a 表名2:b)
select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
7、說明:在線視圖查詢(表名1:a )
select * from (SELECT a,b,c FROM a) T where t.a > 1;
8、說明:between的用法,between限制查詢數據范圍時包括了邊界值,not between不包括
select * from table1 where time between time1 and time2
select a,b,c, from table1 where a not between 數值1 and 數值2
9、說明:in 的使用方法
select * from table1 where a [not] in (『值1』,』值2』,』值4』,』值6』)
10、說明:兩張關聯表,刪除主表中已經在副表中沒有的信息
delete from table1 where not exists ( select * from table2 where
table1.field1=table2.field1 )
11、說明:四表聯查問題:
select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner
join d on a.a=d.d where .....
12、說明:日程安排提前五分鍾提醒
SQL: select * from 日程安排 where datediff('minute',f開始時間,getdate())>5
13、說明:一條sql 語句搞定資料庫分頁
select top 10 b.* from (select top 20 主鍵欄位,排序欄位 from 表名 order by 排序欄位 desc) a,表名
b where b.主鍵欄位 = a.主鍵欄位 order by a.排序欄位
14、說明:前10條記錄
select top 10 * form table1 where 范圍
15、說明:選擇在每一組b值相同的數據中對應的a最大的記錄的所有信息(類似這樣的用法可以用於論壇每月排行榜,每月熱銷產品分析,按科目成績排名,等等.)
select a,b,c from tablename ta where a=(select max(a) from tablename tb where
tb.b=ta.b)
16、說明:包括所有在 TableA 中但不在 TableB和TableC 中的行並消除所有重復行而派生出一個結果表
(select a from tableA ) except (select a from tableB) except (select a from
tableC)
17、說明:隨機取出10條數據
select top 10 * from tablename order by newid()
18、說明:隨機選擇記錄
select newid()
19、說明:刪除重復記錄
Delete from tablename where id not in (select max(id) from tablename group by
col1,col2,...)
20、說明:列出資料庫里所有的表名
select name from sysobjects where type='U'
21、說明:列出表裡的所有的
select name from syscolumns where id=object_id('TableName')
22、說明:列示type、vender、pcs欄位,以type欄位排列,case可以方便地實現多重選擇,類似select 中的case。
select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when
'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) FROM
tablename group by type
顯示結果:
type vender pcs
電腦 A 1
電腦 A 1
光碟 B 2
光碟 A 2
手機 B 3
手機 C 3
23、說明:初始化表table1
TRUNCATE TABLE table1
24、說明:選擇從10到15的記錄
select top 5 * from (select top 15 * from table order by id asc) table_別名 order
by id desc
隨機選擇資料庫記錄的方法(使用Randomize函數,通過SQL語句實現)
對存儲在資料庫中的數據來說,隨機數特性能給出上面的效果,但它們可能太慢了些。你不能要求ASP「找個隨機數」然後列印出來。實際上常見的解決方案是建立如下所示的循環:
Randomize
RNumber = Int(Rnd*499) +1
While Not objRec.EOF
If objRec("ID") = RNumber THEN
... 這里是執行腳本 ...
end if
objRec.MoveNext
Wend
這很容易理解。首先,你取出1到500范圍之內的一個隨機數(假設500就是資料庫內記錄的總數)。然後,你遍歷每一記錄來測試ID
的值、檢查其是否匹配RNumber。滿足條件的話就執行由THEN 關鍵字開始的那一塊代碼。假如你的RNumber
等於495,那麼要循環一遍資料庫花的時間可就長了。雖然500這個數字看起來大了些,但相比更為穩固的企業解決方案這還是個小型資料庫了,後者通常在一個資料庫內就包含了成千上萬條記錄。這時候不就死定了?
採用SQL,你就可以很快地找出准確的記錄並且打開一個只包含該記錄的recordset,如下所示:
Randomize
RNumber = Int(Rnd*499) + 1
SQL = "SELECT * FROM Customers WHERE ID = " & RNumber
set objRec = ObjConn.Execute(SQL)
Response.WriteRNumber & " = " & objRec("ID") & " " & objRec("c_email")
不必寫出RNumber
和ID,你只需要檢查匹配情況即可。只要你對以上代碼的工作滿意,你自可按需操作「隨機」記錄。Recordset沒有包含其他內容,因此你很快就能找到你需要的記錄這樣就大大降低了處理時間。
再談隨機數
現在你下定決心要榨乾Random 函數的最後一滴油,那麼你可能會一次取出多條隨機記錄或者想採用一定隨機范圍內的記錄。把上面的標准Random
示例擴展一下就可以用SQL應對上面兩種情況了。
為了取出幾條隨機選擇的記錄並存放在同一recordset內,你可以存儲三個隨機數,然後查詢資料庫獲得匹配這些數字的記錄:
SQL = "SELECT * FROM Customers WHERE ID = " & RNumber & " OR ID = " & RNumber2 &
" OR ID = " & RNumber3
假如你想選出10條記錄(也許是每次頁面裝載時的10條鏈接的列表),你可以用BETWEEN
或者數學等式選出第一條記錄和適當數量的遞增記錄。這一操作可以通過好幾種方式來完成,但是 SELECT 語句只顯示一種可能(這里的ID 是自動生成的號碼):
SQL = "SELECT * FROM Customers WHERE ID BETWEEN " & RNumber & " AND " & RNumber
& "+ 9"
注意:以上代碼的執行目的不是檢查資料庫內是否有9條並發記錄。
隨機讀取若干條記錄,測試過
Access語法:SELECT top 10 * From 表名 ORDER BY Rnd(id)
Sql server:select top n * from 表名 order by newid()
mysql select * From 表名 Order By rand() Limit n
Access左連接語法(最近開發要用左連接,Access幫助什麼都沒有,網上沒有Access的SQL說明,只有自己測試, 現在記下以備後查)
語法 select table1.fd1,table1,fd2,table2.fd2 From table1 left join table2 on
table1.fd1,table2.fd1 where ...
使用SQL語句 用...代替過長的字元串顯示
語法:
SQL資料庫:select case when len(field)>10 then left(field,10)+'...' else field end
as news_name,news_id from tablename
Access資料庫:SELECT iif(len(field)>2,left(field,2)+'...',field) FROM tablename;
Conn.Execute說明
Execute方法
該方法用於執行SQL語句。根據SQL語句執行後是否返回記錄集,該方法的使用格式分為以下兩種:
1.執行SQL查詢語句時,將返回查詢得到的記錄集。用法為:
Set 對象變數名=連接對象.Execute("SQL 查詢語言")
Execute方法調用後,會自動創建記錄集對象,並將查詢結果存儲在該記錄對象中,通過Set方法,將記錄集賦給指定的對象保存,以後對象變數就代表了該記錄集對象。
2.執行SQL的操作性語言時,沒有記錄集的返回。此時用法為:
連接對象.Execute "SQL 操作性語句" [, RecordAffected][, Option]
•RecordAffected
為可選項,此出可放置一個變數,SQL語句執行後,所生效的記錄數會自動保存到該變數中。通過訪問該變數,就可知道SQL語句隊多少條記錄進行了操作。
•Option
可選項,該參數的取值通常為adCMDText,它用於告訴ADO,應該將Execute方法之後的第一個字元解釋為命令文本。通過指定該參數,可使執行更高效。
•BeginTrans、RollbackTrans、CommitTrans方法
這三個方法是連接對象提供的用於事務處理的方法。BeginTrans用於開始一個事物;RollbackTrans用於回滾事務;CommitTrans用於提交所有的事務處理結果,即確認事務的處理。
事務處理可以將一組操作視為一個整體,只有全部語句都成功執行後,事務處理才算成功;若其中有一個語句執行失敗,則整個處理就算失敗,並恢復到處里前的狀態。
BeginTrans和CommitTrans用於標記事務的開始和結束,在這兩個之間的語句,就是作為事務處理的語句。判斷事務處理是否成功,可通過連接對象的Error集合來實現,若Error集合的成員個數不為0,則說明有錯誤發生,事務處理失敗。Error集合中的每一個Error對象,代表一個錯誤信息。
Ⅳ sql 語句大全
1、說明:創建資料庫
CREATE DATABASE database-name
2、說明:刪除資料庫
drop database dbname
3、說明:備份sql server
--- 創建 備份數據的 device
USE master
EXEC sp_admpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'
--- 開始 備份
BACKUP DATABASE pubs TO testBack
4、說明:創建新表
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
根據已有的表創建新表:
A:create table tab_new like tab_old (使用舊表創建新表)
B:create table tab_new as select col1,col2… from tab_old definition only
5、說明:刪除新表
drop table tabname
6、說明:增加一個列
Alter table tabname add column col type
註:列增加後將不能刪除。DB2中列加上後數據類型也不能改變,唯一能改變的是增加varchar類型的長度。
7、說明:添加主鍵: Alter table tabname add primary key(col)
說明:刪除主鍵: Alter table tabname drop primary key(col)
8、說明:創建索引:create [unique] index idxname on tabname(col….)
刪除索引:drop index idxname
註:索引是不可更改的,想更改必須刪除重新建。
9、說明:創建視圖:create view viewname as select statement
刪除視圖:drop view viewname
10、說明:幾個簡單的基本的sql語句
選擇:select * from table1 where 范圍
插入:insert into table1(field1,field2) values(value1,value2)
刪除:delete from table1 where 范圍
更新:update table1 set field1=value1 where 范圍
查找:select * from table1 where field1 like 』%value1%』 ---like的語法很精妙,查資料!
排序:select * from table1 order by field1,field2 [desc]
總數:select count as totalcount from table1
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1) as avgvalue from table1
最大:select max(field1) as maxvalue from table1
最小:select min(field1) as minvalue from table1
11、說明:幾個高級查詢運算詞
A: UNION 運算符
UNION 運算符通過組合其他兩個結果表(例如 TABLE1 和 TABLE2)並消去表中任何重復行而派生出一個結果表。當 ALL 隨 UNION一起使用時(即 UNION ALL),不消除重復行。兩種情況下,派生表的每一行不是來自 TABLE1 就是來自 TABLE2。
B: EXCEPT 運算符
EXCEPT運算符通過包括所有在 TABLE1 中但不在 TABLE2 中的行並消除所有重復行而派生出一個結果表。當 ALL 隨 EXCEPT 一起使用時 (EXCEPT ALL),不消除重復行。
C: INTERSECT 運算符
INTERSECT運算符通過只包括 TABLE1 和 TABLE2 中都有的行並消除所有重復行而派生出一個結果表。當 ALL隨 INTERSECT 一起使用時 (INTERSECT ALL),不消除重復行。
註:使用運算詞的幾個查詢結果行必須是一致的。
12、說明:使用外連接
A、left (outer) join:
左外連接(左連接):結果集幾包括連接表的匹配行,也包括左連接表的所有行。
SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
B:right (outer) join:
右外連接(右連接):結果集既包括連接表的匹配連接行,也包括右連接表的所有行。
C:full/cross (outer) join:
全外連接:不僅包括符號連接表的匹配行,還包括兩個連接表中的所有記錄。
12、分組:Group by:
一張表,一旦分組 完成後,查詢後只能得到組相關的信息。
組相關的信息:(統計信息) count,sum,max,min,avg 分組的標准)
在SQLServer中分組時:不能以text,ntext,image類型的欄位作為分組依據
在selecte統計函數中的欄位,不能和普通的欄位放在一起;
13、對資料庫進行操作:
分離資料庫: sp_detach_db;附加資料庫:sp_attach_db 後接表明,附加需要完整的路徑名
14.如何修改資料庫的名稱:
sp_renamedb 'old_name', 'new_name'
Ⅳ sql腳本和sql語言有什麼區別
sql腳本是有sql語言構成。
sql語句和sql腳本語法一樣,一般sql語句都是用來完成一個簡單的功能。
其實單個sql語句亦是sql腳本。
Ⅵ sql腳本文件的語法規則
you can find all in sql help
Ⅶ sql資料庫腳本就是指sql語句嗎,附加上資料庫後如何查看腳步呢
腳本也可以說是SQL
語句
腳本一般是指對資料庫對象進行操作的SQL語句。一般是DDL
不知道你是要查看附加資料庫的腳本,還是查看資料庫表結構的腳本。
如果是資料庫表結構的腳本,右鍵點資料庫/任務/生成腳本
然後一步步根據提示操作。
Ⅷ SQL語法範例大全的前 言
資料庫技術已成為信息時代計算機技術的重要組成部分,而目前廣泛使用的關系資料庫已經成為資料庫系統的主流,SQL(Structured Query Language,結構化查詢語言)是關系資料庫系統最常用的語言。
本書全面系統地介紹了SQL的基本語法,並以目前流行的資料庫SQL Server 2005/2008和Oracle 9i/10g/11g為基礎,結合作者多年的資料庫系統管理經驗,介紹了用SQL管理和開發這兩大關系資料庫的實際應用操作,包含了大量的應用示例,可供讀者在學習和工作中引用。
本書讀者
本書內容涵蓋了與資料庫系統管理和開發有關的常見內容和操作,非常適合需要使用SQL的各層次的讀者,包括下列使用對象:
(1)SQL的初學者和計算機愛好者
本書講述了SQL大量的基礎內容,又有大量示例,非常適合初學者使用。
(2)高等學校或職業技術學校計算機專業教師和學生
本書講解由淺入深,非常適合高等學校和職業技術學校計算機專業教師和學生學習和參考使用。
(3)資料庫管理及其應用、軟體設計和開發人員
本書介紹了SQL語句在兩種主流關系資料庫SQL Server和Oracle中的實現,同時,介紹了在進行資料庫管理中通常需要的SQL腳本操作,可作為資料庫管理及開發人員的參考手冊。
(4)系統分析人員
資料庫規劃和管理技術是系統分析人員應該掌握的重點內容,本書介紹了各類常見關系資料庫的基礎知識,並分析和比較了它們之間的主要特點和異同點,同時也介紹了SQL在資料庫系統分析中的編程知識,因此該書也可以作為系統分析人員重要的參考資料。
本書特點
(1)結構清晰,內容全面
本書按照關系資料庫基礎、SQL基礎、SQL與關系資料庫的關系、SQL語法、SQL擴展、SQL編程、SQL在資料庫中的應用和資料速查內容為線索進行介紹,採用「方法、語法、示例、運行結果、注意事項」的順序結構進行闡述,具有很強的條理性和易讀性。
(2)方法多樣,實例豐富
本書針對特定的知識點介紹了能實現特定功能的各種方法,包括資料庫的企業管理器工具法、SQL命令法等,目的是讓讀者既能掌握SQL語法知識,又能掌握資料庫的操作技能,而且還能比較同一種功能採用多種實現方法的異同點,掌握在SQL Server和Oracle這兩種資料庫環境下SQL的差別。
本書共包括大小實例721個,使讀者在學習SQL原理的同時能夠掌握其用法,大部分實例還可以用於SQL Server和Oracle資料庫的實際管理,這些實例是作者多年從事資料庫和類UNIX系統管理的經驗積累,具有相當大的使用價值。
(3)既可以作為教材使用,又可以通過手冊進行快速查閱
本書以教材的形式全面系統地介紹了SQL以及SQL Server和Oracle資料庫系統管理的知識點,同時,又在實現方法、SQL語法、SQL語句、SQL函數、資料庫系統參數和應用示例等方面提供了詳細的介紹,並且提供快速索引,方便讀者查閱。
綜上所述,與其他同類書籍相比,本書具有方法全、內容全、實例全、參數全、查閱全的典型特點。
本書內容
本書內容涵蓋了SQL、關系資料庫基本理論、SQL Server資料庫、Oracle資料庫、MS VS.NET等資料庫軟體開發平台和工具的知識點與實際應用操作。
全書包括附錄共分為8大部分,共29章。
第1篇 SQL及關系資料庫概述(第1章~第3章)
第1章 關系資料庫概述。主要介紹了資料庫和關系資料庫的基本概念、關系模型以及兩種關系資料庫:桌面關系資料庫和網路關系資料庫和常用的10種關系型資料庫系統
第2章 SQL概述。介紹了SQL的概念、基本功能、SQL標准和版本、SQL基本語法
第3章 SQL擴展、工具及範例資料庫介紹。介紹了常用的關系資料庫系統SQL Server和Oracle的基本情況及其支持的SQL擴展語言Transact-SQL和PL/SQL的基本概念和主要內容。同時介紹了Transact-SQL和PL/SQL的支持環境和常用工具的用法,包括SQLCMD、SQL Server查詢分析、Oracle企業管理器EM、Oracle SQL * Plus、iSQL * Plus、PL/SQL Developer和TOAD專業工具
第2篇 SQL運算符和函數(第4章~第5章)
第4章 SQL運算符。介紹了SQL的各種操作運算符,包括算術、字元串、賦值、比較、邏輯、集合和一元運算操作符
第5章 函數。介紹了算術、字元、日期、類型轉換、統計(聚合)函數和兩種資料庫的常用系統函數
第3篇 數據查詢操作(第6章~第9章)
第6章 簡單查詢。介紹了SQL查詢語句(SELECT語句)的基本語法結構和執行步驟、常用的簡單查詢操作
第7章 連接查詢。介紹了表的自連接、自然連接、內連接和外連接。其中內連接介紹了等值連接和不等值連接兩種基本形式;外連接介紹了左外連接、右外連接和全外連接
第8章 集合查詢。介紹了並集、交集和差集的基本概念和應用操作
第9章 子查詢。介紹了子查詢的基本概念和操作,包括單行、多行、多列、相關和嵌套子查詢等內容
第4篇 數據更新操作(第10章~第15章)
第10章 資料庫操作。介紹了資料庫的創建、查找、修改和刪除的幾種實現方法以及SQL語句操作
第11章 方案操作。介紹了方案的創建、查找、修改和刪除的幾種實現方法以及SQL語句操作
第12章 數據表操作。介紹了數據表、表記錄、表結構的創建、查找、修改、復制和刪除的幾種實現方法以及SQL語句操作
第13章 索引操作。介紹了索引的創建、查找、修改、禁用、啟用和刪除的幾種實現方法以及SQL語句操作
第14章 視圖操作。介紹了視圖的創建、查找、修改和刪除的幾種實現方法以及SQL語句操作
第15章 序列操作。介紹了序列的創建、查找、使用和刪除的幾種實現方法以及SQL語句操作
第5篇 數據安全管理(第16章~第19章)
第16章 完整性約束。介紹了與表有關的約束:NOT NULL約束、UNIQUE約束、PRIMARY KEY約束、FOREIGN KEY約束和CHECK約束、域約束以及斷言的創建、查找、修改、使用和刪除的幾種實現方法以及SQL語句操作
第17章 用戶管理。介紹了用戶的創建、查找、修改、刪除的幾種實現方法和SQL語句操作以及許可權的查找、授權、收回等操作
第18章 角色管理。介紹了角色的創建、查找、修改、刪除的幾種實現方法和SQL語句操作以及許可權的查找、授權、收回等操作
第19章 許可權管理。介紹了許可權的分類、查找、授權、收回等操作
第6篇 SQL編程(第20章~第25章)
第20章 事務控制與並發處理。介紹了事務的概念、事務控制的實現以及多用戶讀寫訪問資料庫的並發控制、事務的開始和終止操作,最後還介紹了在SQL Server和Oracle資料庫中並發控制的具體應用、實現和比較
第21章 存儲過程。介紹了存儲過程的創建、查找、修改、調用、重編譯、刪除的幾種實現方法和SQL語句操作,還詳細介紹了存儲過程在SQL Server和Oracle資料庫中的應用
第22章 存儲函數。介紹了存儲函數的創建、查找、修改、調用、重編譯、刪除的幾種實現方法和SQL語句操作,還詳細介紹了存儲函數在SQL Server和Oracle資料庫中的應用
第23章 觸發器。介紹了SQL中觸發器的有關概念、創建、查找、修改、禁用、啟用和刪除的幾種實現方法以及SQL語句操作,還詳細介紹了觸發器在SQL Server和Oracle資料庫中的應用
第24章 游標。介紹了SQL中游標的基本概念、各種游標的定義、查找、打開、數據提取、關閉和刪除的幾種實現方法以及SQL語句操作、游標循環和嵌套的具體內容,還詳細介紹了游標在SQL Server和Oracle資料庫中的應用
第25章 錯誤和異常處理。介紹了錯誤與異常分類、SQL Server和Oracle資料庫中的錯誤與異常處理
第7篇 SQL在資料庫開發和管理中的應用(第26章~第29章)
第26章 嵌入式SQL。介紹了嵌入式SQL的基本概念、原理、與高級語言的通信方法、動態SQL技術,還詳細介紹了利用C語言中嵌入SQL語句在VC++、VC#中訪問SQL Server和Oracle的連接訪問實現過程
第27章 資料庫的存取訪問技術。介紹了資料庫系統的開發環境、應用系統的典型結構、各種資料庫軟體開發平台和工具、MS VS.NET和J2EE兩種流行的開發平台的比較、資料庫的連接訪問技術,包括OLE-DB、ODBC、JDBC、ADO、ADO.NET。還詳細介紹了用ASP、ASP.NET、VB.NET、VC#.NET與TEXT、Excel文件以及Access、SQL Server、Oracle資料庫連接的訪問方法
第28章 用SQL管理SQL Server資料庫。介紹了用SQL結合SQL Server資料庫的系統表和系統存儲過程管理SQL Server資料庫及伺服器的屬性、資料庫對象以及賬戶、角色和許可權等內容
第29章 用SQL管理Oracle資料庫。介紹了用SQL管理Oracle資料庫及伺服器的屬性、資料庫連接、會話、進程、表空間和數據文件、數據表、索引、存儲過程、存儲函數、觸發器、用戶、角色、許可權、事務與鎖和內存參數等內容
第8篇 附錄(附錄A~附錄E)
為便於讀者對常用資料的查閱,特將下列內容作為附錄內容進行了收集和整理:
SQL常用語句分類索引
SQL、SQL Server、Oracle常用函數分類對照索引
SQL Server常用系統表和系統存儲過程索引
Oracle資料庫常用視圖索引
Oracle資料庫系統環境變數參數
技術支持
希賽是中國領先的互聯網技術和IT教育公司,在互聯網服務、圖書出版、人才培養方面,希賽始終保持IT業界的領先地位。希賽對國家信息化建設和軟體產業化發展具有強烈的使命感,利用希賽網(www.csai.cn)強大的平台優勢,加強與促進IT人士之間的信息交流和共享,實現IT價值。「希賽,影響IT」是全體希賽人不懈努力和追求的目標!
希賽網以希賽顧問團為技術依託,是中國最大的IT資源平台。希賽IT教育研發中心是希賽公司下屬的一個專門從事IT教育、教育產品開發、教育書籍編寫的部門,在IT教育方面具有極高的權威性。在國家權威機構發布的《計算機圖書出版市場綜述》中,稱贊希賽叢書為讀者所稱道,希賽的圖書已經形成品牌,在讀者心目中具有良好的形象。
有關本書的意見反饋和咨詢,讀者可在學賽網社區「書評在線」版塊中與作者進行交流,讀者也可就書中的問題提出意見,由於作者水平有限,錯誤在所難免,望讀者不吝賜教。
本書由黃少華和陳翠娥編著,鄧子雲主審。同時,希賽公司梁賽編輯提供了許多的幫助。還有劉健等幾位好友也提供了支持和很好的參考意見,在此一並表示衷心的感謝。
編者 著
2008年8月
Ⅸ oracle怎麼檢查sql腳本語法是否正確
你執行錯了會報錯,例如:
SQL> select * from tadd;
select * from tadd
*
ERROR at line 1:
ORA-00942: table or view does not exist
正確執行:
SQL> create table lxl as select * from emp;
Table created.
另外 oracle分為DDL DML DCL語言
DDL 數據操縱語言 默認commit
DML數據操作語言 需要手動提交commit
DCL 為數據定義語言 grant revoke
Ⅹ sql腳本中能否把「標識」寫進去,具體語法怎麼樣的
CREATE TABLE [dbo].[TableName] (
[id] [numeric](18, 0) IDENTITY (1, 1) NOT NULL ,
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO