資料庫基礎語句
A. 求資料庫常用語句。。。最好有解析的。
1、說明:創建資料庫 Create DATABASE database-name 2、說明:刪除資料庫 drop database dbname 3、說明:備份sql server --- 創建 備份數據的 device USE master EXEC sp_admpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- 開始 備份 BACKUP DATABASE pubs TO testBack 4、說明:創建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根據已有的表創建新表: A:create table tab_new like tab_old (使用舊表創建新表) B:create table tab_new as select col1,col2… from tab_old definition only 5、說明:刪除新表 drop table tabname 6、說明:增加一個列 Alter table tabname add column col type 註:列增加後將不能刪除。DB2中列加上後數據類型也不能改變,唯一能改變的是增加varchar類型的長度。 7、說明:添加主鍵: Alter table tabname add primary key(col) 說明:刪除主鍵: Alter table tabname drop primary key(col) 8、說明:創建索引:create [unique] index idxname on tabname(col….) 刪除索引:drop index idxname on tabname 註:索引是不可更改的,想更改必須刪除重新建。 9、說明:創建視圖:create view viewname as select statement 刪除視圖:drop view viewname 10、說明:幾個簡單的基本的sql語句 選擇:select * from table1 where 范圍 插入:insert into table1(field1,field2) values(value1,value2) 刪除:delete from table1 where 范圍 更新:update table1 set field1=value1 where 范圍 查找:select * from table1 where field1 like 』%value1%』 (所有包含『value1』這個模式的字元串)---like的語法很精妙,查資料! 排序:select * from table1 order by field1,field2 [desc] 總數:select count as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1[separator] 11、說明:幾個高級查詢運算詞 A: UNION 運算符 UNION 運算符通過組合其他兩個結果表(例如 TABLE1 和 TABLE2)並消去表中任何重復行而派生出一個結果表。當 ALL 隨 UNION 一起使用時(即 UNION ALL),不消除重復行。兩種情況下,派生表的每一行不是來自 TABLE1 就是來自 TABLE2。 B: EXCEPT 運算符 EXCEPT 運算符通過包括所有在 TABLE1 中但不在 TABLE2 中的行並消除所有重復行而派生出一個結果表。當 ALL 隨 EXCEPT 一起使用時 (EXCEPT ALL),不消除重復行。 C: INTERSECT 運算符 INTERSECT 運算符通過只包括 TABLE1 和 TABLE2 中都有的行並消除所有重復行而派生出一個結果表。當 ALL 隨 INTERSECT 一起使用時 (INTERSECT ALL),不消除重復行。 註:使用運算詞的幾個查詢結果行必須是一致的。 12、說明:使用外連接 A、left outer join: 左外連接(左連接):結果集幾包括連接表的匹配行,也包括左連接表的所有行。 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 B:right outer join: 右外連接(右連接):結果集既包括連接表的匹配連接行,也包括右連接表的所有行。 C:full outer join: 全外連接:不僅包括符號連接表的匹配行,還包括兩個連接表中的所有記錄。 select語句:[()表示空格 以下表的名稱以 表1 為例] 1,select * from 表的名稱[表1] 意思是:從表1中查詢它的全部內容。 其中:*表示全部內容。如果不查詢表1中的全部內容,那麼查詢什麼就把什麼發在*的位置上。例如: select name from 表1 其中的name就是要查詢的一項內容。 如果要查詢的內容是多項那麼用逗號隔開,例如: select name,age from 表1 2,select top 一個數字 * from 表1 意思是:從表1中查詢前 X 項的全部內容。 *可以用表1中的內容表示。意思是:從表1中查詢前 X 項某一項的內容。而不是全部內容。 3,select * from 表1 where 表中某一項滿足的條件。例如: Select * from 表1 where submit_date<#2003-11-1#意思是: 從表1中查詢滿足sumit_date在2003-11-1之前的全部內容。 select * from 表1 where 表中某一項滿足的條件 and 另一項內容滿足的條件。例如: Select * from 表1 where submit_date<#2003-11-1# and real_name=「建波」 。意思是: 從表1中查詢滿足sumit_date在2003-11-1之前和real_name="建波"的全部內容 4,select * from 表1 where 表1中某一項滿足的條件 like "*關鍵字*"。例如: select * form 表1 where real_name like "*勇*"。意思是: 從表1中查詢real_name中有 關鍵字 「勇」的全部內容。 5,select * from 表1 order by order 某一項內容 升降順序。例如: Select * from 表1 order by real_name asc 升序排列 Select * from 表1 order by real_name desc 降序排列 意思是 從表1中按照 real_name 的升降順序查詢 6,Select * from 表1 order by real_name desc,submit_date asc 如果有按多個欄位排序,中間用逗號隔開 7,查詢滿足條件的記錄的總數 select count (*) as total from 表1 where 某一項內容滿足的條件 (計數) (總數) Select count (*) as total from 表1 where submit_date<#2003-11-1#。意思是: 從表1中查詢滿足sumit_date在2003-11-1之前的總數 8,select sum (某一項) as total 某一項,average(某一項) as average 某一項 from 表1 group by class。例如: Select sum (grade) as total_grade,average(grade) as average_grade from 表1 group by class。意思是: 從表1中查詢這個班 grade 的總數 和 這個班 grade 的平均數 Insert語句 主要的功能是向資料庫添加新的信息 語法是:insert into 表1 (欄位1,欄位2,……) value (欄位1德值,欄位2的值,……) 例如: (1)插入user_name欄位: Insert into users(user_name)values("wuyuan") (2)只插入user_name和real_name欄位 Insert into users (user_name,real_name) values("yuan","遠志") 說明:user_name 是主鍵,必須插入值,而且還不能跟原來的用戶名 重復。 (3)只插入user_name 和 submit_date 欄位 insert into users (user_name,submit_date) value ("yuan",#2007-01-01#) (4)假如在users表中增加一個年齡欄位age,為數字類型,則為:insert into users (user_name,age) value ("yuan",23) (5)在users表中增加一條完整的記錄: insert into users (user_name,password,real_name,tel,email,submit-date) value("yuan","2468912340","遠 志","15001016610","[email protected]",#2007-01-02#) Delete 語句 作用是:可以刪去表中無用德記錄 語法:delete from 表1 [where 條件] 說明:1,where 條件與select中的用法是一樣的,凡是符合條件的記錄都會被刪除,如果沒有符合條件的記錄則不刪除. 2,如果省略where條件,將刪除所有數據。 下面是常用的例子: (1)刪除user_name為"yuan"的用戶 delete from 表1 where user_name="yuan" (2)刪除2003年1月1日前注冊,並real_name為 "李亞" 的用戶 Delete from 表1 where submit_date<#2003-01-01# and real_name="李亞" (3)刪除表中所有的數據 Delete from 表1 Update 語句 在實際生活中,數據信息在不斷變化,例如用戶表中,電話可能會經常變化,在這個時候就可以使用update語句來實現更新數據的功能。 語法:update 資料庫名 set 欄位1=欄位值1,欄位2=欄位2,……[where 條件] 例如(1)修改user_name為 "yuan" 的用戶的電話和e-mail地址。 update 表1 set tel="15001016610",e-mail="[email protected]" where user_name="yuan" (2)將所有2003年一月一日前注冊日期統一更改為2003年一月一日。 update users set submit_date=#2003-01-01# where submit_date<#2003-01-01# (3)假如有年齡欄位age,將所有的人的年齡增加10歲 update 表1 set age=age+10這些都是常用的,找你有用的慢慢看哈
B. SQL資料庫語句大全
1、說明:創建資料庫
CREATE DATABASE database-name
2、說明:刪除資料庫
drop database dbname
3、說明:備份sql server
--- 創建 備份數據的 device
USE master
EXEC sp_admpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'
--- 開始 備份
BACKUP DATABASE pubs TO testBack
4、說明:創建新表
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
根據已有的表創建新表:
A:create table tab_new like tab_old (使用舊表創建新表)
B:create table tab_new as select col1,col2… from tab_old definition only
5、說明:刪除新表
drop table tabname
6、說明:增加一個列
Alter table tabname add column col type
註:列增加後將不能刪除。DB2中列加上後數據類型也不能改變,唯一能改變的是增加varchar類型的長度。
7、說明:添加主鍵: Alter table tabname add primary key(col)
說明:刪除主鍵: Alter table tabname drop primary key(col)
8、說明:創建索引:create [unique] index idxname on tabname(col….)
刪除索引:drop index idxname
註:索引是不可更改的,想更改必須刪除重新建。
9、說明:創建視圖:create view viewname as select statement
刪除視圖:drop view viewname
10、說明:幾個簡單的基本的sql語句
選擇:select * from table1 where 范圍
插入:insert into table1(field1,field2) values(value1,value2)
刪除:delete from table1 where 范圍
更新:update table1 set field1=value1 where 范圍
查找:select * from table1 where field1 like 』%value1%』 ---like的語法很精妙,查資料!
排序:select * from table1 order by field1,field2 [desc]
總數:select count as totalcount from table1
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1) as avgvalue from table1
最大:select max(field1) as maxvalue from table1
最小:select min(field1) as minvalue from table1
11、說明:幾個高級查詢運算詞
A: UNION 運算符
UNION 運算符通過組合其他兩個結果表(例如 TABLE1 和 TABLE2)並消去表中任何重復行而派生出一個結果表。當 ALL 隨 UNION 一起使用時(即 UNION ALL),不消除重復行。兩種情況下,派生表的每一行不是來自 TABLE1 就是來自 TABLE2。
B: EXCEPT 運算符
EXCEPT運算符通過包括所有在 TABLE1 中但不在 TABLE2 中的行並消除所有重復行而派生出一個結果表。當 ALL 隨 EXCEPT 一起使用時 (EXCEPT ALL),不消除重復行。
C: INTERSECT 運算符
INTERSECT運算符通過只包括 TABLE1 和 TABLE2 中都有的行並消除所有重復行而派生出一個結果表。當 ALL隨 INTERSECT 一起使用時 (INTERSECT ALL),不消除重復行。
註:使用運算詞的幾個查詢結果行必須是一致的。
12、說明:使用外連接
A、left (outer) join:
左外連接(左連接):結果集幾包括連接表的匹配行,也包括左連接表的所有行。
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
B:right (outer) join:
右外連接(右連接):結果集既包括連接表的匹配連接行,也包括右連接表的所有行。
C:full/cross (outer) join:
全外連接:不僅包括符號連接表的匹配行,還包括兩個連接表中的所有記錄。
12、分組:Group by:
一張表,一旦分組 完成後,查詢後只能得到組相關的信息。
組相關的信息:(統計信息) count,sum,max,min,avg 分組的標准)
在SQLServer中分組時:不能以text,ntext,image類型的欄位作為分組依據
在selecte統計函數中的欄位,不能和普通的欄位放在一起;
13、對資料庫進行操作:
分離資料庫: sp_detach_db;附加資料庫:sp_attach_db 後接表明,附加需要完整的路徑名
14.如何修改資料庫的名稱:
sp_renamedb 'old_name', 'new_name'
C. 資料庫中常用的sql語句有哪些
1.檢索數據
SELECT prod_nameFROM Procts;
#檢索單列
SELECT prod_id, prod_name, prod_priceFROMProcts;
#檢索多列
SELECT * FROM Procts;
#檢索所有列
SELECT DISTINCTvend_id FROMProcts;
#檢索不同的值
SELECTprod_name FROM Procts LIMIT 5;
#返回不超過5行數據
SELECTprod_name FROM Procts LIMIT 5 OFFSET 5;
#返回從第5行起的5行數據。LIMIT指定返回的行數,LIMIT帶的OFFSET指定從哪兒開始。
2.排序檢索數據
SELECTprod_name
FROMProcts
ORDER BYprod_name;
#排序數據
SELECT prod_id, prod_price, prod_name
FROMProcts
ORDER BY prod_price, prod_name;
#按多個列排序
SELECT prod_id, prod_price, prod_name
FROMProcts
ORDER BY 2, 3;
#按列位置排序,第三行表示先按prod_price, 再按prod_name進行排序
SELECT prod_id, prod_price, prod_name
FROMProcts
ORDER BY prod_priceDESC, prod_name;
#prod_price列以降序排序,而prod_name列(在每個價格內)仍然按標準的升序排序
3.過濾數據
SELECT prod_name, prod_price
FROMProcts
WHERE prod_price< 10;
#檢查單個值
SELECT prod_name, prod_price
FROMProcts
WHERE vend_id <> 『DLL01』;
#不匹配檢查
SELECT prod_name, prod_price
FROMProcts
WHERE prod_priceBETWEEN 5 AND 10;
#范圍值檢查
SELECT cust_name
FROMCUSTOMERS
WHERE cust_emailIS NULL;
#空值檢查
4.高級數據過濾
SELECTprod_id, prod_price, prod_name
FROMProcts
WHERE vend_id = 『DLL01』ANDprod_price <= 4;
#AND操作符
SELECTprod_name, prod_price
FROMProcts
WHEREvend_id=』DLL01』 OR vend_id=』BRS01』;
#OR操作符
SELECTprod_name, prod_price
FROMProcts
WHERE (vend_id = 』DLL01』ORvend_id=』BRS01』)
ANDprod_price >= 10;
#求值順序 AND的優先順序高於OR
SELECTprod_name, prod_price
FROMProcts
WHERE vend_idIN (『DLL01』,』BRS01』)
ORDER BY prod_name;
#IN操作符
SELECT prod_name
FROMProcts
WHERE NOTvend_id = 『DLL01』
ORDER BY prod_name;
#NOT 操作符
SELECT prod_name
FROMProcts
WHEREvend_id <> 『DLL01』
ORDER BY prod_name;
#NOT 操作符
D. 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 數據表
E. 資料庫四大SQL語句的基本語法是怎麼寫的啊 在線等哈~ 謝謝那位大神幫幫忙!
一、增(INSERT向資料庫插入一條記錄)
INSERT INTO 表名(列名1,列名2,列名3……)VALUES('值1,'值2','值3'……)
例子:
INSERT INTO muser(id,name,pwd)
VALUES('1','admin','admin')
注意:列的個數必須和VALUES子句中給出的值的個數相同;數據類型必須和類的數據類型對應。
二、刪(DELETE從表中刪除數據)
DELETE語句用來刪除數據,可以一次刪除一行,也可以刪除多行。
DELETE語句的基本語法:
DELETE FROM 表名 WHERE 條件
例子:
DELETE FROM muser WHERE id='1' and pwd='admin'
三、改(UPDATE修改表中的數據)
UPDATE語句用來修改已經存在的數據,UPDATE可影響一行也可以影響多行,甚至可以修改全部的數據。
UPDATE語句的基本語法:
UPDATE 表名 SET
列名='需要修改成為的數據'
WHERE 修改條件
例子:
UPDATE muser SET
pwd='admin888'
WHERE name='admin' AND pwd='admin'
四、查(使用SELECT查詢資料庫)
SELECT語句主要用來檢索數據
SELECT語句的基本語法:
SELECT 列名
FROM 表名
WHERE 檢索的條件
例子:
SELECT * FROM news WHERE class='國內新聞'
在列名中使用(*)表示從FROM表中指定的返回所有列。
F. 資料庫基本sql語句 請幫助
1,select sno,score from sc where cno='C1'
2,select a.sno,a.sname,b.cno,c.cname,c.score
from s as a left outer join sc as c
on a.sno=c.sno left outer join c as b
on c.cno=b.cno
3.select average(score) from sc where SNO='s1'
4.delete from c where cno='c1'
5.select b.cname,a.score
from c as b left outer join sc as a
on b.cno=a.cno
where a.sno='s7'
6.update sc set score=score+5 where sno='s2'
7.select a.sno,a.score
from sc as a left outer join c as b
on a.cno=b.cno
where b.cname='c2'
8.update sc
set score = score + 6
where sc.cno = (select cno from c where c.cname = 'C1')
我沒有上機試,可能會有小問題,不過也應該不難了,估計你看下也就會了。
G. 資料庫得一些常用語句及其使用方法
--數據操作
SELECT
--從資料庫表中檢索數據行和列
INSERT
--向資料庫表添加新數據行
DELETE
--從資料庫表中刪除數據行
UPDATE
--更新資料庫表中的數據
--數據定義
CREATE
TABLE
--創建一個資料庫表
DROP
TABLE
--從資料庫中刪除表
ALTER
TABLE
--修改資料庫表結構
CREATE
VIEW
--創建一個視圖
DROP
VIEW
--從資料庫中刪除視圖
CREATE
INDEX
--為資料庫表創建一個索引
DROP
INDEX
--從資料庫中刪除索引
CREATE
PROCEDURE
--創建一個存儲過程
DROP
PROCEDURE
--從資料庫中刪除存儲過程
CREATE
TRIGGER
--創建一個觸發器
DROP
TRIGGER
--從資料庫中刪除觸發器
CREATE
SCHEMA
--向資料庫添加一個新模式
DROP
SCHEMA
--從資料庫中刪除一個模式
CREATE
DOMAIN
--創建一個數據值域
ALTER
DOMAIN
--改變域定義
DROP
DOMAIN
--從資料庫中刪除一個域
--數據控制
GRANT
--授予用戶訪問許可權
DENY
--拒絕用戶訪問
REVOKE
--解除用戶訪問許可權
--事務控制
COMMIT
--結束當前事務
ROLLBACK
--中止當前事務
SET
TRANSACTION
--定義當前事務數據訪問特徵
--程序化SQL
DECLARE
--為查詢設定游標
EXPLAN
--為查詢描述數據訪問計劃
OPEN
--檢索查詢結果打開一個游標
FETCH
--檢索一行查詢結果
CLOSE
--關閉游標
PREPARE
--為動態執行准備SQL
語句
EXECUTE
--動態地執行SQL
語句
DESCRIBE
--描述准備好的查詢
---局部變數
declare
@id
char(10)
--set
@id
=
'10010001'
select
@id
=
'10010001'
---全局變數
---必須以@@開頭
H. 資料庫基礎知識 sql server,寫出語句
最簡單的語句如下:
USE master
GO
CREATE DATABASE 資料庫名
ON
( NAME = prods_dat,
FILENAME = 'c:\program files\microsoft sql server\mssql\data\資料庫名.mdf',
SIZE = 4,
MAXSIZE = 10,
FILEGROWTH = 1 )
GO
I. 資料庫基礎-SQL查詢語句8條,幫忙寫下。
1.插詢每個部門的最高的月工資和部門編號
查詢最高月工資,還要查詢最高部門編號?
查詢最高月工資的:select deptno,isnull(max(salary),0) as max_salary from emp group by deptno
2.查詢員工姓名、員工所在部門名稱、員工工資(使用等值連接)
select * from dept,emp where dept.deptno=emp.deptno
3.查詢員工姓名、員工所在部門名稱、員工工資(使用左連接)
select * from emp left join dept dept.deptno=emp.deptno
4.查詢「開發部」的員工姓名和月工資
select * from emp left join dept dept.deptno=emp.deptno
where dept.dname = '開發部'
5.查詢所有的員工姓名、工資和領導姓名、工資
員工 同第二題, 領導的加個條件 where mgr=1
6.查詢男女員工的人數
select emp.esex,count(*) as '人數' from emp group by emp.esex
7. 如你所說
8.創建一個新表newemp,取自emp表的empno,ename,deptno,salary
select empno,ename,deptno,salary into newemp from emp