第三天20160728
--TO_CHAR(N,F):將數(shù)字類型N根據(jù)模板F轉(zhuǎn)換為字符類型的值。
SELECT TO_CHAR(2546.9974,'999999.99'),
TO_CHAR(2546.9874,'999'),
TO_CHAR(2546.9974,'000000.00'),
TO_CHAR(2546.9974,'999,999.00'),
TO_CHAR(2546.9974,'FM$999,999.00'),
TO_CHAR(2546.9974,'FML999,999.00')
FROM DUAL;
--TO_DATE(C,F):根據(jù)模板F將字符類型C轉(zhuǎn)換為日期類型
SELECT TO_DATE('1999-1-1','YYYY-MM-DD')
FROM DUAL;
SELECT TO_DATE('2016-10-1','YYYY-MM-DD') - SYSDATE
FROM DUAL;
--TO_NUMBER(C,F):根據(jù)模板F將字符類型C轉(zhuǎn)換為數(shù)字類型
SELECT TO_NUMBER('1,000.00','9,999.99')
FROM DUAL;
--通用的單行函數(shù)
--NVL():當(dāng)?shù)谝粋€參數(shù)不為NULL,返回第一個參數(shù)。當(dāng)?shù)谝粋€參數(shù)為NULL,返回第二個參數(shù)。兩個參數(shù)的類型必須一致。
SELECT LAST_NAME,NVL(TO_CHAR(COMMISSION_PCT,'FM0.00'),'沒有傭金')
FROM EMPLOYEES;
--當(dāng)算術(shù)運算中出現(xiàn)NULL時,結(jié)果一定為NULL。
--查詢employees表中所有員工的last_name,salary,commission_pct,年薪,年收入(年薪+年薪*傭金)
SELECT LAST_NAME,SALARY,COMMISSION_PCT,SALARY*12 AS 年薪,(SALARY*12) + (SALARY*12*NVL(COMMISSION_PCT,0)) AS 年收入
FROM EMPLOYEES;
--NVL2():當(dāng)?shù)谝粋€參數(shù)不為NULL,返回第二個參數(shù)。當(dāng)?shù)谝粋€參數(shù)為NULL,返回第三個參數(shù)。
SELECT LAST_NAME,NVL2(COMMISSION_PCT,'有傭金','沒有傭金')
FROM EMPLOYEES;
--CASE表達(dá)式與DECODE()函數(shù):分支選擇
--查詢employees表中所有員工的last_name,job_id,salary,新工資。當(dāng)job_id為IT_PROG時,工資增加10%。當(dāng)job_id為ST_CLERK時,工資增加15%。當(dāng)job_id為SA_REP時,工資增加20%,其它job_id工資不變。
SELECT LAST_NAME,JOB_ID,SALARY,
CASE
WHEN JOB_ID='IT_PROG' THEN SALARY*1.10
WHEN JOB_ID='ST_CLERK' THEN SALARY*1.15
WHEN JOB_ID='SA_REP' THEN SALARY*1.20
ELSE SALARY
END AS 新工資
FROM EMPLOYEES;
--只能判斷是否相等
SELECT LAST_NAME,JOB_ID,SALARY,
CASE JOB_ID
WHEN 'IT_PROG' THEN SALARY*1.10
WHEN 'ST_CLERK' THEN SALARY*1.15
WHEN 'SA_REP' THEN SALARY*1.20
ELSE SALARY
END AS 新工資
FROM EMPLOYEES;
--只能判斷是否相等
SELECT LAST_NAME,JOB_ID,SALARY,
DECODE(
JOB_ID,
'IT_PROG',SALARY*1.10,
'ST_CLERK',SALARY*1.15,
'SA_REP',SALARY*1.20,
SALARY) AS 新工資
FROM EMPLOYEES;
--表
--創(chuàng)建表
CREATE TABLE 表名(
列名 數(shù)據(jù)類型[長度] [約束],
列名 數(shù)據(jù)類型[長度] [約束],
……
列名 數(shù)據(jù)類型[長度] [約束]
);
--Oracle常用的數(shù)據(jù)類型
/*
數(shù)字類型:NUMBER
1.整數(shù):NUMBER(5),長度可以省略,如果省略長度默認(rèn)為38位的數(shù)字。
2.浮點數(shù):NUMBER(8,2),表示整個數(shù)字為8位,其中有兩位小數(shù)。
字符類型:長度不能省略
1.CHAR:保存固定長度的字符串,當(dāng)內(nèi)容長度不夠時,使用空格在內(nèi)容的右面補(bǔ)齊長度。
2.VARCHAR2:保存可變長度的字符串,不會使用空格補(bǔ)齊長度。
日期類型:不能指定長度。
DATE:日期+時間
*/
CREATE TABLE STUDENTS(
STU_ID NUMBER(5),
STU_NAME VARCHAR2(10 CHAR),
STU_SEX CHAR(1 CHAR),
STU_BIRTHDAY DATE
);
--查看表結(jié)構(gòu):DESC 表名;
/*
數(shù)據(jù)操作
一、添加數(shù)據(jù):INSERT INTO語句
1.向表中添加一行新的數(shù)據(jù),并向新行中所有的列賦值。
格式:INSERT INTO 表名 VALUES(值,值,……);
例:INSERT INTO STUDENTS VALUES(1,'Tom','男',TO_DATE('1995-1-20','YYYY-MM-DD'));
2.向表中添加一行新的數(shù)據(jù),并向新行中指定的列賦值。
格式:INSERT INTO 表名(列名,列名,……) VALUES(值,值,……);
例:INSERT INTO STUDENTS(STU_NAME,STU_ID,STU_SEX) VALUES('張三',2,'女');
3.將其它表中的數(shù)據(jù)復(fù)制到指定的表中
格式:INSERT INTO 表名[(列名,列名,……)] SELECT語句;
例:INSERT INTO STUDENTS(STU_ID,STU_NAME) SELECT EMPLOYEE_ID,LAST_NAME FROM EMPLOYEES;
二、修改數(shù)據(jù):UPDATE語句
格式:UPDATE 表名 SET 列名=值[,列名=值,……] [WHERE 條件];
例:
UPDATE STUDENTS SET STU_BIRTHDAY=SYSDATE WHERE STU_ID=2;
UPDATE STUDENTS SET STU_SEX='男',STU_BIRTHDAY=TO_DATE('1990-2-14','YYYY-MM-DD') WHERE STU_ID=100;
UPDATE EMPLOYEES SET SALARY=SALARY+300 WHERE SALARY=2500;
三、刪除數(shù)據(jù):DELETE語句
格式:DELETE [FROM] 表名 [WHERE條件];
例:
DELETE FROM STUDENTS WHERE STU_BIRTHDAY IS NULL;
--刪除STUDENTS表中STU_BIRTHDAY列中所有的數(shù)據(jù)。
UPDATE STUDENTS SET STU_BIRTHDAY=NULL;
*/
--約束
1.主鍵約束:PRIMARY KEY。主鍵不能為NULL,不能重復(fù)。通過主鍵可以在表中找到唯一的一行數(shù)據(jù)。
2.非空約束:NOT NULL。列不能為NULL。
3.檢查約束:CHECK。向列中添加與修改數(shù)據(jù)時,檢查值是否合法。
--數(shù)據(jù)庫中不能出現(xiàn)同名的元素。
--刪除表:DROP TABLE 表名;
DROP TABLE USERS;
CREATE TABLE USERS(
USER_ID NUMBER(6) PRIMARY KEY,
USER_NAME VARCHAR2(20) NOT NULL,
USER_AGE NUMBER(2) CHECK(USER_AGE BETWEEN 20 AND 50)
);
INSERT INTO USERS VALUES(1,'AA',19);
轉(zhuǎn)載于:https://www.cnblogs.com/yzyqqhr/p/5716303.html
總結(jié)
以上是生活随笔為你收集整理的第三天20160728的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 彻底弄懂css3的flex弹性盒模型
- 下一篇: wamp httpd-vhosts.co