SELECT ename, LOWER(ename) FROM emp;
SELECT ename, UPPER(ename) FROM emp;
複製代碼
SELECT ename, SUBSTR(ename,1,2) FROM emp;
複製代碼
SELECT ROUND(3.54159) FROM dual;
SELECT ROUND(3.14159,3) FROM dual;
複製代碼
SELECT TO_CHAR(SYSDATE, 'yyyy-MM-dd HH:mi:ss') FROM dual;
SELECT TO_CHAR(SYSDATE, 'yyyy-MM-dd HH24:mi:ss') FROM dual;
複製代碼
SELECT TO_CHAR(sal, '99,999.9999') FROM emp;
複製代碼
SELECT TO_DATE('2019-06-11 15:08:00','yyyy-MM-dd HH24:mi:ss') FROM dual;
複製代碼
SELECT ename, NVL(comm,0) FROM emp;
複製代碼
left join
,返回左表中全部的數據和右表中知足條件的數據right join
,返回右表中全部的數據和左表中知足條件的數據inner join
,返回左表和右表同時知足條件的數據在MySQL分頁LIMIT,在ORACLE不支持LIMIT,引入ROWNUM僞列 如:查詢某表前5條數據sql
SELECT * FROM 表名 WHERE ROWNUM <=5;
複製代碼
可是ROWNUM不支持> >= =
,故須要使用子查詢實現查詢。 如:數據庫
SELECT ename, deptno
FROM (SELECT ename, deptno, rownum AS rn FROM emp) t
WHERE t.rn > 10
複製代碼
視圖就當作一張虛標,數據來源於真實的表。函數
建立視圖語法:ui
CREATE VIEW 視圖名
AS SQL語句;
複製代碼
視圖須要建立視圖權限,登錄管理員帳號執行受權命令spa
GRANT CREATE TABLE, CREATE VIEW TO scott;
複製代碼
表、索引、視圖等信息儲存在ORACLE數據庫的表中,這些表稱爲數據字典。code
auto_increment
auto_increment
實現自增加原理對象
獲取當前的id,自增1 id++,做爲下一條數據的id插入。 id爲主鍵,id實現自增加。索引
建立序列語法:rem
CREATE SEQUENCE 序列名;
複製代碼
序列自己是一個對象,有兩個屬性。每次調用nextval,會自增加1個string
例子: 建表
CREATE TABLE weibo(
id NUMBER PRIMARY KEY,
user_id VARCHAR2(20),
content VARCHAR2(1024),
count NUMBER
);
複製代碼
建序列
CREATE SEQUENCE seq_weibo;
複製代碼
懟數據
INSERT INTO weibo(id, user_id, content, count)
VALUES (seq_weibo.nextval, 'admin', '21213131ea', 1);
INSERT INTO weibo(id, user_id, content, count)
VALUES (seq_weibo.nextval, 'admin', '21213131ea', 1);
複製代碼
觀察id,每次調用nextval
會自增加1個。
SELECT * FROM weibo;
複製代碼
目的:爲了加快查詢效率
建立主鍵時,會默認建立一個主鍵的索引。查詢索引字段效率高,非索引字段默認全表掃描。
CREATE INDEX 索引名
ON 表名(字段名)
複製代碼
例:
CREATE INDEX index_user_gameid
ON t_user_fee(gameid);
複製代碼
CREATE INDEX 索引名
ON 表名(字段1, 字段2, ...)
複製代碼
例:
CREATE INDEX index_user_gameid_msisdn
ON t_user_fee(msisdn, gameid);
複製代碼
注意: 一旦給索引的字段添加了函數,則該索引失效。