⑴ sql中如何給變數賦值
DECLARE @n1 int,@n2 varchar(10)
set @n1 =(select age from table where column=xxx)
set @n2=(select gender from table where column = xxx )
------------------
或者一起賦值
就是樓上那個
DECLARE @n1 int,@n2 varchar(10)
select @n1 =age,@n2=gender
from table where column = xxx
------------------
select @n1,@n2 就知道變數的值了
⑵ SQL中變數的種類及表現形式
分類: 電腦/網路 >> 程序設計 >> 其他編程語言
問題描述:
拜託路過的各位高手,這個是我考試的題目,麻煩告訴我答案.謝謝~~
解析:
MS SQL Server中的變數- -
在SQL中,我們常常使用臨時表來存儲臨時結果,對於結果是一個 *** 的情況,這種方法非常實用,但當結果僅僅是一個數據或者是幾個數據時,還要去建一個表,顯得就比較麻煩,另外,當一個SQL語句中的某些元素經常變化時,比如選擇條件,(至少我想)應該使用局部變數。當然MS SQL Server的全局變數也很有用。
>>>>局部變數
聲明:DECLARE @local_variable data_type
@local_variable 是變數的名稱。變數名必須以 at 符 (@) 開頭。data_type 是任何由系統提供的或用戶定義的數據類型。變數不能是 text、ntext 或 image 數據類型。
示例:
use master
declare @SEL_TYPE char(2)
declare @SEL_CUNT numeric(10)
set @SEL_TYPE = 'U'/*user table*/
set @SEL_CUNT = 10
/*返回系統中用戶表的數目*/
select @SEL_CUNT = COUNT(*)
from sysobjects
where type = @SEL_TYPE
select @SEL_CUNT as 'User table ''s count'
如果要返回系統表的數目,可以用set @SEL_TYPE = 'S'
可能這個例子並不能說明使用變數的好處,我只是想說明使用方法。當一組(幾個甚至幾十個)SQL語句都使用某個變數時,就能體會到他的好處了。
>>>>全局變數
全局變數是系統預定義的,返回一些系統信息,全局變數以兩個at(@)開頭。下面是我統計了一些較為常用的變數。
@@CONNECTIONS
返回自上次啟動以來連接或試圖連接的次數。
@@CURSOR_ROWS
返回連接上最後打開的游標中當前存在的合格行的數量。
@@DATEFIRST
返回每周第一天的數字
@@ERROR
返回最後執行的SQL 語句的錯誤代碼。
@@FETCH_STATUS
返回被 FETCH 語句執行的最後游標的狀態,而不是任何當前被連接打開的游標的狀態。
@@IDENTITY
返回最後插入的標識值
@@LANGID
返回當前所使用語言的本地語言標識符(ID)。
@@LANGUAGE
返回當前使用的語言名。
@@LOCK_TIMEOUT
返回當前會話的當前鎖超時設置,單位為毫秒。
@@PROCID
返回當前過程的存儲過程標識符 (ID) 。
@@ROWCOUNT
返回受上一語句影響的行數。
@@SERVERNAME
返回運行 的本地伺服器名稱。
@@SPID
返回當前用戶進程的伺服器進程標識符 (ID)。
@@TRANCOUNT
返回當前連接的活動事務數。
@@VERSION
返回當前安裝的日期、版本和處理器類型。
⑶ SQL基礎教程的目錄
1.1運行SQL程序
1.2Microsoft Access
1.3Microsoft SQL Server
1.3.1SQL Server 2000
1.3.2SQL Server 2005/2008
1.4Oracle
1.5IBM DB2
1.6MySQL
1.7PostgreSQL 2.1表、列和行
2.1.1表
2.1.2列
2.1.3行
2.2主鍵
2.3外鍵
2.4聯系
2.4.1一對一
2.4.2一對多
2.4.3多對多
2.5規范化
2.5.1第一範式
2.5.2第二範式
2.5.3第三範式
2.5.4其他範式
2.6示例資料庫
2.6.1表authors
2.6.2表publishers
2.6.3表titles
2.6.4表titles_authors
2.6.5表royalties
2.7創建示例資料庫 3.1SQL語法
3.2SQL標准和一致性
3.3標識符
3.4數據類型
3.5字元串類型
3.6二進制大型對象類型
3.7精確數字類型
3.8近似數字類型
3.9布爾類型
3.10日期和時間類型
3.11時間間隔類型
3.12唯一標識符
3.13其他數據類型
3.14空值 4.1使用SELECT和FROM檢索列
4.2使用AS創建列的別名
4.3使用DISTINCT消除重復的行
4.4使用ORDER BY排序行
4.5使用WHERE篩選行
4.6使用AND、OR和NOT組合及求反條件
4.6.1AND操作符
4.6.2OR操作符
4.6.3NOT操作符
4.6.4AND、OR和NOT一起使用
4.7使用LIKE匹配模式
4.8使用BETWEEN進行范圍篩選
4.9使用IN進行列表篩選
4.10使用IS NULL測試空值 5.1創建派生列
5.2執行算術運算
5.3確定計算的順序
5.4使用||連接串
5.5使用SUBSTRING()提取子串
5.6使用UPPER()和LOWER()更改串的大小寫
5.7使用TRIM()修整字元
5.8使用CHARACTER_LENGTH()得到串長度
5.9使用POSITION()查找子串
5.10執行日期及時間間隔運算
5.11獲得當前日期和時間
5.12獲得用戶信息
5.13使用CAST()轉換數據類型
5.14使用CASE計算條件值
5.15使用COALESCE()檢查空值
5.16使用NULLIF()比較表達式 6.1使用聚合函數
6.2創建聚合表達式
6.3使用MIN()查找最小值
6.4使用MAX()查找最大值
6.5使用SUM()計算總和
6.6使用AVG()計算平均值
6.7使用COUNT()統計行數
6.8使用DISTINCT聚合不重復的值
6.9使用GROUP BY分組行
6.10使用HAVING篩選分組 7.1限定列名
7.2使用AS創建表的別名
7.3使用聯結
7.4使用JOIN或WHERE創建聯結
7.5使用CROSS JOIN創建交叉聯結
7.6使用NATURAL JOIN創建自然聯結
7.7使用INNER JOIN創建內聯結
7.8使用OUTER JOIN創建外聯結
7.9創建自聯結 8.1理解子查詢
8.2子查詢語法
8.3子查詢和聯結
8.4簡單子查詢和相關子查詢
8.4.1簡單子查詢
8.4.2相關子查詢
8.5在子查詢中限定列名
8.6子查詢中的空值
8.7使用子查詢作為列表達式
8.8使用比較操作符比較子查詢的值
8.9使用IN測試集合成員資格
8.10使用ALL比較所有子查詢的值
8.11使用ANY比較某些子查詢的值
8.12使用EXISTS檢測存在性
8.13比較等價查詢 9.1使用UNION合並行
9.2使用INTERSECT查找相同行
9.3使用EXCEPT查找不同行 10.1顯示表結構
10.2使用INSERT插入行
10.3使用UPDATE更新行
10.4使用DELETE刪除行 11.1創建表
11.2理解約束
11.3使用CREATE TABLE創建新表
11.4使用NOT NULL禁止空值
11.5使用DEFAULT確定默認值
11.6使用PRIMARY KEY指定主鍵
11.7使用FOREIGN KEY指定外鍵
11.8使用UNIQUE確保值唯一
11.9使用CHECK創建檢查約束
11.10使用CREATE TEMPORARY TABLE創建臨時表
11.11使用CREATE TABLE AS利用已存在表創建新表
11.12使用ALTER TABLE修改表
11.13使用DROP TABLE刪除表 12.1使用CREATE INDEX創建索引
12.2使用DROP INDEX刪除索引 13.1使用CREATE VIEW創建視圖
13.2通過視圖檢索數據
13.3通過視圖修改數據
13.3.1通過視圖插入行
13.3.2通過視圖更新行
13.3.3通過視圖刪除行
13.4使用DROP VIEW刪除視圖 15.1動態統計
15.2產生序列
15.3發現等差數列、遞增數列和等值數列
15.4限定返回行的數量
15.4.1Microsoft Access
15.4.2Microsoft SQL Server
15.4.3Oracle
15.4.4IBM DB2
15.4.5MySQL
15.4.6PostgreSQL
15.5分配排名
15.6計算修整均值
15.7隨機選取行
15.8處理重復值
15.9創建電話列表
15.10檢索元數據
15.10.1Microsoft Access
15.10.2Microsoft SQL Server
15.10.3Oracle
15.10.4IBM DB2
15.10.5MySQL
15.10.6PostgreSQL
15.11處理日期
15.11.1Microsoft Access
15.11.2Microsoft SQL Server
15.11.3Oracle
15.11.4IBM DB2
15.11.5MySQL
15.11.6PostgreSQL
15.12計算中值
15.13查詢極值
15.14改變動態統計的中流
15.15旋轉結果
15.16處理層次結構
索引
⑷ T-SQL局部變數的賦值方法哪兩種
1、局部變數的使用示例如下
use StudentManageDB
go
--聲明學號變數
declare @stuid int,@stuname varchar(20)
--查詢李銘的信息
set @stuname='李銘'
select StudentId,StudentName,Gender,StudentIdNo from Students
where StudentName=@stuname
--查詢李銘的學號
select @stuId=StudentId from Students where StudentName=@stuname
--查詢與李銘學號相鄰的學員
select StudentId,StudentName,Gender,StudentIdNo from Students
where StudentId=(@stuId+1) or StudentId=(@stuId-1)
2、從例子中可以看出,賦值有兩種方法:
(1)set:在代碼中使用set關鍵字對變數進行賦值。
(2)select:在語句中使用select語句將查詢出的數據賦值給變數。
⑸ mysql環境中,如何用sql語句給字元串變數賦值
mysql給字元串變數賦值的方法是用select into 變數結構完成賦值。
使用sql的結構語法:
SELECT ... INTO var_list selects column values and stores them into variables.
比如定義一個sql變數:
@x varchar(10);
@y varchar(20);
select id,name INTO @x,@y from dx_tt
這樣就完成了賦值。
⑹ sql insert語句中如何使用變數
sql insert語句中使用變數:
(insert)向表中添加一個新記錄,要使用SQL INSERT 語句。這里有一個如何使用這種語句的例子: INSERT mytable (mycolumn) VALUES (『some data') 這個語句把字元串'some data'插入表mytable的mycolumn欄位中。將要被插入數據的欄位的名字在第一個括弧中指定,實際的數據在第二個括弧中給出。
INSERT 語句的完整句法如下:INSERT [INTO] {table_name|view_name} [(column_list)] {DEFAULT VALUES |
Values_list | select_statement}
如果一個表有多個欄位,通過把欄位名和欄位值用逗號隔開,可以向所有的欄位中插入數據。假設表mytable有三個欄位first_column,second_column,和third_column.下面的INSERT語句添加了一條三個欄位都有值的完整記錄:INSERT mytable (first_column,second_column,third_column)
VALUES (『some data','some more data','yet more data')
可以使用INSERT語句向文本型欄位中插入數據。但是,如果需要輸入很長的字元串,應該使用WRITETEXT語句。
如果在INSERT 語句中只指定兩個欄位和數據。向一個表中插入一條新記錄,但有一個欄位沒有提供數據。在這種情況下,有下面的四種可能:
1)如果該欄位有一個預設值,該值會被使用。例如,假設插入新記錄時沒有給欄位third_column提供數據,而這個欄位有一個預設值'some value'.在這種情況下,當新記錄建立時會插入值'some value'。
2)如果該欄位可以接受空值,而且沒有預設值,則會被插入空值。
3)如果該欄位不能接受空值,而且沒有預設值,就會出現錯誤。會收到錯誤信息:The column in table mytable may not be null.
4)最後,如果該欄位是一個標識欄位,那麼它會自動產生一個新值。當向一個有標識欄位的表中插入新記錄時,只要忽略該欄位,標識欄位會給自己賦一個新值。
註:向一個有標識欄位的表中插入新記錄後,可以用SQL變數@@identity來訪問新記錄 的標識欄位的值。考慮如下的SQL語句:
INSERT mytable (first_column) VALUES(『some value')
INSERT anothertable(another_first,another_second)
VALUES(@@identity,'some value')
如果表mytable有一個標識欄位,該欄位的值會被插入表anothertable的another_first欄位。這是因為變數@@identity總是保存最後一次插入標識欄位的值。
欄位another_first應該與欄位first_column有相同的數據類型。但是,欄位another_first不能是應該標識欄位。Another_first欄位用來保存欄位first_column的值。
⑺ SQL中的變數引用方法
strSQL = "selet * from table1 where name = ' " &UserName& " '"
上面這個語句肯定是在你的asp文件中的了。
asp字元串連接符是&,這個你知道的,所以,不難看出,strSQL是由三部分組成的:
1. "selet * from table1 where name = ' "
2. UserName
3. " '"
如果你把語句顯示到頁面上,你就可以看到,真正的語句如下(假設UserName變數的值是『王明』):
selet * from table1 where name = '王明'
這也是最終你的資料庫要執行的語句。
這就很容易解釋了,雙引號在ASP中定義字元,"'"這個是一個字元串,不過這個字元串只有一個字元,就是那個單引號,這個單引號要用到資料庫SQL語句中使用。
一句話,雙引號是ASP用來定義字元串的,&符號是用來連接兩個字元串的。
祝好運。
⑻ .sql文件中怎麼聲明變數請詳細說一下。
聲明變數:
declare @變數名 變數類型
如:
declare @datetime datetime
設置變數值:
set @變數名 = 值
設置變數為當前時間:
set @變數名 = getdate()
⑼ SQL 查詢語句如何定義變數
as在SQL中是別名的用法,它可以為表名取別名,也可以為列名取別名,
其作用主要是為了增加可讀性。
⑽ 如何在SQL語句中使用變數
使用變數一般是在存儲過程、方法、觸發器等T-Sql編程的時候用的,使用Declare 來定義變數,在方法/存儲過程/觸發器等裡面進行調用。