當前位置:首頁 » 編程語言 » sql中等於的用法
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql中等於的用法

發布時間: 2022-05-27 01:52:33

㈠ 用sql處理表中所有數據,要使其中一列的數據等於別一列的數據。

假設表名為TAB,需要使TAB表中的C2等於C1
SQL如下:
UPDATE
TAB
T1
SET
T1.C1
=
(SELECT
T2.C2
FROM
TAB
T2
WHERE
T1.ROWID
=
T2.ROWID)
/*ROWID是oracle對表中每條記錄做的唯一標示*/
如果數據量達到千萬級,使用update就要注意了

㈡ 怎樣用sql語句來統計每一行中當欄位等於如(病假、旅遊假)之類的總數啊

不知道你是什麼資料庫,相加那裡不同SQL方言可能要適當變更下

SELECT CASE WHEN day1 IN ('病假', '旅遊假') THEN 1 ELSE 0 END
+ CASE WHEN day2 IN ('病假', '旅遊假') THEN 1 ELSE 0 END
+CASE WHEN day3 IN ('病假', '旅遊假') THEN 1 ELSE 0 END
+CASE WHEN day4 IN ('病假', '旅遊假') THEN 1 ELSE 0 END
+CASE WHEN day5 IN ('病假', '旅遊假') THEN 1 ELSE 0 END
+CASE WHEN day6 IN ('病假', '旅遊假') THEN 1 ELSE 0 END
+CASE WHEN day7 IN ('病假', '旅遊假') THEN 1 ELSE 0 END
+CASE WHEN day8 IN ('病假', '旅遊假') THEN 1 ELSE 0 END
from tab

㈢ 求SQL語句中每一個單詞的解釋和用法

基本的SQL語法 SELECT ... FROM ... WHERE ...
SELECT解釋就是查找,後邊跟的一定是一個唯一的值,可以是欄位,固定值,可以是一個子查詢返回唯一的一個記錄,如果是返回FROM表中所有記錄,可以是用*來代替所有的列。
FROM是指從哪裡來,FROM的後邊都是表名稱,就是SELECT的記錄的來源。也就是說,SELECT後邊跟的如果有欄位,定值除外,欄位一定是FROM後邊表中的欄位
WHERE是指表與表之間的關聯條件,關聯條件包含的就比較多了,SQL變化最大的也是這個地方。可以是表與表之間欄位的相等等條件,可以是表的欄位等於一個定值,也可以是IN或者EXISTS這樣更復雜的子查詢。

㈣ SQL中case,when,then,else的用法是什麼

用法:

1、第一種寫法:

復制代碼

SELECT

s.s_id,

s.s_name,

s.s_sex,

CASE

WHEN s.s_sex = '1' THEN '男'

WHEN s.s_sex = '2' THEN '女'

ELSE '其他'

END as sex,

s.s_age,

s.class_id

FROM

t_b_student s

WHERE

1 = 1

2、第二種寫法

SELECT

s.s_id,

s.s_name,

s.s_sex,

CASE s.s_sex

WHEN '1' THEN '男'

WHEN '2' THEN '女'

ELSE '其他'

END as sex,

s.s_age,

s.class_id

FROM

t_b_student s

WHERE

1 = 1

兩個運行結果一樣:

有一個需要注意的問題,Case函數只返回第一個符合條件的值,剩下的Case部分將會被自動忽略。

(4)sql中等於的用法擴展閱讀:

Case具有兩種格式:簡單Case函數和Case搜索函數。

簡單Case函數:

CASE sex

WHEN『1』THEN『男』

WHEN『0』THEN『女』

ELSE『其他』END

Case搜索函數:

CASE WHEN sex=『1』THEN『男』

WHEN sex=『0』THEN『女』

ELSE『其他』END

顯然,簡單Case函數生在簡潔,但是它只適用於這種單欄位的單值比較,而Case搜索函數的優點在於適用於所有比較的情況。

還有一個需要注意的問題,Case函數在滿足了某個符合條件後,剩下的條件將會被自動忽略,因此,即使滿足多個條件,執行過程中也只認第一個條件。

在使用CASE WHEN時,可以把它當作一個沒有欄位名的欄位,欄位值根據條件確認,在需要使用欄位名時可以是用as來定義別名。

