日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第三天20160728

發布時間:2024/9/5 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第三天20160728 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

--TO_CHAR(N,F):將數字類型N根據模板F轉換為字符類型的值。
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):根據模板F將字符類型C轉換為日期類型
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):根據模板F將字符類型C轉換為數字類型
SELECT TO_NUMBER('1,000.00','9,999.99')
FROM DUAL;

--通用的單行函數
--NVL():當第一個參數不為NULL,返回第一個參數。當第一個參數為NULL,返回第二個參數。兩個參數的類型必須一致。
SELECT LAST_NAME,NVL(TO_CHAR(COMMISSION_PCT,'FM0.00'),'沒有傭金')
FROM EMPLOYEES;

--當算術運算中出現NULL時,結果一定為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():當第一個參數不為NULL,返回第二個參數。當第一個參數為NULL,返回第三個參數。
SELECT LAST_NAME,NVL2(COMMISSION_PCT,'有傭金','沒有傭金')
FROM EMPLOYEES;

--CASE表達式與DECODE()函數:分支選擇
--查詢employees表中所有員工的last_name,job_id,salary,新工資。當job_id為IT_PROG時,工資增加10%。當job_id為ST_CLERK時,工資增加15%。當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;

--表
--創建表
CREATE TABLE 表名(
列名 數據類型[長度] [約束],
列名 數據類型[長度] [約束],
……
列名 數據類型[長度] [約束]
);

--Oracle常用的數據類型
/*
數字類型:NUMBER
1.整數:NUMBER(5),長度可以省略,如果省略長度默認為38位的數字。
2.浮點數:NUMBER(8,2),表示整個數字為8位,其中有兩位小數。

字符類型:長度不能省略
1.CHAR:保存固定長度的字符串,當內容長度不夠時,使用空格在內容的右面補齊長度。
2.VARCHAR2:保存可變長度的字符串,不會使用空格補齊長度。

日期類型:不能指定長度。
DATE:日期+時間
*/

CREATE TABLE STUDENTS(
STU_ID NUMBER(5),
STU_NAME VARCHAR2(10 CHAR),
STU_SEX CHAR(1 CHAR),
STU_BIRTHDAY DATE
);

--查看表結構:DESC 表名;

/*
數據操作
一、添加數據:INSERT INTO語句
1.向表中添加一行新的數據,并向新行中所有的列賦值。
格式:INSERT INTO 表名 VALUES(值,值,……);
例:INSERT INTO STUDENTS VALUES(1,'Tom','男',TO_DATE('1995-1-20','YYYY-MM-DD'));

2.向表中添加一行新的數據,并向新行中指定的列賦值。
格式:INSERT INTO 表名(列名,列名,……) VALUES(值,值,……);
例:INSERT INTO STUDENTS(STU_NAME,STU_ID,STU_SEX) VALUES('張三',2,'女');

3.將其它表中的數據復制到指定的表中
格式:INSERT INTO 表名[(列名,列名,……)] SELECT語句;
例:INSERT INTO STUDENTS(STU_ID,STU_NAME) SELECT EMPLOYEE_ID,LAST_NAME FROM EMPLOYEES;

二、修改數據: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;

三、刪除數據:DELETE語句
格式:DELETE [FROM] 表名 [WHERE條件];
例:
DELETE FROM STUDENTS WHERE STU_BIRTHDAY IS NULL;

--刪除STUDENTS表中STU_BIRTHDAY列中所有的數據。
UPDATE STUDENTS SET STU_BIRTHDAY=NULL;
*/

--約束
1.主鍵約束:PRIMARY KEY。主鍵不能為NULL,不能重復。通過主鍵可以在表中找到唯一的一行數據。
2.非空約束:NOT NULL。列不能為NULL。
3.檢查約束:CHECK。向列中添加與修改數據時,檢查值是否合法。

--數據庫中不能出現同名的元素。

--刪除表: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);

轉載于:https://www.cnblogs.com/yzyqqhr/p/5716303.html

總結

以上是生活随笔為你收集整理的第三天20160728的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。