一、order by 對結果集 排序。ASC:升序(默認),DESC:降序。
Select * from A order by age desc,id ASC //age降序,id升序
group by 根據必定規則對數據進行分組,將一個「數據集」劃分紅若干個「小區域」,而後針對若干個「小區域」進行數據處理。用group by all 多列分組。常和 sum,max,min ,count 等聚合函數一塊兒使用,與group by聯用的having子句是篩選知足條件的組,與where不一樣的是在分組以後過濾數據
好比一個表中,有a、b、c三種類別,每一個類別不一樣的數量,能夠用
select 類別,數量 from 表名 group by 類別
返回的結果實際就是分類彙總a、b、c三種對應的數量
select 類別,數量 from 表名 group by 類別 having 數量>20
在結果裏顯示分組數量>20的結果
CREATE TABLE Student(
ID int PRIMARY KEY,
NAME VARCHAR2(50) NOT NULL);//建表
CREATE VIEW view_name AS
Select * FROM Table_name;//建視圖
CreateUNIQUEINDEXindex_nameONTableName(col_name);//建索引
//插入
INSERT INTO tablename {字段1,字段2,字段3 …} values(值1,值2,值3 …);
insert into 目標數據表 select * from 源數據表 //把源數據表的記錄添加到目標數據表
//插入視圖
INSERT INTO Viewname {column1,column2,…} values(exp1,exp2,…);
//更新數據
update table1 SET 字段名=字段值 where 條件表達式 ;
update table1 SET 字段1=值1,字段2=值2...字段n=值n where 條件表達式;
|
//查詢
select * from tablename where 字段名=值 order by 字段名 desc
select * from tablename where 字段名 like '% 值 %'
select * from tablename where 字段名 in ('值1','值2','值3')
select * from tablename where 字段名 between 值1 and 值2
//刪除
DELETE FROM Table WHERE ...;
delete from tablename; //將數據表全部記錄刪除 注意表還在,DROP 是永久性刪除一個數據表
GRANT (Select,delete,…) ON (對象) TO USER_NAME [WITH GRANT OPTION];//受權
REVOKE (權限表) ON(對象) FROM USER_NAME [WITH REVOKE OPTION] //撤權
|
Select E.NAME, S.NAME FROM EMPLOYEE E S
WHERE E.SUPERName=S.Name //列出工做人員及其領導的名字
//列出不一樣的值 distinct
select distinct name from A //做用於單列,只有name不一樣的行被顯示
select distinct name, id from A //做用於多列,name+id都不一樣的行被顯示
//規定返回的行數 top
Select TOP 2 *FROM A //TOP n 說明返回n行
Select TOP 20 PERCENT * FROM A //;TOP n PERCENT說明返回的行數等於總行數的百分之幾
//合併或多個 SELECT 語句的結果集 UNION
select name from table_name1
UNION
select name from table_name2
select name from table_name1
UNION ALL
select name from table_name2
注意:UNION 操做符選取不一樣的值。若是容許重複的值,請使用 UNION ALL
//鏈接
經過鏈接運算符能夠實現多個表查詢。鏈接是關係數據庫模型的主要特色,也是它區別於其它類型數據庫管理系統的一個標誌。
內鏈接:等值鏈接、不等鏈接、天然鏈接
外鏈接:左外鏈接、右外鏈接、全鏈接
交叉鏈接:也稱迪卡爾積
內鏈接
//等值鏈接 在鏈接條件中使用等於號(=),結果包括重複列
select * from A,B where A.Id = B.Id
等同於
select * from A inner join B on A.Id = B.Id
//不等鏈接 >、<、<>、>=、<=、!>和!<
select * from A inner join B on A.Id <> B.Id
//天然鏈接 使用=,結果不能重複
外鏈接
//左鏈接 返回左表中的全部行,若是左表中行在右表中沒有匹配行,則結果中右表中的列返回空值
select * from A left join B on A.Id = B.Id
//右鏈接
select * from A right join B on A.Id = B.Id
//全鏈接 返回左表和右表中的全部行。當某行在另外一表中沒有匹配行,則另外一表中的列返回空值
select * from A full join B on A.Id = B.Id
交叉鏈接
//返回結果的行數等於兩個錶行數的乘積,m×n
select *from A cross join B