㈤ SQL語言的運用

SQL在進行數據表操作時,必須使用SQL語句,SQL語句中的一段程序數據表的語句是一段字元串,他的基本語句是:
strSQL = "Select * From 數據表名" '這是查詢語句中不可少的,連接這個語句,將查詢整個表的記錄。

1、 條件查詢,條件查詢必須使用關鍵字 Where ,例如:
strSQL = "Select * From 數據表名 Where 名稱='王大憨'" '這是查詢名稱是 '王大憨'的一條記錄,我們稱是精確查詢。
strSQL = "Select * From 數據表名 Where 名稱 Like '% "王" %'" '這是查詢名稱包含 '王'字的所有記錄,我們稱是模糊查詢,注意關鍵字Like。

2、查詢排序,查詢排序是將查詢結果按照一定的順序進行排列,使用關鍵字 Order By,例如:
strSQL = "Select * From 數據表名 Where 名稱 Like '% "王" %' Order By 名稱 Desc" '意思是模糊查詢後以名稱的大小從大到小排列,關鍵字Desc是從大到小排列,如果省略,就是從小到大排列。
3、分組統計,分組統計是將查詢結果用分組的方法顯示,使用關鍵字Group By,例如:
strSQL = "Select * From 數據表名 Where 名稱 Like '% "王" %' Group By 性別" '可以將模糊查詢結果以性別不同顯示不同位置。

㈥ SQL 資料庫常用命令及語法舉例

SQL2000常用命令,語法使用方法
(1) 數據記錄篩選:

sql="select * from 數據表 where 欄位名=欄位值 order by 欄位名 [desc]"

sql="select * from 數據表 where 欄位名 like '%欄位值%' order by 欄位名 [desc]"

sql="select top 10 * from 數據表 where 欄位名 order by 欄位名 [desc]"

sql="select * from 數據表 where 欄位名 in ('值1','值2','值3')"

sql="select * from 數據表 where 欄位名 between 值1 and 值2"

(2) 更新數據記錄:

sql="update 數據表 set 欄位名=欄位值 where 條件表達式"

sql="update 數據表 set 欄位1=值1,欄位2=值2 …… 欄位n=值n where 條件表達式"

(3) 刪除數據記錄:

sql="delete from 數據表 where 條件表達式"

sql="delete from 數據表" (將數據表所有記錄刪除)

(4) 添加數據記錄:

sql="insert into 數據表 (欄位1,欄位2,欄位3 …) values (值1,值2,值3 …)"

sql="insert into 目標數據表 select * from 源數據表" (把源數據表的記錄添加到目標數據表)

(5) 數據記錄統計函數:

AVG(欄位名) 得出一個表格欄平均值
COUNT(*|欄位名) 對數據行數的統計或對某一欄有值的數據行數統計
MAX(欄位名) 取得一個表格欄最大的值
MIN(欄位名) 取得一個表格欄最小的值
SUM(欄位名) 把數據欄的值相加

引用以上函數的方法:

sql="select sum(欄位名) as 別名 from 數據表 where 條件表達式"
set rs=conn.execute(sql)

用 rs("別名") 獲取統的計值,其它函數運用同上。

(5) 數據表的建立和刪除:

CREATE TABLE 數據表名稱(欄位1 類型1(長度),欄位2 類型2(長度) …… )

例:CREATE TABLE tab01(name varchar(50),datetime default now())

DROP TABLE 數據表名稱 (永久性刪除一個數據表)

4. 記錄集對象的方法:

rs.movenext 將記錄指針從當前的位置向下移一行
rs.moveprevious 將記錄指針從當前的位置向上移一行
rs.movefirst 將記錄指針移到數據表第一行
rs.movelast 將記錄指針移到數據表最後一行
rs.absoluteposition=N 將記錄指針移到數據表第N行
rs.absolutepage=N 將記錄指針移到第N頁的第一行
rs.pagesize=N 設置每頁為N條記錄

