數據庫SQL語言學習:
目前比較常用的數據庫有:Oracle,DB2、SQL Server、Sybase、Informix、MySQL、VF、access等。下列語句有部分是Mssql數據中支持的語句 ,不能在access數據庫中使用 。
SQL分類 :
DDL—數據定義語言(CREATE,ALTER,DROP,DECLARE)
DML—數據操縱語言(SELECT,DELETE,UPDATE,INSERT)
DCL—數據控制語言(GRANT,REVOKE,COMMIT,ROLLBACK)
首先,簡要介紹基礎語句:
1、創建數據庫
CREATE DATABASE 數據庫名稱
2、刪除數據庫
drop database 數據庫名稱
3、sql server 數據庫中備份數據庫
--- 創建備份數據的磁盤設備
USE master
EXEC sp_addumpdevice 'disk', 'testBack', 'c:/mssql7
backup/MyNwind_1.dat'
--- 開始備份
BACKUP DATABASE pubs TO testBack
4、創建表
create table 表名(列名1 類型1 [not null] [PRimary
key],列名2 類型2 [not null],..)
A根據已有的表創建新表:
create table 新表名 like 舊表名 (使用舊表創建新表)
B根據已有表的某幾個列創建新表:
create table 新表名 as select col1,col2... from 舊表名 definition only
5、刪除表:
drop table 表名
6、給數據表增加一列:
Alter table 表名 add column 列名 列類型
注:列增加后將不能刪除。
DB2中列加上后數據類型也不能改變,唯一能改變的是增加varchar類型的長度。
7、添加刪除主鍵:
添加主鍵:
Alter table 表名 add primary key(列名)
刪除主鍵:
Alter table 表名drop primary key(列名)
8、創建刪除索引:
創建索引:
create [unique] index 索引名on 表名(col....)
刪除索引:
drop index 索引名
注:索引是不可更改的 ,想更改必須刪除重新建。
9、創建刪除視圖:
創建視圖:
create view 視圖名as select statement
刪除視圖:
drop view 視圖名
10、常用的基本的sql語句:
選擇:
select * from 表名 where 范圍
插入:
insert into 表名(field1,field2) values(value1,value2)
刪除:
delete from 表名where 范圍
更新:
update 表名set field1=value1 where 范圍
查找:
select * from 表名where field1 like ’%value1%’ ---like的語法很精妙,查資料!
排序:
select * from 表名order by field1,field2 [desc]
總數:
select count * as 列別名from 表名
求和:
select sum(field1) as 列別名from 表名
平均:
select avg(field1) as 列別名from 表名
最大:
select max(field1) as 列別名from 表名
最小:
select min(field1) as 列別名from 表名
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、左外連接(左連接): 結果集既包括連接表的匹配行,也包括左連接表的所有行 。
SQL語句:
select a.a, a.b, a.c, b.c, b.d, b.f from a LEF
T OUT JOIN b ON a.a = b.c
B:右外連接(右連接):結果集既包括連接表的匹配連接行,也包括右連接表的所有行 。
C:全外連接:不僅包括符號連接表的匹配行,還包括兩個連接表中的所有記錄。
13、SQL取前10條記錄
select top 10 * form 表名where 范圍
14、包括所有在TableA 中但不在TableB和TableC 中的行并消除所有重復行而派生出一個結果表:
(select a from tableA ) except (select a from table B) except (select a from tableC)
15、隨機取出10條數據
select top 10 * from 表名order by newid()
16、刪除重復記錄
Delete from 表名where id not in (select max(id) from 表名group by col1,col2,...)
17、列出數據庫里所有的表名
select name from sysobjects where type='U'
18、列出表里的所有的列
select name from syscolumns where id=object_id('TableName')
19、TRUNCATE初始化表table1
TRUNCATE TABLE table1
20、選擇從10到15的記錄
select top 5 * from (select top 15 * from table order by id asc) table_別名order by id desc
在這里告誡新人:熟練掌握SQL是你編程的一個大砝碼,在入職工作的時候,能給你帶來意想不到的財富!
新聞熱點
疑難解答