『壹』 《sql必知必會》中,作者提供了一個例子在附錄a中,該如何把它用到sql server 中
新建查詢
然後把下載下來的腳本復制進去運行一下
『貳』 如何在db2命令行運行sql必知必會例子
db2 => connect to dbName user xxx using password
db2 => sql語句
如果要執行一個sql腳本文件:
db2 => quit
c:\> db2 -tvf sql文件名
db2 -td@ -f filename
@是語句結束符。
E:\>db2 ? options
db2 [option ...] [db2-command | sql-statement |
[? [phrase | message | sqlstate | class-code]]]
option:-a、-c、-e{c|s}、-finfile、-lhistfile、-n、-o、-p、-rreport、-s、-t、
-td;、-v、-w、-x 和 -zoutputfile。
選項 描述 預設設置
------ ---------------------------------------- ---------------
-a 顯示 SQLCA OFF
-c 自動落實 ON
-e 顯示 SQLCODE/SQLSTATE OFF
-f 讀取輸入文件 OFF
-l 將命令記錄到歷史文件中 OFF
-n 除去換行字元 OFF
-o 顯示輸出 ON
-p 顯示 db2 互動式提示符 ON
-r 將輸出報告保存到文件 OFF
-s 在命令出錯時停止執行 OFF
-t 設置語句終止字元 OFF
-v 回送當前命令 OFF
-w 顯示 FETCH/SELECT 警告消息 ON
-x 不列印列標題 OFF
-z 將所有輸出保存到輸出文件 OFF
注意:
使用 DB2OPTIONS 環境變數定製選項預設值。
緊跟選項字母後的減號(-)使該選項關閉。
使用 UPDATE COMMAND OPTIONS 更改選項設置(以互動式或
文件輸入方式)。
只能提供nt環境下編寫腳本的例子給你以供參考:
腳本樣例:
db2 connect to yourdb user yourname using yourpassword
db2 insert into newuser(username,password,email) values('Amy','1234','[email protected]')
db2 insert into newuser(username,password,email) values('Judy','1234','[email protected]')
db2 commit
db2 disconnect yourdb
運行腳本: 運行db2cmd X:\XXX.bat
以下摘自本論壇的FAQ可參考:
"
在命令窗口中運行DB2腳本,可用 db2 -svtf 腳本文件名 來實現。
例如,腳本文件名為sample.sql,運行:db2 -svtf sample.sql
參數中:
s 代表遇到錯誤時中止運行腳本
v 代表輸出結果到屏幕
t 指以;號作為每行的分隔符
f 指後面需跟腳本文件名 "---此摘錄版權歸斑竹非本人所有
具體在AS400如何編寫腳本非常遺憾.
db2 -x select SERIALNO from tabname where clause
C:>db2 attach to db2164 user ccp
輸入 ccp 的當前密碼:
實例連接信息
實例伺服器 = DB2/NT 8.2.0
授權標識 = CCP
本地實例別名 = DB2164
C:>db2 connect to dw164 user ccp
輸入 ccp 的當前密碼:
資料庫連接信息
資料庫伺服器 = DB2/NT 8.2.0
SQL 授權標識 = CCP
本地資料庫別名 = DW164
C:>db2 select * from CCP_STS1 fetch first 2 rows only with ur
CUST_ID NOW_PRED_S LOAD_TIME
-------------------- -------------------- --------------------------
3094736. ZFS 2008-05-07-10.02.00.453000
3145886. ZFS 2008-05-07-10.02.00.453000
2 條記錄已選擇。
C:>db2 list command options
命令行處理器選項設置
後端進程等待時間(秒) (DB2BQTIME) = 1
連接至後端的重試次數 (DB2BQTRY) = 60
請求隊列等待時間(秒) (DB2RQTIME) = 5
輸入隊列等待時間(秒) (DB2IQTIME) = 5
命令選項 (DB2OPTIONS) = +m
選項 描述 當前設置
------ ---------------------------------------- ---------------
-a 顯示 SQLCA OFF
-c 自動落實 ON
-d 檢索並顯示 XML 聲明 OFF
-e 顯示 SQLCODE/SQLSTATE OFF
-f 讀取輸入文件 OFF
-i 顯示 XML 數據並帶有縮進 OFF
-l 將命令記錄到歷史記錄文件中 OFF
-m 顯示受影響的行數 OFF
-n 除去換行字元 OFF
-o 顯示輸出 ON
-p 顯示互動式輸入提示符 ON
-q 保留空格和換行符 OFF
-r 將輸出保存到報告文件 OFF
-s 在命令出錯時停止執行 OFF
-t 設置語句終止字元 OFF
-v 回傳當前命令 OFF
-w 顯示 FETCH/SELECT 警告消息 ON
-x 不列印列標題 OFF
-z 將所有輸出保存到輸出文件 OFF
C:>db2set DB2OPTIONS=-x
C:>db2 select * from CCP_STS1 fetch first 2 rows only with ur
4654908. ZFS 2008-05-07-10.02.00.453000
3716687. ZFS 2008-05-07-10.02.00.453000
『叄』 《SQL必知必會(第4版)》epub下載在線閱讀,求百度網盤雲資源
《SQL必知必會》(福達 (Ben Forta))電子書網盤下載免費在線閱讀
資源鏈接:
鏈接:https://pan..com/s/15flEL2_R2C2d5loRB5hDFA
書名:SQL必知必會
作者:福達 (Ben Forta)
譯者:鍾鳴
豆瓣評分:8.5
出版社:人民郵電出版社
出版年份:2013-5-1
頁數:239
內容簡介:
SQL語法簡潔,使用方式靈活,功能強大,已經成為當今程序員不可或缺的技能。
本書是深受世界各地讀者歡迎的SQL經典暢銷書,內容豐富,文字簡潔明快,針對Oracle、SQL Server、MySQL、DB2、PostgreSQL、SQLite等各種主流資料庫提供了大量簡明的實例。與其他同類圖書不同,它沒有過多闡述資料庫基礎理論,而是專門針對一線軟體開發人員,直接從SQL SELECT開始,講述實際工作環境中最常用和最必需的SQL知識,實用性極強。通過本書,讀者能夠從沒有多少SQL經驗的新手,迅速編寫出世界級的SQL!
本書是麻省理工學院、伊利諾伊大學等眾多大學的參考教材。除了作為教程之外,獨特的編排方式還使本書成為方便的快速查詢手冊。
作者為本書專門開設了網站,提供下載、勘誤和答疑:
http://forums.forta.com/threads.cfm?forumid=A1031720-3048-80A9-EF986F59D2959184
作者簡介:
Ben Forta ,Adobe
公司開發者關系部總監,世界知名的技術作家,在計算機產品開發、支持、培訓和營銷等方面擁有20多年的豐富經驗。多年來,他撰寫了SQL、MySQL、正則表達式、JSP、WAP和Windows開發等方面的十多部技術圖書,其中不少已被翻譯為多種語言在世界各地出版發行並成為暢銷經典。讀者可以通過他的個人網站forta.com了解更多信息。
『肆』 求SQL資料庫設計實例
在MySQL中,可以使用CREATEDATABASE語句創建資料庫,語法格式如下:CREATEDATABASE[IFNOTEXISTS]<資料庫名>[[DEFAULT]CHARACTERSET<字元集名>][[DEFAULT]COLLATE<校對規則名>];
[]中的內容是可選的。語法說明如下:
<資料庫名>:創建資料庫的名稱。MySQL的數據存儲區將以目錄方式表示MySQL資料庫,因此資料庫名稱必須符合操作系統的文件夾命名規則,不能以數字開頭輪拿,盡量要有實際意義。注意在MySQL中不區分大小寫。
IFNOTEXISTS:在創建資料庫之前進行判斷,只有該資料庫目頃纖前尚不存在時才能執行操作。此選項可以用來避免資料庫已經存在而重復創建的錯誤。
[DEFAULT]CHARACTERSET:指定資料庫的字元集。指定字元集的目的是為了避免在數雀桐仿據庫中存儲的數據出現亂碼的情況。如果在創建資料庫時不指定字元集,那麼就使用系統的默認字元集。
[DEFAULT]COLLATE:指定字元集的默認校對規則。
MySQL的字元集(CHARACTER)和校對規則(COLLATION)是兩個不同的概念。字元集是用來定義MySQL存儲字元串的方式,校對規則定義了比較字元串的方式。後面我們會單獨講解MySQL的字元集和校對規則。
『伍』 急求SQL 資料庫實例!~
直接給你代碼,你在查詢語句里執行一次就可以了
use master
go
----查詢是否存在bbsDB資料庫,有的話刪除----
if exists (select * from sysdatabases where name='bbsDB')
drop database bbsDB
go
----創建bbsDB資料庫----
create database bbsDB
on primary
(
name='bbsDB_data',
filename='D:\BBS資料庫zxy\bbsDB_data.mdf',
size=10MB,
filegrowth=20%
)
log on
(
name='bbsDB_log',
filename='D:\BBS資料庫zxy\bbsDB_log.ldf',
size=3MB,
maxsize=20MB,
filegrowth=10%
)
go
use bbsDB
go
----創建表----
--是否已經存在bbsUsers表(用戶表),存在就刪除
if exists (select * from sysobjects where name='bbsUsers')
drop table bbsUsers
--創建bbsUsers表
create table bbsUsers
(
UID int identity(1,1) not null,
Uname varchar(15) not null,
Upassword varchar(10),
Ubirthday datetime not null,
Uemail varchar(20),
Usex bit not null,
Uclass int not null,
Uremark varchar(20),
UregDate datetime not null,
Ustate int ,
Upoint int
)
go
--為bbsUsers表添加約束
alter table bbsUsers
add constraint PK_UID
primary key (UID)
alter table bbsUsers
add constraint DF_Upassword
default(888888)for Upassword
alter table bbsUsers
add constraint CK_Upassword
check (len(Upassword)>=6)
alter table bbsUsers
add constraint CK_Uemail
check(Uemail like '%@%')
alter table bbsUsers
add constraint DF_Usex
default (1) for Usex
alter table bbsUsers
add constraint DF_Uclass
default (1) for Uclass
alter table bbsUsers
add constraint DF_UregDate
default(getdate())for UregDate
alter table bbsUsers
add constraint DF_Ustate
default (0)for Ustate
alter table bbsUsers
add constraint DF_Upoint
default (20)for Upoint
go
『陸』 求SQL語言建資料庫簡單實例
建立S,P,J,SPJ表,代碼如下:
CREATE SCHEMA SPJ AUTHORIZATION PENG
CREATE TABLE S
(SNO CHAR(4) PRIMARY KEY,
SNAME CHAR(20),
STATUS SMALLINT,
CITY CHAR(8)
)
CREATE TABLE P
(PNO CHAR(4) PRIMARY KEY,
PNAME CHAR(8),
COLOR CHAR(2),
WEIGHT SMALLINT
)
CREATE TABLE J
(JNO CHAR(4) PRIMARY KEY,
JNAME CHAR(20)UNIQUE,
CITY CHAR(8)
)
CREATE TABLE SPJ
(SNO CHAR(4),
PNO CHAR(4),
JNO CHAR(4),
QTY SMALLINT,
PRIMARY KEY (SNO,PNO,JNO),
FOREIGN KEY (SNO) REFERENCES S(SNO),
FOREIGN KEY (PNO) REFERENCES P(PNO),
FOREIGN KEY (JNO) REFERENCES J(JNO)
)
定義模式語句"CREATE SCHEMA" 和定義資料庫語句"CREATE DATABASE"是等效的,只是"CREATE DATABASE"是99以前的版本出現的
『柒』 什麼是SQL SERVER實例,以及相關知識點
什麼是SQL SERVER實例,以及相關知識點
所謂「SQL實例」,實際上就是SQL伺服器引擎,每個SQL Server資料庫引擎實例各有一套不為其他實例共享的系統及用戶資料庫。
在一台計算機上,可以安裝多個SQL SERVER,每個SQL SERVER就可以理解為是一個實例。
實例又分為「默認實例」和「命名實例」,如果在一台計算機上安裝第一個SQLSERVER,命名設置保持默認的話,那這個實例就是默認實例。
『捌』 [存儲過程詳解]sql存儲過程實例詳解
什麼是存儲過程: 存儲過程可以說是一個記錄集吧,它是由一些T-SQL語句組成的代碼塊,這些T-SQL語句代碼像一個方法一樣實現一些功能(對單表或多表的增刪改查),然後再給這個代碼塊取一個名字,在用到這個功能的時候調用他就行了。
存儲過程的好處:
1.由於資料庫執行動作時,是先編譯後執行的。然而存儲過程是一個編譯過的代碼塊,所以執行效率要比T-SQL語句高。
2.一個存儲過程在程序在網路中交互時可以替代大堆的T-SQL語句,所以也能降低網路的通信量,提高通信速率。
3.通過存儲過程能夠使沒有許可權的用戶在控制之下間接地存取資料庫,從而確保數據的安全。
小結:總之存儲過程是好東西,在做項目時屬於必備利器,下面介紹存儲過程的基本語法。
存儲過程的語法和參數講解
存儲過程的一些基本語法:
創建存儲過程的參數:
1.procere_name:存儲過程的名稱,在前面加#為局部臨時存儲過程,加##為全局臨時存儲過程。
2.; number:是可選的整數,用來對同名模鎮派的過程分組,以便用一條 DROP PROCEDURE 語句即可將同組的過程一起除去。例如,名為 orders 的應用程序使用的過程可以命名為 orderproc;1、orderproc;2 等。DROP PROCEDURE orderproc 語句將除去整個組。如果名稱中包含定界標識符,則數字不應包含在標識符中,只應在 procere_name 前後使用適當的定界符。
3.@parameter:
存儲過程的參數。可以有一個或多個。用戶必須在執行過程時提供每個所聲明參數的值(除非定義了該參數的默認值)。存儲過程最多可以有2.100 個參數。使用 @ 符號作為第一個字元來指定參數名稱。參數名稱必須符合標識符的規則旅缺。每個過程的參數僅用於該過程本身;
相同的參數名稱可以用在其它過程中。默認情況下,參數只能代替常量,而不能用於代替表名、列名或其它資料庫對象的名稱。有關更多信息,請參見 EXECUTE。
4.data_type:參數的數據類型。所有數據類型(包括 text、ntext 和 image)均可以用作存儲過程的參數。不過,cursor 數據類型只能用於 OUTPUT 參數。如果指定的數據類型為 cursor,也必須同時指定 VARYING 和 OUTPUT 關鍵字。有關 SQL Server 提供的數據類型旦賀及其語法的更多信息,請參見數據類型。說明 對於可以是 cursor 數據類型的輸出參數,沒有最大數目的限制。
5.VARYING:指定作為輸出參數支持的結果集(由存儲過程動態構造,內容可以變化)。僅適用於游標參數。
6.default:參數的默認值。如果定義了默認值,不必指定該參數的值即可執行過程。默認值必須是常量或 NULL。如果過程將對該參數使用 LIKE 關鍵字,那麼默認值中可以包含通配符(%、_、[] 和 [^])。
7.OUTPUT:表明參數是返回參數。該選項的值可以返回給 EXEC[UTE]。使用 OUTPUT 參數可將信息返回給調用過程。Text、ntext 和 image 參數可用作 OUTPUT 參數。使用 OUTPUT 關鍵字的輸出參數可以是游標佔位符。
8.RECOMPILE:表明 SQL Server 不會緩存該過程的計劃,該過程將在運行時重新編譯。在使用非典型值或臨時值而不希望覆蓋緩存在內存中的執行計劃時,請使用 RECOMPILE 選項。
9.ENCRYPTION:表示 SQL Server 加密 syscomments 表中包含 CREATE PROCEDURE 語句文本的條目。使用 ENCRYPTION 可防止將過程作為 SQL Server 復制的一部分發布。
說明 在升級過程中,SQL Server 利用存儲在 syscomments 中的加密注釋來重新創建加密過程。
10.FOR REPLICATION:指定不能在訂閱伺服器上執行為復制創建的存儲過程。.使用 FOR REPLICATION 選項創建的存儲過程可用作存儲過程篩選,且只能在復制過程中執行。本選項不能和 WITH RECOMPILE 選項一起使用。
11.AS:指定過程要執行的操作。
12.sql_statement:過程中要包含的任意數目和類型的 Transact-SQL 語句。但有一些限制。
小結:看過這些基本語法後,下面我就根據語法創建各式的存儲過程。
創建存儲過程
針對上面的表,我使用存儲過程對它做一些操作:
1.只返回單一記錄集的存儲過程
結果:相當於運行 select * fromUserAccount這行代碼,結果為整個表的數據。
2.沒有輸入輸出的存儲過程
結果:相當於運行insertintoUserAccount (UserName,[PassWord],RegisterTime,RegisterIP)values(9,9,'2013-01-02',9)這行代碼。
3.有返回值的存儲過程
解釋:這里的@@rowcount為執行存儲過程影響的行數,執行的結果是不僅插入了一條數據,還返回了一個值即 return value =1 ,這個可以在程序中獲取,稍後在c#調用存儲過程中會有說到。
4.有輸入參數和輸出參數的存儲過程
解釋:@UserName為輸入參數,@UserID為輸出參數。運行結果為@userID為COOUT(*)即 =1。
5. 同時具有返回值、輸入參數、輸出參數的存儲過程
結果:@userID為COOUT(*)即 =1,Retun Value=1。
6.同時返回參數和記錄集的存儲過程
結果:返回執行select*fromUserAccount 這句代碼的結果集,同時@userID為COOUT(*)即 =1,Retun Value=9。
7.返回多個記錄集的存儲過程
結果:返回兩個結果集,一個為select*fromUserAccount,另一個為select*fromUserAccountwhereUserID>5 。
小結:上面我們創建了各式的存儲過程。