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)
㈡ 1. SQL的基本操作指令有哪些至少舉出5個
列舉幾個吧
1、顯示當前資料庫伺服器中的資料庫列表:mysql>
SHOW
DATABASES;
2、建立資料庫:mysql>
CREATE
DATABASE
庫名;
3、建立數據表:mysql>
USE
庫名;mysql>
CREATE
TABLE
表名
(欄位名
VARCHAR(20),
欄位名
CHAR(1));
4、刪除資料庫:mysql>
DROP
DATABASE
庫名;
5、刪除數據表:mysql>
DROP
TABLE
表名;
6、將表中記錄清空:mysql>
DELETE
FROM
表名;
7、往表中插入記錄:mysql>
INSERT
INTO
表名
VALUES
("hyq","M");
8、更新表中數據:mysql->
UPDATE
表名
SET
欄位名1='a',欄位名2='b'
WHERE
欄位名3='c';
9、用文本方式將數據裝入數據表中:mysql>
load
data
local
infile
"d:/mysql.txt"
into
table
表名;
10、導入.sql文件命令:mysql>
USE
資料庫名;mysql>
source
d:/mysql.sql;
㈢ sql查詢語句的各個命令執行的標准順序是什麼為什麼
查詢語句是sql語句中使用最多的操作,也涉及到非常多的命令。比如where過濾,groupby分組,order
by
排序
limit取值
having等。雖然多,但是各個命令執行的時候卻是有順序的,順序如下:select
*from
表名①--
where
條件1②--
group
by
依據列③--
having
條件2④--
order
by
依據列⑤--
limit
0,1為什麼是這么個順序,原因:limit取值永遠是最後一個.如果你要order
by排序,前提是要首先得到一個查詢結果.查詢結果中的三個關鍵詞,where總是是放在表名的後面,而havin過濾永遠是放在group後面,所以就有了這么個順序.如果不遵循順序,就會出現錯誤。
㈣ 3-5 在SQL視圖中是否可以一次執行多條SQL語句(命令)
有時我們需要一次性執行多條sql語句,而用來更新的sql是根據實際情況用代碼拼出來的
解決方案是把sql拼成下面這種形式:
begin
update TB_VG set seq = 1, vessel_id = 'Jin14', vessel_type = 'TRACK' where batch_number = '20837' and train_id = '0233086';
update TB_VG set seq = 2, vessel_id = 'Jin14', vessel_type = 'TRACK' where batch_number = '20992' and train_id = '0233110';
end;
㈤ 向sql 資料庫中增加多條數據,用sql命令怎麼寫急!急!急!
insert into 表名(列名1,列名2)
select 值1,值2
union all
select 值1,值2 union all
select 值1,值2
㈥ 資料庫SQL簡單指令
(1)插操作:把數據插入到資料庫中指定的位置上去,如Append
是在資料庫文件的末尾添加記錄,而INSERT是在指定記錄前添加記錄。
(2)刪操作:刪除資料庫中不必再繼續保留的一組記錄,如DELETE
對資料庫中記錄作刪除標志。PACK是將標有刪除標志的記錄徹底清除掉。ZAP
是去掉資料庫文件的所有記錄。
(3)改操作:修改記錄或資料庫模式,或在原有數據的基礎上,
產生新的關系模式和記錄,如連接Join操作和投影操作Projection.
(4)排序操作:改變物理存儲的排列方式。如SORT命令按指定關鍵字串把DBF文件中記錄排序。從物理存儲的觀點看,資料庫發生了變化,但從邏輯的觀點(或集合論觀點看),新的關系與排序前是等價的。
(5)檢索操作:從資料庫中檢索出滿足條件的數據,它可以是一個數據項,
一個記錄或一組記錄。如BROWSE單元實現對數據的瀏覽操作。SELECT選出滿足一定條件和范圍的記錄。
㈦ sql的各種命令,便於記
select
*
from
table1
;
select就是查詢*代表表的所有屬性,from就是從的意思,table1就是你要查詢的表名,多簡單
insert
into
table1
values('','','')
;這是往一個表裡插值,不過values()里的值要與資料庫里的表的屬性對應
別的我就不寫了,其實很簡單的
㈧ 包含多條刪除指令的sql命令中途失敗後的結果是什麼
sql中的事務的要求是全部執行完成才會提交,如果有一個錯誤就全部回滾
答案是D:表裡的行都沒被刪除
㈨ Oracle怎麼設置同時執行多條SQL語句
多個線程發過去,才能多條語句並發執行。單線程向OR伺服器發SQL指令的話,就應該是按順序進行,否則很多SQL的執行都會亂套,比如還沒建立表就開始追加數據什麼的。
也就是說,要並發執行SQL語句,請使用多個客戶端向伺服器發送SQL指令,或單個客戶端中多線程向伺服器發送SQL指令。也可以用定時事務來做到多個SQL並發執行。