2、更改表格
ALTER TABLE table_name
ADD COLUMN column_name DATATYPE
說明:增加一個欄位(沒有刪除某個欄位的語法。
ALTER TABLE table_name
ADD PRIMARY KEY (column_name)
說明:更改表得的定義把某個欄位設為主鍵。
ALTER TABLE table_name
DROP PRIMARY KEY (column_name)
說明:把主鍵的定義刪除。

3、建立索引
CREATE INDEX index_name ON table_name (column_name)
說明:對某個表格的欄位建立索引以增加查詢時的速度。

4、刪除
DROP table_name
DROP index_name

二、的資料形態 DATATYPEs
smallint
16 位元的整數。
interger
32 位元的整數。
decimal(p,s)
p 精確值和 s 大小的十進位整數,精確值p是指全部有幾個數(digits)大小值,s是指小數
點後有幾位數。如果沒有特別指定,則系統會設為 p=5; s=0 。
float
32位元的實數。
double
64位元的實數。
char(n)
n 長度的字串,n不能超過 254。
varchar(n)
長度不固定且其最大長度為 n 的字串,n不能超過 4000。
graphic(n)
和 char(n) 一樣,不過其單位是兩個字元 double-bytes, n不能超過127。這個形態是為
了支援兩個字元長度的字體,例如中文字。
vargraphic(n)
可變長度且其最大長度為 n 的雙字元字串,n不能超過 2000。
date
包含了 年份、月份、日期。
time
包含了 小時、分鍾、秒。
timestamp
包含了 年、月、日、時、分、秒、千分之一秒。

三、資料操作 DML (Data Manipulation Language)
資料定義好之後接下來的就是資料的操作。資料的操作不外乎增加資料(insert)、查詢資料(query)、更改資料(update) 、刪除資料(delete)四種模式,以下分 別介紹他們的語法:

1、增加資料:
INSERT INTO table_name (column1,column2,...)
valueS ( value1,value2, ...)
說明:
1.若沒有指定column 系統則會按表格內的欄位順序填入資料。
2.欄位的資料形態和所填入的資料必須吻合。
3.table_name 也可以是景觀 view_name。

INSERT INTO table_name (column1,column2,...)
SELECT columnx,columny,... FROM another_table
說明:也可以經過一個子查詢(subquery)把別的表格的資料填入。

2、查詢資料:
基本查詢
SELECT column1,columns2,...
FROM table_name
說明:把table_name 的特定欄位資料全部列出來
SELECT *
FROM table_name
WHERE column1 = xxx
[AND column2 > yyy] [OR column3 <> zzz]

三)交叉連接

交叉連接不帶WHERE 子句,它返回被連接的兩個表所有數據行的笛卡爾積,返回到結果集合中的數
據行數等於第一個表中符合查詢條件的數據行數乘以第二個表中符合查詢條件的數據行數。
例,titles表中有6類圖書,而publishers表中有8家出版社,則下列交叉連接檢索到的記錄數將等
於6*8=48行。
SELECT type,pub_name
FROM titles CROSS JOIN publishers
ORDER BY type
UNION運算符可以將兩個或兩個以上上SELECT語句的查詢結果集合合並成一個結果集合顯示,即執行聯合查詢。UNION的語法格式為:
select_statement
UNION [ALL] selectstatement
[UNION [ALL] selectstatement][…n]
其中selectstatement為待聯合的SELECT查詢語句。
ALL選項表示將所有行合並到結果集合中。不指定該項時,被聯合查詢結果集合中的重復行將只保留一
行。
聯合查詢時,查詢結果的列標題為第一個查詢語句的列標題。因此,要定義列標題必須在第一個查詢語
句中定義。要對聯合查詢結果排序時,也必須使用第一查詢語句中的列名、列標題或者列序號。
在使用UNION 運算符時,應保證每個聯合查詢語句的選擇列表中有相同數量的表達式,並且每個查詢選
擇表達式應具有相同的數據類型,或是可以自動將它們轉換為相同的數據類型。在自動轉換時,對於數值類

型,系統將低精度的數據類型轉換為高精度的數據類型。

在包括多個查詢的UNION語句中,其執行順序是自左至右,使用括弧可以改變這一執行順序。例如:

查詢1 UNION (查詢2 UNION 查詢3)

INSERT語句

用戶可以用INSERT語句將一行記錄插入到指定的一個表中。例如,要將雇員John Smith的記錄插入到本例的表中,可以使用如下語句:

INSERT INTO EMPLOYEES valueS

