當前位置:首頁 » 編程語言 » sql基本語句

sql基本語句

發布時間: 2022-01-20 01:52:05

sql 常用查詢語句

用SQL自帶的幫助手冊就很好的。

② sql常用語句語法

【查找數據】
語法:select
*
from
表名
where
id=1
-----------------------------
*代表所有,如果想查找其中幾個,可以直接寫列名,中間逗號分隔。where是條件
id=1是指id列值為1的所有信息
【更新數據】
語法:update
表名
set
name='聞銘'
where
id=1
------------------------------------
set後跟表名=值
如果不加where條件,則更新所有。
這里是指符合id=1的所有的都更新name為聞名
【刪除數據】
語法:delete
表名
where
id=1
-----------------------------------
刪除id列值為1的所有數據
【插入數據】
語法:insert
into
表名(列名,列名)values(列值,列值)
-------------------------------
注意主鍵列不可設置值

③ SQL最基本的語句是哪些

掌握SQL四條最基本的數據操作語句:Insert,Select,Update和Delete。練掌握SQL是資料庫用戶的寶貴財 富。在本文中,我們將引導你掌握四條最基本的數據操作語句?SQL的核心功能?來依次介紹比較操作符、選擇斷言以及三值邏輯。當你完成這些學習後,顯然你已經開始算是精通SQL了。在我們開始之前,先使用CREATE TABLE語句來創建一個表(如圖1所示)。DDL語句對資料庫對象如表、列和視進行定義。它們並不對表中的行進行處理,這是因為DDL語句並不處理資料庫中實際的數據。這些工作由另一類SQL語句?數據操作語言(DML)語句進行處理。SQL中有四種基本的DML操作:INSERT,SELECT,UPDATE和DELETE。由於這是大多數SQL用戶經常用到的,我們有必要在此對它們進行一一說明。在圖1中我們給出了一個名為EMPLOYEES的表。其中的每一行對應一個特定的雇員記錄。請熟悉這張表,我們在後面的例子中將要用到它。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),但是在系統中可以進行定義,以接受其他的格式。當然,2000年臨近,請你最好還是使用四位來表示年份。既然你已經理解了INSERT語句是怎樣工作的了,讓我們轉到EMPLOYEES表中的其他部分:INSERT INTO EMPLOYEES VALUES('Bunyan','Paul','1970-07-04','Boston',12,70000);INSERT INTO EMPLOYEES VALUES('John','Adams','1992-01-21','Boston',20,100000);INSERT INTO EMPLOYEES VALUES('Smith','Pocahontas','1976-04-06','Los Angles',12,100000);INSERT INTO EMPLOYEES VALUES('Smith','Bessie','1940-05-02','Boston',5,200000);INSERT INTO EMPLOYEES VALUES('Jones','Davy','1970-10-10','Boston',8,45000);INSERT INTO EMPLOYEES VALUES('Jones','Indiana','1992-02-01','Chicago',NULL,NULL);在最後一項中,我們不知道Jones先生的工薪級別和年薪,所以我們輸入NULL(不要引號)。NULL是SQL中的一種特殊情況,我們以後將進行詳細的討論。現在我們只需認為NULL表示一種未知的值。有時,像我們剛才所討論的情況,我們可能希望對某一些而不是全部的列進行賦值。除了對要省略的列輸入NULL外,還可以採用另外一種INSERT語句,如下:INSERT INTO EMPLOYEES(FIRST_NAME, LAST_NAME,HIRE_DATE, BRANCH_OFFICE)VALUE('Indiana','Jones','1992-02-01','Indianapolis');這樣,我們先在表名之後列出一系列列名。未列出的列中將自動填入預設值,如果沒有設置預設值則填入NULL。請注意我們改變了列的順序,而值的順序要對應新的列的順序。如果該語句中省略了FIRST_NAME和LAST_NAME項(這兩項規定不能為空),SQL操作將失敗。讓我們來看一看上述INSERT語句的語法圖:INSERT INTO table[(column { ,column})]VALUES(columnvalue [{,columnvalue}]);和前一篇文章中一樣,我們用方括弧來表示可選項,大括弧表示可以重復任意次數的項(不能在實際的SQL語句中使用這些特殊字元)。VALUE子句和可選的列名列表中必須使用圓括弧。SELECT語句SELECT語句可以從一個或多個表中選取特定的行和列。因為查詢和檢索數據是資料庫管理中最重要的功能,所以SELECT語句在SQL中是工作量最大的部分。實際上,僅僅是訪問資料庫來分析數據並生成報表的人可以對其他SQL語句一竅不通。SELECT語句的結果通常是生成另外一個表。在執行過程中系統根據用戶的標准從資料庫中選出匹配的行和列,並將結果放到臨時的表中。在直接SQL(direct SQL)中,它將結果顯示在終端的顯示屏上,或者將結果送到列印機或文件中。也可以結合其他SQL語句來將結果放到一個已知名稱的表中。SELECT語句功能強大。雖然表面上看來它只用來完成本文第一部分中提到的關系代數運算「選擇」(或稱「限制」),但實際上它也可以完成其他兩種關系運算?「投影」和「連接」,SELECT語句還可以完成聚合計算並對數據進行排序。SELECT語句最簡單的語法如下:SELECT columns FROM tables;當我們以這種形式執行一條SELECT語句時,系統返回由所選擇的列以及用戶選擇的表中所有指定的行組成的一個結果表。這就是實現關系投影運算的一個形式。讓我們看一下使用圖1中EMPLOYEES表的一些例子(這個表是我們以後所有SELECT語句實例都要使用的。而我們在圖2和圖3中給出了查詢的實際結果。我們將在其他的例子中使用這些結果)。假設你想查看雇員工作部門的列表。那下面就是你所需要編寫的SQL查詢:SELECT BRANCH_OFFICE FROM EMPLOYEES;以上SELECT語句的執行將產生如圖2中表2所示的結果。由於我們在SELECT語句中只指定了一個列,所以我們的結果表中也只有一個列。注意結果表中具有重復的行,這是因為有多個雇員在同一部門工作(記住SQL從所選的所有行中將值返回)。要消除結果中的重復行,只要在SELECT語句中加上DISTINCT子句:SELECT DISTINCT BRANCH_OFFICEFROM EMPLOYEES;這次查詢的結果如表3所示。現在已經消除了重復的行,但結果並不是按照順序排列的。如果你希望以字母表順序將結果列出又該怎麼做呢?只要使用ORDER BY子句就可以按照升序或降序來排列結果:SELECT DISTINCT BRANCH_OFFICEFROM EMPLOYEESORDER BY BRANCH_OFFICE ASC;這一查詢的結果如表4所示。請注意在ORDER BY之後是如何放置列名BRANCH _OFFICE的,這就是我們想要對其進行排序的列。為什麼即使是結果表中只有一個列時我們也必須指出列名呢?這是因為我們還能夠按照表中其他列進行排序,即使它們並不顯示出來。列名BRANCH_ OFFICE之後的關鍵字ASC表示按照升序排列。如果你希望以降序排列,那麼可以用關鍵字DESC。同樣我們應該指出ORDER BY子句只將臨時表中的結果進行排序;並不影響原來的表。假設我們希望得到按部門排序並從工資最高的雇員到工資最低的雇員排列的列表。除了工資括弧中的內容,我們還希望看到按照聘用時間從最近聘用的雇員開始列出的列表。以下是你將要用到的語句:SELECT BRANCH_OFFICE,FIRST_NAME,LAST_NAME,SALARY,HIRE_DATEFROM EMPLOYEESORDER BY SALARY DESC,HIRE_DATE DESC;這里我們進行了多列的選擇和排序。排序的優先順序由語句中的列名順序所決定。SQL將先對列出的第一個列進行排序。如果在第一個列中出現了重復的行時,這些行將被按照第二列進行排序,如果在第二列中又出現了重復的行時,這些行又將被按照第三列進行排序……如此類推。這次查詢的結果如表5所示。將一個很長的表中的所有列名寫出來是一件相當麻煩的事,所以SQL允許在選擇表中所有的列時使用*號:SELECT * FROM EMPLOYEES;這次查詢返回整個EMPLOYEES表,如表1所示。下面我們對開始時給出的SELECT語句的語法進行一下更新(豎直線表示一個可選項,允許在其中選擇一項。):SELECT [DISTINCT](column [{, columns}])| *FROM table [ {, table}][ORDER BY column [ASC] | DESC[ {, column [ASC] | DESC }]];定義選擇標准在我們目前所介紹的SELECT語句中,我們對結果表中的列作出了選擇但返回的是表中所有的行。讓我們看一下如何對SELECT語句進行限制使得它只返回希望得到的行:SELECT columns FROM tables [WHERE predicates];WHERE子句對條件進行了設置,只有滿足條件的行才被包括到結果表中。這些條件由斷言(predicate)進行指定(斷言指出了關於某件事情的一種可能的事實)。如果該斷言對於某個給定的行成立,該行將被包括到結果表中,否則該行被忽略。在SQL語句中斷言通常通過比較來表示。例如,假如你需要查詢所有姓為Jones的職員,則可以使用以下SELECT語句:SELECT * FROM EMPLOYEESWHERE LAST_NAME = 'Jones';LAST_NAME = 'Jones'部分就是斷言。在執行該語句時,SQL將每一行的LAST_NAME列與「Jones」進行比較。如果某一職員的姓為「Jones」,即斷言成立,該職員的信息將被包括到結果表中(見表6)。使用最多的六種比較我們上例中的斷言包括一種基於「等值」的比較(LAST_NAME = 'Jones'),但是SQL斷言還可以包含其他幾種類型的比較。其中最常用的為:等於 =不等於 <>小於 <大於 >小於或等於 <=大於或等於 >=下面給出了不是基於等值比較的一個例子:SELECT * FROM EMPLOYEESWHERE SALARY > 50000;這一查詢將返回年薪高於$50,000.00的職員(參見表7)。邏輯連接符有時我們需要定義一條不止一種斷言的SELECT語句。舉例來說,如果你僅僅想查看Davy Jones的信息的話,表6中的結果將是不正確的。為了進一步定義一個WHERE子句,用戶可以使用邏輯連接符AND,OR和NOT。為了只得到職員Davy Jones的記錄,用戶可以輸入如下語句:SELECT * FROM EMPLOYEESWHERE LAST_NAME = 'Jones' AND FIRST_NAME = 'Davy';在本例中,我們通過邏輯連接符AND將兩個斷言連接起來。只有兩個斷言都滿足時整個表達式才會滿足。如果用戶需要定義一個SELECT語句來使得當其中任何一項成立就滿足條件時,可以使用OR連接符:SELECT * FROM EMPLOYEESWHERE LAST_NAME = 'Jones' OR LAST_NAME = 'Smith';有時定義一個斷言的最好方法是通過相反的描述來說明。如果你想要查看除了Boston辦事處的職員以外的其他所有職員的信息時,你可以進行如下的查詢:SELECT * FROM EMPLOYEESWHERE NOT(BRANCH_OFFICE = 'Boston');關鍵字NOT後面跟著用圓括弧括起來的比較表達式。其結果是對結果取否定。如果某一職員所在部門的辦事處在Boston,括弧內的表達式返回true,但是NOT操作符將該值取反,所以該行將不被選中。斷言可以與其他的斷言嵌套使用。為了保證它們以正確的順序進行求值,可以用括弧將它們括起來:SELECT * FROM EMPLOYEESWHERE (LAST_NAME = 'Jones'AND FIRST_NAME = 'Indiana')OR (LAST_NAME = 'Smith'AND FIRST_NAME = 'Bessie');SQL沿用數學上標準的表達式求值的約定?圓括弧內的表達式將最先進行求值,其他表達式將從左到右進行求值。以上對邏輯連接符進行了說明,在對下面的內容進行說明之前,我們再一次對SELECT語句的語法進行更新:SELECT [DISTINCT](column [{, column } ] )| *FROM table [ { , table} ][ORDER BY column [ASC] | [DESC[{ , column [ASC] | [DESC } ] ]

④ SQL 的基本語句構成

SQL SELECT 語句
SELECT 語句用於從表中選取數據。表格式的結構被存儲在一個結果表中(稱為結果集)。
語法:SELECT 列名稱 FROM 表名稱
注釋:SQL 語句對大小寫不敏感。SELECT 等效於 select。

Update 語句
Update 語句用於修改表中的數據。
語法:UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值

DELETE 語句
DELETE 語句用於刪除表中的行。
語法:DELETE FROM 表名稱 WHERE 列名稱 = 值

⑤ SQL基礎查詢語句

SELECT cou.cno, tea.Tname, cs.cnt
FROM
(select cno as cno, count(sno) as cnt from sel group by cno) cs,
cou,tea,teacourse
WHERE
cou.cno = cs.cno
AND tea.Tno = teacourse.Tno
AND teacourse.cno = cou.cno

⑥ sql 常用語句


insert
into
表名
(欄位1,
欄位2,欄位3,欄位4,...)
values(欄位1的值,
欄位2的值,欄位3的值,欄位4的值,...)

delete
from
表名
where
條件

update
表名
set
欄位1
=
欄位1的值,
欄位2
=
欄位2的值,
欄位3
=
欄位3的值,...
(逗號分隔)

select
*
from
表名
where
條件

⑦ 請教SQL基本語句

SQL SELECT 語句
SELECT 語句用於從表中選取數據。表格式的結構被存儲在一個結果表中(稱為結果集)。
語法:SELECT 列名稱 FROM 表名稱
注釋:SQL 語句對大小寫不敏感。SELECT 等效於 select。

Update 語句
Update 語句用於修改表中的數據。
語法:UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值

DELETE 語句
DELETE 語句用於刪除表中的行。
語法:DELETE FROM 表名稱 WHERE 列名稱 = 值

⑧ sql基礎語句

基本的sql語句有增加(插入數據)
insert into 表名 values(列名,列名.....)

DELETE FROM 表名 WHERE 加條件

UPDATE 表名 SET 列名 WHERE 加條件

SELECT 列名 FROM 表名 WHERE 加條件

⑨ 常見的SQL語句有哪些

(1)更新數據記錄:
sql="update數據表set欄位名=欄位值where條件表達式"
sql="update數據表set欄位1=值1,欄位2=值2……欄位n=值nwhere條件表達式"

(2)添加數據記錄:
sql="insertinto數據表(欄位1,欄位2,欄位3…)values(值1,值2,值3…)"
sql="insertinto目標數據表select*from源數據表"(把源數據表的記錄添加到目標數據表)

(3)刪除數據記錄:
sql="deletefrom數據表where條件表達式"
sql="deletefrom數據表"(將數據表所有記錄刪除)

(4)數據記錄篩選:
sql="select*from數據表where欄位名=欄位值orderby欄位名[desc]"
sql="select*from數據表where欄位名like'%欄位值%'orderby欄位名[desc]"
sql="selecttop10*from數據表where欄位名orderby欄位名[desc]"
sql="select*from數據表where欄位名in('值1','值2','值3')"
sql="select*from數據表where欄位名between值1and值2"

(5)數據表的建立和刪除:
CREATETABLE數據表名稱(欄位1類型1(長度),欄位2類型2(長度)……)
例:CREATETABLEtab01 (namevarchar (50), datetimedefaultnow ())
DROPTABLE數據表名稱(永久性刪除一個數據表)

(6)數據記錄統計函數:
AVG(欄位名)得出一個表格欄平均值
COUNT(*|欄位名)對數據行數的統計或對某一欄有值的數據行數統計
MAX(欄位名)取得一個表格欄最大的值
MIN(欄位名)取得一個表格欄最小的值
SUM(欄位名)把數據欄的值相加
引用以上函數的方法:
sql="selectsum(欄位名)as別名from數據表where條件表達式"
setrs=conn.excute(sql)
用rs("別名")獲取統的計值,其它函數運用同上。

(6)復制資料庫的表
select * into 新表名 from 要復制的表的表名 where 1=2
要完全復制把where 1=2 去了就可以了
(7)刪除某個表的一個列
alter table bankbill drop column zsl
alter table xx alter/add/drop column xx

(8)模糊查詢
Sql="select top 10 * from 數據表 where 欄位名 order by 欄位名 [desc]"
查找資料庫中前10記錄
Sql="select top n * form 數據表 order by newid()"
隨機取出資料庫中的若干條記錄的方法
top n,n就是要取出的記錄數
Sql="select * from 數據表 where 欄位名 in ('值1','值2','值3')"

⑩ SQL語句大全的基礎

創建之前判斷該資料庫是否存在
if exists (select * from sysdatabases where name='databaseName')
drop database databaseName
go
Create DATABASE databasename
on primary-- 默認就屬於primary文件組,可省略

/*--數據文件的具體描述--*/
name=『databasename_data』,-- 主數據文件的邏輯名稱
filename=『'所存位置:databasename_data.mdf』, -- 主數據文件的物理名稱
size=數值mb, --主數據文件的初始大小
maxsize=數值mb, -- 主數據文件增長的最大值
filegrowth=數值%--主數據文件的增長率

log on

/*--日誌文件的具體描述,各參數含義同上--*/
name='databasename_log', -- 日誌文件的邏輯名稱
filename='所存目錄:databasename_log.ldf', -- 日誌文件的物理名稱
size=數值mb, --日誌文件的初始大小
filegrowth=數值mb--日誌文件的增長值
) --- 創建備份數據的 device
USE master
EXEC sp_admpdevice 'disk', 'testBack', 'c:mssql7backupMyNwind_1.dat'
--- 開始備份
BACKUP DATABASE pubs TO testBack create table tabname(col1 type1 [not null] [primary key] identity(起始值,遞增量)
,col2 type2 [not null],..)--primary key為主鍵 identity表示遞增數量
根據已有的表創建新表:
A:go
use 原資料庫名
go
select * into 目的資料庫名.dbo.目的表名 from 原表名(使用舊表創建新表)
B:create table tab_new as select col1,col2… from tab_old definition only create sequence SIMON_SEQUENCE
minvalue 1 -- 最小值
maxvalue 999999999999999999999999999 -- 最大值
start with 1 -- 開始值
increment by 1 -- 每次加幾
cache 20; Alter table tabname add primary key(col)
說明:刪除主鍵:Alter table tabname drop primary key(col) create [unique] index idxname on tabname(col…。)
刪除索引:drop index idxname on tabname
註:索引是不可更改的,想更改必須刪除重新建。 create view viewname as select statement
刪除視圖:drop view viewname (1) 數據記錄篩選:
sql=select * from 數據表 where欄位名=欄位值 order by欄位名[desc](按某個欄位值降序排列。默認升序ASC)
sql=select * from 數據表 where欄位名like '%欄位值%' order by 欄位名 [desc]
sql=select top 10 * from 數據表 where欄位名=欄位值 order by 欄位名 [desc]
sql=select top 10 * from 數據表 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.excute(sql)
用 rs(別名) 獲取統計的值,其它函數運用同上。
查詢去除重復值:select distinct * from table1
(6) 數據表的建立和刪除:
CREATE TABLE 數據表名稱(欄位1 類型1(長度),欄位2 類型2(長度) …… )
(7) 單列求和:
SELECT SUM(欄位名) FROM 數據表

熱點內容
伺服器的空島如何刷錢 發布:2024-11-15 09:40:52 瀏覽:262
安卓系統錄像設置在哪裡 發布:2024-11-15 09:36:33 瀏覽:917
電信級伺服器電腦 發布:2024-11-15 09:26:27 瀏覽:246
壓縮某個文件夾 發布:2024-11-15 09:03:11 瀏覽:891
網址能解壓嗎 發布:2024-11-15 08:54:09 瀏覽:933
python更改目錄 發布:2024-11-15 08:41:08 瀏覽:265
伺服器快閃記憶體可以裝在一般電腦上嗎 發布:2024-11-15 08:36:46 瀏覽:8
安卓手機怎麼查詢自己的路線軌跡 發布:2024-11-15 08:32:19 瀏覽:969
phpdatet 發布:2024-11-15 08:32:17 瀏覽:507
HDB3編解碼實驗 發布:2024-11-15 08:17:31 瀏覽:212