① 請教sql基本語句
SQL SELECT 語句
SELECT 語句用於從表中選取數據。表格式的結構被存儲在一個結果表中(稱為結果集)。
語法:SELECT 列名稱 FROM 表名稱
注釋:SQL 語句對大小寫不敏感。SELECT 等效於 select。
Update 語句
Update 語句用於修改表中的數據。
語法:UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值
DELETE 語句
DELETE 語句用於刪除表中的行。
語法:DELETE FROM 表名稱 WHERE 列名稱 = 值
② sql server建表 什麼數據類型支持多段落文本
存儲文本內容,用text/netxt
存儲整個文件,用image
text/ntext是以字元型存儲數據的
image是按二進制存儲數據的
用NVARCHAR(MAX)存儲的內容少,樓主用 image 試試
③ sql裡面 with...as 是什麼意思啊如何使用
with...as是用來定義sql代碼片段的語句,一般是在sql嵌套查詢比較多的時候應用,可以增加sql語句的可讀性。下面我以sql server來具體演示一下with...as怎麼用:
1、准備要操作的數據,假設要查詢下面年齡大於40歲的數據,如下圖所示
④ SQL 究竟是干什麼用的用的哪些方面
SQL可以有兩個解釋: 一個是微軟的SQL Server,是一個大型的資料庫系統軟體,專門用於大批量的數據存儲和管理。 另一個解釋是Structured Query Language(結構化查詢語言)的縮寫,它是目前使用最廣泛的資料庫語言,SQL是由IBM發展起來的,後來被許多資料庫軟體公司接受而成為了業內的一個標准。就象SQL的名字一樣,我們可以通過容易理解的查詢語言,來和資料庫打交道,從資料庫中得到我們想要的數據。對於SQL語言,有兩個組成部分: DML(data manipulation language):它們是SELECT、UPDATE、INSERT、DELETE,就象它的名字一樣,這4條命令是用來對資料庫里的數據進行操作的語言。 DDL(data definition language):DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定義或改變表(TABLE)的結構,數據類型,表之間的鏈接和約束等初始化工作上,他們大多在建立表時使用
⑤ 如何給sql提取的片段取別名
1、使用雙引號創建別名。代碼如下:
SELECTgoods_name"商品名稱"FROMgoods;
2、使用單引號創建別名。代碼如下:
SELECTgoods_name'商品名稱'FROMgoods
3、使用引號創建別名。代碼如下:
SELECTgoods_name商品名稱FROMgoods
4、使用AS關鍵字創建別名。代碼如下:
SELECTgoods_nameAS"商品名稱"FROMgoods
⑥ sql語句用什麼語句
SQL語句:
主要是由sql 關鍵字加sql對象的名稱組合而成。
常見的sql操作語句有:
insert(增) update(改) delete(刪除) select(查) where (條件限定關鍵字)
/*例:下文將創建一個基本的sql操作語句*/
----創建數據表
createtableA(keyIdint,namevarchar(20))
go
----使用insert新增數據
insertintoA(keyId,name)values(1,'a')
insertintoA(keyId,name)values(2,'b')
insertintoA(keyId,name)values(3,'c')
go
----使用update更新指定行數據
updateAsetname='test'wherekeyId=2
----使用delete刪除指定行數據
deletefromAwherekeyId=1
----使用select查詢數據
selectkeyId,namefromA
go
truncatetableA---清除當前測試表數據
droptableA---刪除測試表結構
SQL其它連接關鍵字使用:
join 連接關鍵字:
可以通過join 關鍵字將兩張及多張表進行連接,然後通過相應的查詢條件返回連接後的集合
createtableA(keyIdintprimarykey,infovarchar(60),writeDatedatetime)
insertintoAvalues
(1,'a','2017-1-1'),(2,'b','2017-1-2'),(3,'c','2017-1-3')
go
createtableB(keyId2int,info2varchar(60),writeDate2datetime)
insertintoBvalues
(11,'a','2017-1-1'),(2,'b','2017-1-2'),(2,'b2','2017-12-2'),(13,'c','2017-1-3'),(1,'a2','2017-1-1')
go
/*單欄位左連接進行笛卡爾運算*/
select*fromAleftjoinBona.keyId=b.keyId2
go
/*多欄位左連接進行笛卡爾運算*/
select*fromAleftjoinBona.keyId=b.keyId2andA.info=b.info2
go
truncatetableA
droptableA
truncatetableB
droptableB
SQL控制關鍵字:
sql 腳本中常用的關鍵字還有 while for if else do while 等控制語句。
SQL語句:
綜上所述SQL語句是由sql關鍵字和SQL對象名組合成sql代碼。
⑦ sql語句放在vba里需要什麼框架
VBA里使用SQL語句,不僅要需要遵循SQL的語法規則。在VBA中構造不光要遵循SQL的語法規則,還必須要遵循VBA的語法規則。
於是就會多出來好些如連接符(&)、雙引號(")等符號,很多初學者就是被這些符號搞暈了。下面就簡單講一下如何通過拆分法來理解VBA中動態SQL語句的構造。
在查詢的時候雖然我們可以將查詢條件綁定到窗體控制項,如下面的示例:
Select
* FROM 訂單表 Where客戶名稱
=Forms!客戶查詢窗體!客戶名稱輸入框但這樣只能適用於比較簡單的查詢,隨著條件復雜度的增加,SQL語句的構造難度也會直線上升,更重要的是這樣
的SQL語句很難理解,就算最終做出來了,一旦過了一段時間需要修改的話,就非常麻煩。
於是在VBA中使用變數構造動態的
SQL語句就成了一種理想的選擇。我們來看一個例子,比如我們要通過在窗體上的三個文本框(txt客戶名稱、txt開始日期、txt結束日期)內輸入相應
的條件值,來構造一個查詢訂單表中指定客戶在某個時間段內銷售記錄的SQL語句,在VBA中的代碼如下:
strSQL="
Select * FROM 訂單表 Where 客戶名稱='www.gzlij.com" & Me.txt客戶名稱 & "'
AND 銷售日期 Between #" & Me.txt開始日期 & "# And #" & Me.txt結束日期
& "#"
上面的的語句該如何理解呢?這里通過替換法來進行拆分,我們先假設文本框的值分別是:
txt開始日期=2010-5-1
txt結束日期=2010-5-31
txt客戶名稱=東南實業
根據上面的條件,我們需要得到的SQL語句應該是:
Select * FROM 訂單表 Where 客戶名稱="東南實業" AND 銷售日期 Between #2010-5-1# And #2010-5-31#
這里的由於要在VBA中構造,而雙引號(")是VBA中的字元串界定符,所以我們需要把它改成單引號(')來符合VBA的語法規則,那麼SQL語句就成了:
Select * FROM 訂單表 Where 客戶名稱='東南實業' AND 銷售日期 Between #2010-5-1# And #2010-5-31#
(當然我們也可以根據VBA的語法來用兩個雙引號,這樣VBA編譯器就會把這兩個連續的雙引號識別為一個雙引號字元,而不是字元串界定符,不過這樣相對來說更加復雜和麻煩一些,還有一些其它原因這里就不細說了。)
我們再把裡面的條件值換回變數,由於條件需要用變數代替,所以我們這里把上面的SQL語句拆分成如下的多個片段:
Select * FROM 訂單表 Where 客戶名稱='東南實業' AND 銷售日期 Between #2010-5-1# And #2010-5-31#
然後把其中的條件值換成變數,就成了:
Select * FROM 訂單表 Where 客戶名稱='Me.txt客戶名稱' AND 銷售日期 Between #Me.txt開始日期# And #Me.txt結束日期#
接下來再把其中不是變數的片段兩頭加上雙引號,使其符合VBA中的字元串語法:
"Select * FROM 訂單表 Where 客戶名稱='"Me.txt客戶名稱"' AND 銷售日期 Between #"Me.txt開始日期"# And #"Me.txt結束日期"#"
最後我們再用連接符(&)把這些拆分處理後得到的片段連接組合成一個字元串(注意,使用連接符組合多個字元串或變數時,連接符兩邊要有空格),就得到了我們需要的VBA中的動態SQL語句的寫法:
"Select
* FROM 訂單表 Where 客戶名稱='" & Me.txt客戶名稱 & "' AND 銷售日期 Between #"
& Me.txt開始日期 & "# And #" & Me.txt結束日期 & "#"
⑧ SQL Select 語句的用法
以下是代碼片段:
SQL: select * into b from a where 1<>1說明:拷貝表(拷貝數據,源表名:a 目標表名:b)以下是代碼片段:
SQL: insert into b(a, b, c) select d,e,f from b;說明:顯示文章、提交人和最後回復時間以下是代碼片段:
SQL: select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b說明:外連接查詢(表名1:a 表名2:b)以下是代碼片段:
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說明:日程安排提前五分鍾提醒以下是代碼片段:
SQL: select * from 日程安排 where datediff(』minute』,f開始時間,getdate())>5
說明:兩張關聯表,刪除主表中已經在副表中沒有的信息
SQL: 以下是代碼片段:
delete from info where not exists ( select * from infobz where info.infid=infobz.infid 說明:--
SQL:
以下是代碼片段:
SELECT A.NUM, A.NAME, B.UPD_DATE, B.PREV_UPD_DATE
FROM TABLE1,
(SELECT X.NUM, X.UPD_DATE, Y.UPD_DATE PREV_UPD_DATE
FROM (SELECT NUM, UPD_DATE, INBOUND_QTY, STOCK_ONHAND
FROM TABLE2
WHERE TO_CHAR(UPD_DATE,』YYYY/MM』) = TO_CHAR(SYSDATE, 』YYYY/MM』)) X,
(SELECT NUM, UPD_DATE, STOCK_ONHAND
FROM TABLE2
WHERE TO_CHAR(UPD_DATE,』YYYY/MM』) =
TO_CHAR(TO_DATE(TO_CHAR(SYSDATE, 』YYYY/MM』) ¦¦ 』/01』,』YYYY/MM/DD』) - 1, 』YYYY/MM』) Y,
WHERE X.NUM = Y.NUM (+)
AND X.INBOUND_QTY + NVL(Y.STOCK_ONHAND,0) <> X.STOCK_ONHAND B
WHERE A.NUM = B.NUM說明:--
SQL: 以下是代碼片段:
select * from studentinfo where not exists(select * from student where studentinfo.id=student.id) and 系名稱=』"&strdepartmentname&"』 and 專業名稱=』"&strprofessionname&"』 order by 性別,生源地,高考總成績說明:
從資料庫中去一年的各單位電話費統計(電話費定額賀電化肥清單兩個表來源)
SQL:
以下是代碼片段:
SELECT a.userper, a.tel, a.standfee, TO_CHAR(a.telfeedate, 』yyyy』) AS telyear,
SUM(decode(TO_CHAR(a.telfeedate, 』mm』), 』01』, a.factration)) AS JAN,
SUM(decode(TO_CHAR(a.telfeedate, 』mm』), 』02』, a.factration)) AS FRI,
SUM(decode(TO_CHAR(a.telfeedate, 』mm』), 』03』, a.factration)) AS MAR,
SUM(decode(TO_CHAR(a.telfeedate, 』mm』), 』04』, a.factration)) AS APR,
SUM(decode(TO_CHAR(a.telfeedate, 』mm』), 』05』, a.factration)) AS MAY,
SUM(decode(TO_CHAR(a.telfeedate, 』mm』), 』06』, a.factration)) AS JUE,
SUM(decode(TO_CHAR(a.telfeedate, 』mm』), 』07』, a.factration)) AS JUL,
SUM(decode(TO_CHAR(a.telfeedate, 』mm』), 』08』, a.factration)) AS AGU,
SUM(decode(TO_CHAR(a.telfeedate, 』mm』), 』09』, a.factration)) AS SEP,
SUM(decode(TO_CHAR(a.telfeedate, 』mm』), 』10』, a.factration)) AS OCT,
SUM(decode(TO_CHAR(a.telfeedate, 』mm』), 』11』, a.factration)) AS NOV,
SUM(decode(TO_CHAR(a.telfeedate, 』mm』), 』12』, a.factration)) AS DEC
FROM (SELECT a.userper, a.tel, a.standfee, b.telfeedate, b.factration
FROM TELFEESTAND a, TELFEE b
WHERE a.tel = b.telfax) a
GROUP BY a.userper, a.tel, a.standfee, TO_CHAR(a.telfeedate, 』yyyy』)說明:四表聯查問題:SQL: 以下是代碼片段:
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 .....說明:得到表中最小的未使用的ID號
SQL: 以下是代碼片段:
SELECT (CASE WHEN EXISTS(SELECT * FROM Handle b WHERE b.HandleID = 1) THEN MIN(HandleID) + 1 ELSE 1 END) as HandleID
FROM Handle
WHERE NOT HandleID IN (SELECT a.HandleID - 1 FROM Handle a)
⑨ 如何篩選SQL字元串欄位中部分值
一、先說篩選字元串欄位中部分值的記錄。
例如我有一個KKBH(卡口編號)欄位,這是一個字典欄位(對應另一個實體表(卡口表)的編號欄位)。這個欄位的值保存所屬卡口值域{01,02,03}
本來想到的是通過or來實現,這樣需要動態生成SQL語句。
後來想到一個辦法用charindex搜索字元串的辦法。將所有的要查的卡口編號組成類似'01@02'這樣待查字元串。sql查詢時通過charindex篩選出在待查字元串里有的KKBH的記錄。
經測試使用or與使用charindex,兩者在MSSQL中執行效率差不多。
具體實現:
用戶界面查詢需求:可能搜索N個卡口的記錄(N的值域{1,所有卡口個數})。設計這個UI的形式一共三種:
一、一個多選listbox。用戶界面運行時將卡口字典表載入listbox信息。
二、兩個listbox,左邊為待選,右邊為已選,中間加兩個按鈕添加與刪除。用戶界面運行時將卡都字典表載入左邊的listbox。
三、多個Checkbox。可以在界面設計階段直接做死字典表,即有幾個卡口就話幾個checkbox。或者在程序運行根據字典表繪制動態繪制checkbox。
UI的優缺點這里不討論,我這里選擇第三種方式的動態繪制。
在查詢階段根據所選卡口生成待選字元串入:"01@02」
並將此條件傳回後台查詢服務程序
後台查詢服務里只要待查字元串作為參數傳入查詢的SQL語句中(sql片段): charindex(卡口編號,@待查字元串)。當然也可以手動生成SQL方式傳入"charindex(卡口編號,'"+待查字元串+"')".
二、模糊查詢。
使用like的模糊查詢發生效率是很低。
提高的解決辦法與:
一、用full text index 結合contains函數。全文本索引,帶了空間佔用率很高。
二、通過charindex+substring實現簡易模糊查詢。使用substring分段,charindex實現類似like '%關鍵字%'。
⑩ SQL是干什麼用的用的哪些方面
說sql之前,首先需要聊聊資料庫,資料庫到底是什麼東西呢,顧名思義,資料庫就是保存數據的倉庫,它可以存儲我們日常生活中的數據,比如學校的一些基本信息,公司的人員信息甚至是我們日常的一些照片或者視頻之類的都可以保存。
那麼我們如何能夠將我們的這些數據信息保存到資料庫呢,資料庫是存放在物理計算機上的,為了能夠很好地去操作資料庫,這時候我們就需要藉助sql來進行操作,sql按照一定的語法規范,將我們所需要的數據,按照一定的規范組裝之後,就可以和資料庫進行交互了。
平時我們進行較多的操作也就是數據的添加,修改,刪除和查看,當我們需要進行這些操作的時候,我們通過sql發出相對應的命令即可,而且它的操作非常的簡單,對於初學者來書,也很容易上手。
現如今互聯網的發展速度很快,幾乎我們所能看到的網站的數據,都是存儲在了資料庫中,因此對於資料庫的操作也是非常的重要了,因而sql也就我們所需要掌握的技術,對於我們開發網站,你可以不懂資料庫的底層原理,但是你需要了解基本的sql語句,只有了解了sql你才可以完成一個完整的網站開發。所以sql對於我們開發來說也是非常的重要了。
對於不同的資料庫來說,sql的語法基本大似相同,學會了一種sql語句,其他的也基本就都了解了,而且對於同一個資料庫來說,即使運行在不同的操作系統上,sql語句都不需要進行修改,對於資料庫管理員(DBA)或者開發者來說,我們需要考慮的事情就少了很多,因為像其他有些編程語言,對於不同的操作系統,還需要考慮不同平台的差異。
sql的語法也是非常的簡單,即使對於不同的資料庫來說,創建資料庫或者數據表使用`CREATE`(創建)關鍵字即可,查看數據使用`SELECT`(選擇)即可,插入數據使用``(插入)即可,修改數據使用`UPDATE`(修改)即可,刪除數據使用`DELETE`(刪除)即可,有了這幾個基本語句,我們就可以很方便的處理很多數據。總之學好sql不論是對我們開發還是對數據的處理都是非常有用的。
更多關於資料庫方面的操作和詳細講解,可以看下這個更直觀的視頻教程:網頁鏈接,希望我的回答能幫到你!