('Smith','John','1980-06-10',

'Los Angles',16,45000);

通過這樣的INSERT語句,系統將試著將這些值填入到相應的列中。這些列按照我們創建表時定義的順序排列。在本例中,第一個值「Smith」將填到第一個列LAST_NAME中;第二個值「John」將填到第二列FIRST_NAME中……以此類推。

我們說過系統會「試著」將值填入,除了執行規則之外它還要進行類型檢查。如果類型不符(如將一個字元串填入到類型為數字的列中),系統將拒絕這一次操作並返回一個錯誤信息。

如果SQL拒絕了你所填入的一列值,語句中其他各列的值也不會填入。這是因為SQL提供對事務的支持。一次事務將資料庫從一種一致性轉移到另一種一致性。如果事務的某一部分失敗,則整個事務都會失敗,系統將會被恢復(或稱之為回退)到此事務之前的狀態。

回到原來的INSERT的例子,請注意所有的整形十進制數都不需要用單引號引起來,而字元串和日期類型的值都要用單引號來區別。為了增加可讀性而在數字間插入逗號將會引起錯誤。記住,在SQL中逗號是元素的分隔符。

同樣要注意輸入文字值時要使用單引號。雙引號用來封裝限界標識符。

對於日期類型,我們必須使用SQL標准日期格式(yyyy-mm-dd)

㈦ 在sql中=跟:=是怎麼個用法

賦值語句用:= sql語句用=

㈧ 求教sql函數的正確用法

distinct 省略選擇欄位中包含重復數據的記錄,就是出來的結果無重復數據
RTRIM 去掉字元串右邊的空白字元

CAST 和 CONVERT
將某種數據類型的表達式顯式轉換為另一種數據類型。CAST 和 CONVERT 提供相似的功能。
CAST ( expression AS data_type )
CONVERT (data_type[(length)], expression [, style])
參數
expression
是任何有效的 Microsoft® SQL Server™ 表達式。有關更多信息,請參見表達式。
data_type
目標系統所提供的數據類型,包括 bigint 和 sql_variant。不能使用用戶定義的數據類型。有關可用的數據類型的更多信息,請參見數據類型。
length
nchar、nvarchar、char、varchar、binary 或 varbinary 數據類型的可選參數。
style
日期格式樣式,藉以將 datetime 或 smalldatetime 數據轉換為字元數據(nchar、nvarchar、char、varchar、nchar 或 nvarchar 數據類型);或者字元串格式樣式,藉以將 float、real、money 或 smallmoney 數據轉換為字元數據(nchar、nvarchar、char、varchar、nchar 或 nvarchar 數據類型)。
SQL Server 支持使用科威特演算法的阿拉伯樣式中的數據格式。
在表中,左側的兩列表示將 datetime 或 smalldatetime 轉換為字元數據的 style 值。給 style 值加 100,可獲得包括世紀數位的四位年份 (yyyy)。

REPLICATE
以指定的次數重復字元表達式。
REPLICATE ( character_expression , integer_expression )
參數
character_expression
由字元數據組成的字母數字表達式。character_expression 可以是常量或變數,也可以是字元列或二進制數據列。
integer_expression
是正整數。如果 integer_expression 為負,則返回空字元串。

SUBSTRING
返回字元、binary、text 或 image 表達式的一部分。
SUBSTRING ( expression , start , length )

參數
expression
是字元串、二進制字元串、text、image、列或包含列的表達式。不要使用包含聚合函數的表達式。
start
是一個整數,指定子串的開始位置。
length
是一個整數,指定子串的長度(要返回的字元數或位元組數)。

MAX
返回表達式的最大值。

RIGHT
返回字元串中從右邊開始指定個數的 字元

LEN
返回給定字元串表達式的字元(而不是位元組)個數,其中不包含尾隨空格。

㈨ SQL的 in跟=的用法有什麼區別

IN操作符用來指定條件范圍,范圍中的每個條件都可以進行匹配;=只能用來匹配一個;舉個例子吧:
SELECT prod_id,prod_name FROM procts WHERE prod_id IN (1001,1002);
等價的IN語句如下:
SELECT prod_id,prod_name FROM procts WHERE prod_id =1001 OR prod_id =1002;