20200224
1、ORDER BY 關(guān)鍵字用于對(duì)結(jié)果集進(jìn)行排序
SELECT column1_name,column2_name FROM table_name
ORDER BY column1_name,column2_name ASC|DESC;
優(yōu)先按照列名1進(jìn)行排序,再按照列名2進(jìn)行排序
列名可以不用寫,寫數(shù)字 可代表按照第幾列進(jìn)行排序,并采用默認(rèn)的顯示順序排列
默認(rèn)按照ASC升序排列
2、INSERT INTO 語句用于向表中插入新記錄
不需要插入的值,可命名為null或''
某些列必須輸入值才可進(jìn)行操作
第一種形式無需指定要插入數(shù)據(jù)的列名,只需提供被插入的值,但值的數(shù)量需和列名保持一致
INSERT INTO table_name
VALUES (value1,value2,value3,...);
第二種形式需要指定列名及被插入的值:
INSERT INTO table_name(column1,column2,column3,...)
VALUES (value1,value2,value3,...);
3、列別名
select ename as 姓名 from emp; ? 或者 ? ? select ename 姓名 from emp;
如果列別名含有特殊符號(hào)(如空格、¥、+等),則需將此列別名用雙引號(hào)標(biāo)上
4、空值
空值不能進(jìn)行運(yùn)算,null進(jìn)行任何運(yùn)算的算式都等于空值
如果空值要參與運(yùn)算,則需要將空值進(jìn)行轉(zhuǎn)換
nvl(可能產(chǎn)生空值的列,指定值),如下所示 是將comm列中的空值都轉(zhuǎn)換為100000

5、Like模糊查詢
%:代表任意數(shù)量的任意字符
_:代表任意一個(gè)字符
select * from emp where ename like '_A%';查詢姓名中第二個(gè)字母為A的員工信息
6、UPDATE 語句 更新表中已存在的記錄
Update emp Set ename='SMITH' Where empno=7369;
7、DELETE 語句用于刪除表中的行
DELETE FROM table_name WHERE some_column=some_value;
可以在不刪除表的情況下,刪除表中所有的行,同時(shí)表結(jié)構(gòu)、屬性、索引將保持不變
DELETE FROM table_name;
或DELETE * FROM table_name;
8、SQL SELECT TOP 子句
SELECT TOP 子句用于規(guī)定要返回的記錄的數(shù)目
Select * From emp Where Rownum <=5; ?? 從 "emp" 表中選取前5條記錄
9、SQL通配符
%:替代0個(gè)或多個(gè)字符;
_:替代一個(gè)字符;
[charlist]:字符列中的任何單一字符;
[^charlist]或[!charlist]:不在字符列中的任何單一字符;
10、IN操作符
IN 操作符允許在 WHERE 子句中規(guī)定多個(gè)值
select ename from emp where deptno in(10,20);
select ename from emp where deptno=10 or deptno=20;
11、BETWEEN 操作符
ETWEEN 操作符選取介于兩個(gè)值之間的數(shù)據(jù)范圍內(nèi)的值。這些值可以是數(shù)值、文本或者日期。
select * from emp where ename not between 'A' and 'F'; ?? 查詢emp表中姓名開頭不是從A到F的員工信息
select * from emp where hiredate between '01-1月-1980' and '01-1月-1981'; ?? 查詢emp表中 1980/01/01到1981/01/01期間入職的員工信息
注意:不同的數(shù)據(jù)庫中,between操作符產(chǎn)生的效果可能會(huì)不一樣,可能包含兩個(gè)邊界值也可能只包含其中一個(gè),或者都不包含,具體情況需要視工具而定,可事先進(jìn)行檢查。
12、NOT NULL 約束
在默認(rèn)的情況下,表的列接受 NULL 值
NOT NULL 約束強(qiáng)制列不接受 NULL 值。
NOT NULL 約束強(qiáng)制字段始終包含值。這意味著,如果不向字段添加值,就無法插入新記錄或者更新記錄。
create table Persons (? id int NOT NULL, LastName varchar(255) NOT NULL,FirstName varchar(255) NOT NULL, Age int); ? ?? 這個(gè)語句就強(qiáng)制 "ID" 列、 "LastName" 列以及 "FirstName" 列不接受 NULL 值
在一個(gè)已創(chuàng)建的表中添加 NOT NULL 約束? ALTER TABLE Persons MODIFY Age int NOT NULL;
在一個(gè)已創(chuàng)建的表中刪除 NOT NULL 約束 ?ALTER TABLE Persons MODIFY Age int NULL;
13、NULL值
無法使用比較運(yùn)算符=、< 或 <>等來測(cè)試null值,必須使用 IS NULL 和 IS NOT NULL 操作符
14、NULL函數(shù)
Oracle ?? nvl(可能有空值的列名,希望將null轉(zhuǎn)換成的數(shù)值)
SQL Server / MS Access ?? ISNULL(可能有空值的列名,希望將null轉(zhuǎn)換成的數(shù)值)
MySQL ? ? IFNULL(可能有空值的列名,希望將null轉(zhuǎn)換成的數(shù)值) 或者 ??COALESCE(可能有空值的列名,希望將null轉(zhuǎn)換成的數(shù)值)
作者:kerwin_chyl
文章鏈接:http://www.itdecent.cn/u/66bf7abdc5a8
本文版權(quán)歸作者和簡(jiǎn)書共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責(zé)任的權(quán)利。