第一篇:利用execute方法執行SQL語句
一,利用execute方法執行SQL語句
第一步:建立Connection對象set conn = Server.CreateObject(“ADODB.Connection”)第二步:使用Connection對象的Open方法建立數據庫連接
conn.Open(“driver={Microsoft Access Driver(*.mdb)};dbq=” Server.MapPath(“person.mdb”))&_
'第三步:使用Connection對象的Execute方法執行SQL語句
如果執行查詢語句
set rs = conn.Execute(“數據查詢語句”)
如果執行數據操縱語句 conn.Execute(“數據操縱語句”)使用RecordSet對象打開數據庫二,利用Command對象的Execute方法立RecordSet對象
第一步:建立Connection對象
set conn = Server.CreateObject(“ADODB.Connection”)'
第二步:使用Connection對象的Open方法
建立數據庫鏈接 conn.Open(“driver={Microsoft Access Driver(*.mdb)};dbq=” &_ Server.MapPath(“Access數據庫”))
第三步:建立RecordSet對象
setrs = Server.CreateObject(“ADODB.Recordset”)
第四步:利用RecordSet對象的Open方法打開數據庫方法打開數據庫 rs.Open “SQL語句”, conn, 打開方式,鎖定類型
Command對象提供的方法
第二篇:執行多條SQL語句
執行多條SQL語句
使用mysqli一次執行多條SQL語句
$mysqli=new MySQLi(“localhost”,“root”,“",”xiaoqiangdb“);
/*==========================沒有結果集:insert update delete==========================*/
$sqls=”insert into shops(name,price,num,desn)values('book1','12.16','5','good');“;
$sqls.=”updated shops set name='testname' where id>50;“;
$sqls.=”delete from shops where id < 20“;
if($mysqli->multi_query($sqls)){
echo ”多條語句執行成功!
“;
echo ”最后插入的ID:“.$mysqli->insert_id.”
“;
//echo ”影響的行數:“.$mysqli->affected_rows;//不準確!
}else{
echo ”ERROR“.$mysqli->errno.”---“.$mysqli->error;
}
/*==========================有結果集:select==========================*/$sqls=”select current_user();“;
$sqls.=”desc shops;“;
$sqls.=”select * fron shops“;
if($mysqli->multi_query($sqls)){
echo ”多條語句執行成功!
“;
do{
$result=$mysqli->store_result();//獲取結果集
echo '
'.$field->name.' | ';
---|
'.$col.' | ';
if($mysqli->more_results()){//判斷還有沒有結果集echo ”
“;
}
}while($mysqli->next_result());//取得下一個結果集}else{
echo ”ERROR“.$mysqli->errno.”---".$mysqli->error;}
$mysqli->close();
?>
第三篇:SQL語句的優化方法
SQL語句的優化方法
1.1注釋使用
在語句中多寫注釋,注釋不影響SQL語句的執行效率。增加代碼的可讀性。
1.2對于事務的使用
盡量使事務處理達到最短,如果事務太長最好按功能將事務分開執行(如:可以讓用戶在界面上多幾步操作)。事務太長很容易造成數據庫阻塞,用戶操作速度變慢或死機情況。
1.3對于與數據庫的交互
盡量減少與數據庫的交互次數。如果在前端程序寫有循球訪問數據庫操作,最好寫成將數據一次讀到前端再進行處理或者寫成存儲過程在數據庫端直接處理。
1.4對于SELECT *這樣的語句,不要使用SELECT *這樣的語句,而應該使用SELECT table1.column1這樣的語句,明確指出要查詢的列減少數據的通訊量并且這樣的代碼可讀性好,便于維護。
1.5盡量避免使用游標
它占用大量的資源。如果需要row-by-row地執行,盡量采用非光標技術,如:在客戶端循環,用臨時表,Table變量,用子查詢,用Case語句等等。如果使用了游標,就要盡量避免在游標循環中再進行表連接的操作。
1.6盡量使用count(1)
count函數只有在統計表中所有行數時使用,而且count(1)比count(*)更有效率。
1.7IN和EXISTS
EXISTS要遠比IN的效率高。里面關系到full table scan和range scan。幾乎將所有的IN操作符子查詢改寫為使用EXISTS的子查詢。
1.8注意表之間連接的數據類型
避免不同類型數據之間的連接。
1.9盡量少用視圖
對視圖操作比直接對表操作慢,可以用stored procedure來代替她。特別的是不要用視圖嵌套,嵌套視圖增加了尋找原始資料的難度。我們看視圖的本質:它是存放在服務器上的被優化好了的已經產生了查詢規劃的SQL。對單個表檢索數據時,不要使用指向多個表的視圖,直接從表檢索或者僅僅包含這個表的視圖上讀,否則增加了不必要的開銷,查詢受到干擾。
1.10沒有必要時不要用DISTINCT和ORDER BY
這些動作可以改在客戶端執行,它們增加了額外的開銷。
1.11避免相關子查詢
一個列的標簽同時在主查詢和where子句中的查詢中出現,那么很可能當主查詢中的列值改變之后,子查詢必須重新查詢一次。查詢嵌套層次越多,效率越低,因此應當盡量避免子查詢。如果子查詢不可避免,那么要在子查詢中過濾掉盡可能多的行。
1.1注意UNion和`UNion all 的區別
UNION all執行效率高。
1.1外鍵關聯的列應該建立索引
(如子表id)主子表單據肯定要建視圖,2個表的關聯以2個表中的MainID為關系,所以,需要給子表的MainID單獨建索引,這將很大地提高視圖的速度。例如Gy_InOutSub中的InoutMainid增加索引。
第四篇:sql常用語句
//創建臨時表空間
create temporary tablespace test_temp
tempfile 'E:oracleproduct10.2.0oradatatestservertest_temp01.dbf'size 32m
autoextend on
next 32m maxsize 2048m
extent management local;
//創建數據表空間
create tablespace test_data
logging
datafile 'E:oracleproduct10.2.0oradatatestservertest_data01.dbf'size 32m
autoextend on
next 32m maxsize 2048m
extent management local;
//創建用戶并指定表空間
create user username identified by password
default tablespace test_data
temporary tablespace test_temp;
//給用戶授予權限
//一般用戶
grant connect,resource to username;
//系統權限
grant connect,dba,resource to username
//創建用戶
create user user01 identified by u01
//建表
create table test7272(id number(10),name varchar2(20),age number(4),joindate date default sysdate,primary key(id));
//存儲過程
//數據庫連接池
數據庫連接池負責分配、管理和釋放數據庫連接
//
//創建表空間
create tablespace thirdspace
datafile 'C:/Program Files/Oracle/thirdspace.dbf' size 10mautoextend on;
//創建用戶
create user binbin
identified by binbin
default tablespace firstspace
temporary tablespace temp;
//賦予權限
GRANT CONNECT, SYSDBA, RESOURCE to binbin
//null與""的區別
簡單點說null表示還沒new出對象,就是還沒開辟空間
個對象裝的是空字符串。
//建視圖
create view viewname
as
sql
//建索引
create index indexname on tablename(columnname)
//在表中增加一列
alter table tablename add columnname columntype
//刪除一列
alter table tablename drop columnname
//刪除表格內容,表格結構不變
truncate table tableneme
//新增數據
insert into tablename()values()
//直接新增多條數據
insert into tablename()
selecte a,b,c
from tableabc
//更新數據 new除了對象,但是這“”表示
update tablename set columnname=? where
//刪除數據
delete from tablename
where
//union語句
sql
union
sql
//case
case
when then
else
end
第五篇:SQL語句
SQL練習
一、設有如下的關系模式,試用SQL語句完成以下操作:
學生(學號,姓名,性別,年齡,所在系)
課程(課程號,課程名,學分,學期,學時)
選課(學號,課程號,成績)
1. 求選修了課程號為“C2”課的學生學號
2. 求選修了課程號為“C2”課的學生學號和姓名
3. 求沒有選修課程號為“C2”課的學生學號
4. 求選修了課程號為“C2”,又選修了課程號為“C3”課的學生學號
5.求選修了課程號為“C2”或“C3”課的學生學號
6.求選修了全部課程的學生學號
7.求至少選修了學號為“98002”的學生所學過的所有課程的學生的學號和姓名。
8.查詢學生選課表中的全部數據
9.查詢計算機系學生的姓名、年齡
10.查詢成績在70—80分之間的學生的學號、課程號和成績
11.查詢計算機系年齡在18—20之間且性別為“男”的學生的姓名和年齡
12.查詢成績在80分以上的學生的姓名、課程號和成績,并按成績的降序排列結果。
13.查詢哪些課程沒有人選修,要求列出課程號和課程名。
14.查詢數學系成績在80分以上的學生的學號,姓名
15.查詢課程號為“C02”的課程的最高分數。
16.查詢計算機系學生的最大年齡和最小年齡。
17.統計每個系的學生人數。
18.統計每門課程的選課人數和考試最高分。
19.統計每個學生的選課門數和考試總成績,并按選課門數的升序顯示結果。
20.查詢總成績超過200分的學生,要求列出學號、總成績。
21.用子查詢實現如下查詢:
(1)查詢選修了課程號“C01”的學生的姓名和所在系。
(2)查詢數學系成績在80分以上的學生的學號和姓名。
(3)查詢計算機系考試成績最高的學生的姓名。
22.刪除選課成績小于60分的學生的選課記錄。
23.將所有選修了課程“C01”的學生的成績加10分。
24.將計算機系所有選修了課程“計算機文化基礎”課程的學生的成績加10分。
25.創建查詢學生的學號、姓名、所在系、課程號、課程名、課程學分的視圖。
26.創建查詢每個學生的平均成績的視圖,要求列出學生學號和平均成績。
27.創建查詢每個學生的選課學分的視圖,要求列出學生學號及總學分。