Oracle數據庫 插入數據格式,簡單查詢


 1 操作練習代碼,知識點往下翻
 2 TRUNCATE TABLE hehe1111;
 3 select * from hehe1111;
 4 desc hehe1111;
 5 INSERT INTO hehe1111(name,age,id) VALUES('haha',100,'1234');
 6 INSERT INTO hehe1111(name,sex,age,id) VALUES(NULL,'f',100,'1000001');
 7 INSERT INTO hehe1111(name,sex,age,id) VALUES('haha','f',100,'1000003');
 8 INSERT INTO hehe1111(name,sex,age,id) VALUES('haha','f',100,'1002');
 9 INSERT INTO hehe1111(sex,age,id) VALUES('f',100,'1000003');
10 INSERT INTO hehe1111(name,sex,age,id) VALUES('HaHa','f',100,'10029');
11 
12 COMMIT;
13 SAVEPOINT a1;
14 ROLLBACK;
15 DELETE hehe1111;
16 
17 select concat(NAME,null) from hehe1111 where id='1000003';
18 select length(name) from hehe1111;
19 select name from hehe1111;
20 select upper(name) from hehe1111;
21 select lower(name) from hehe1111;
22 select initcap(name||' '||'hello') from hehe1111;
23 select 'hi'||RTRIM('hello world','ld') from hehe1111;
24 select LPAD(name,10,'hello world') from hehe1111;
25 select RPAD(name,10,'hello world') from hehe1111;
26 select SUBSTR(name,-4) from hehe1111;
27 select INSTR(name,'ha') from hehe1111;
28 COMMIT;
29 
30 create table emp (
31     name char(20),
32     id number(3),
33     salary number(9,3));
34     
35 INSERT INTO emp(name,id,salary) VALUES('haha',101,'8000.567');
36 INSERT INTO emp(name,id,salary) VALUES('haha',101,'9000.789');
37 INSERT INTO emp(name,id,salary) VALUES('haha',103,'9000.123');
38 INSERT INTO emp(name,id,salary) VALUES('haha',104,'9007.123');
39 select * from emp;
40 select TO_CHAR(id)||'**' from emp;
41 select ROUND(salary) from emp;
42 select TRUNC(salary) from emp;
43 select MOD(salary,0) from emp;
44 select CEIL(salary) from emp;
45 select FLOOR(salary) from emp;
46 
47 select sysdate from emp;
48 select SYSTIMESTAMP from emp;
49 
50 drop table student;
51 create table student (
52     name char(20),
53     sex char,
54     age number(3),
55     birth date);
56     
57 INSERT INTO student(NAME,SEX,BIRTH) values('xiaoming'
58 ,'m',TO_DATE('2011-11-11','yyyy-mm-dd'));
59 
60 INSERT INTO student(NAME,SEX,BIRTH) values('xiaohua'
61 ,'f',TO_DATE('11-11-2001','mm-dd-yyyy'));
62 
63 INSERT INTO student(NAME,SEX,BIRTH) values('xiaoxiao'
64 ,'m',TO_DATE('2018-9-4-14-29-33','yyyy-mm-dd-hh24-mi-ss'));
65 
66 select to_char(birth,'mm-dd-yyyy-hh-mi-ss')||'hehe' from student;
67 select last_day(to_date('18-2-2016','dd-mm-yyyy')) from student;
68 select birth from student;
69 select add_months(birth,-1) from student;
70 select MONTHS_BETWEEN(birth,to_date('2018-9,4','yyyy-mm-dd')) from student;
71 
72 select NEXT_DAY(SYSDATE,4) from student;
73 select GREATEST(SYSDATE,NEXT_DAY(SYSDATE,4),NEXT_DAY(SYSDATE,3)) from student;
74 
75 update hehe1111 set sex='m';
76 update hehe1111 set sex=NULL where id =1234;
77 select * from HEHE1111 where sex='m' ;
78 select nvl(sex,'f') from HEHE1111;
79 
80 select 'drop table '||table_name||';' from cat where table_type='TABLE';

 

一、SQL語句
    數據定義語句:用於建立、修改、刪除數據庫對象。
        CREATE:創建表或其它對象
        ALTER:修改表或其它對象的結構
        DROP:刪除表或其它對象
        TRUNCATE:刪除表中的數據而保留結構
    數據操作語句:用於改變數據表中的數據。
        INSERT:向表中插入數據
        UPDATE:更新表中的數據
        DELETE:刪除表中的數據
    事務控制語句:用於維護數據的一致性。
        COMMIT:提交,確認已經改變的數據。
        ROBACK:回滾,取消已經進行確認的數據的改變。
        RAVEPOINT:設置保存點,使當前的事務可以回滾到指定的位置。
    數據控制語句:
        GRANT:授於,用於給用戶或角色授權
        REVOKE:於回收用戶或角色的權限
        CREATE USER:用於創建用戶
    數據查詢語句:
        SELECT * from table_name;
二、字符串類型
    1、CHAR\VARCHAR2
        1、表示字符類型,用於存儲字符信息,如:姓名、職業、住址等。
        2、CHAR長度固定的字符串,name CHAR(20); name='hehe'; 20
        3、VARCHAR2變長的字符串,name VARCHAR2(20); name='hehe'; 4;
    2、字符編碼
        1、默認以字節為單位,可指定為字符。
        2、CHAR(10) 等價於 CHAR(10 BYTE); 指定字符為單位 CHAR(10 CHAR);
        3、每個英文字符占用一個字節,每個漢字根據初始編碼的不同會占用2~4字節。
    3、最大長度
        1、CHAR最大長度為2000字節,最多保存2000個字母,1000個漢字。
        2、VARCHAR2最大長度為4000字節,最多保存4000個字母,2000個漢字。
        3、CHAR可以不指定長度默認為1,VARCHAR2必須要指定長度。
    4、LONG和CLOB類型
        1、LONG是VARCHAR2的加長版,變長的存儲字符串,最多達到2G的字符串。
            但每個表中只能有一個LONG類型,而且不能當作主鍵,不能建立索引,不能出現在查詢一條件中。
        2、CLOB存儲定長的字符串,最大長度可達到4G。
        3、Oracle建議在開發中使用LONG和CLOB替代CHAR和VARCHAR2。
三、字符串函數
    1、CONCAT和||
        1、CONCAT(str1,str2) 返回兩個字符串連接后的結果,如果連接的CHAR類型的字符串還要包括后面的空格。
        2、||與CONCAT的功能是等價的。
    2、LENGTH
        1、用於返回字符串的長度。
        2、在計算CHAR類型時會包括后面的空格,在VARCHAR2時只計算字符的數量。
    3、UPPER\LOWER\INITCAP
        UPPER功能是把字符串全部轉成大寫
        LOWER功能是把字符串全部轉成小寫
        INITCAP功能是把字符串中的所有單詞首字母大寫
    4、TRIM\LTRIM\RTRIM
        TRIM(char from str) 功能是從str的開頭截取一個字符。
        LTRIM(str1,str2) 功能是從str1的左邊截取str2。
        RTRIM(str1,str2) 功能是從str1的右邊截取str2。
    5、LPAD\RPAD
        LPAD(str1,n,str2) 顯示n個寬度的str1,不夠則用str2的字符補充到str1的左邊。
        RPAD(str1,n,str2) 顯示n個寬度的str1,不夠則用str2的字符補充到str1的右邊。
    6、SUBSTR
        SUBSTR(str,m,n) 從str的第m個位置開始截取n個字符。
        m=0時也是從頭開始截取,m負值時則從末尾截取。
        n省略時默認截取到末尾。
    7、INSTR
        INSTR(str1,str2) 從str1中查找並返回str2首次出現的位置,不存在則返回0。
  四、數值類型
    注意:p的值最大為38,如果p省略,則默認為38。
    1、NUMBER(p) 用來表示整數。
        p表示數據的位數,可以用來存儲年齡、編號、次數等。
    2、NUMBER(p,s) 用來表示帶小數點的。
        常用於存儲金額、工資等。
五、數值函數
    1、ROUND
        1、ROUND(val,s) 用於四舍五入,s表示要保留的小數點后的位數。
        2、s必須是整數,否則自動取整。
        3、如果s為負數,則從小數點前s位四舍五入,但數據不會被截取。
        4、s值缺省時默認為0。
    2、TRUNC
        1、TRUNC(val,s) 用於截取,s表示要保留的小數后的位數。
        2、如果2為負數,則把小數點前的s位置為0。
    3、MOD
        1、MOD(val,m) 使用m對val求余。
        2、m如果為0則直接返回val的值。
    4、CEIL\FLOOR
        CEIL(val)  意思是天花板,就是取val四舍五入的最大值。
        FLOOR(val)  意思是地板,舍取小數點后面的數據。
       
六、日期類型
    1、DATE日期類型
        1、使用了7個字節來表示日期
            1byte 世紀+100
            2byte 年
            3byte 月
            4byte 天
            5byte 小時+1
            6byte 分+1
            7byte 秒+1
        2、可以表示的日期范圍時公元前4712年1月1日到公元9999年12月31日。
    2、TIMESTAMP日期類型
        1、使用11個字節來表示日期
        2、前7個字節與DATE一致,后4個字節用來存儲納秒。
       
七、日期關鍵字與函數
    1、SYSDATE
        1、功能是獲取當前日期,它不是函數,本質上是Oracle內部的一個關鍵字。
        2、返回當前的系統時間,可以精確到秒。
        3、默認顯示的格式:DD-MON-RR
    2、SYSTIMESTAMP
        1、是一個內部函數,返回當前系統的日期和時間,精確到納秒。
    3、TO_DATE
        1、TO_DATE(str,fm) 將字符str按照fm的格式轉換成日期類型的數據。
        yy 2位數表示的年份
        yyyy 4位數表示的年份
        mm 兩位數表示的月份
        mon 簡拼表示的月份
        month 全拼表示的月份
        dd 2位數字表示的天
        dy 周幾的縮寫
        hh24 24小時制時間
        hh|hh12 12小時制時間
        mi 分鍾
        ss 秒
    4、TO_CHAR
        TO_CHAR 可以把其它數據類型轉換成字符串。
        TO_CHAR(date,fm) 把日期數據轉換成字符串。
    5、LAST_DAY
        1、LAST_DAY(date) 獲取日期所在月的最后一天。
        2、在按照以自然月為業務邏輯或者安排月末活動時使用。
    6、ADD_MONTHS
        1、ADD_MONTHS(date,i) 在date的基礎上加上i月后的日期。
        2、i可以是小數但會取整數。
        3、i的值可以是負的,日期則減去i月。
    7、MONTHS_BETWEEN
        1、MONTHS_BETWEEN(d1,d2) 計算兩個日期之間相隔多少個月。
        2、如果d2時間比d1晚則會得到負數。
        3、如果兩日期都是整月才能得到整數,否則都是帶小數點的數。
    8、NEXT_DAY
        1、NEXT_DAY(date,str) 返回date下一個周幾的日期。
        2、在中文環境環境下可以使用'星期一',在英文環境下需要英文單詞的全拼。
        3、為了避免麻煩可以使用1-7表示,1星期日 7星期六。
    9、LEAST\GREATEST
        1、LEAST(d1,d2,d3,...) 返回日期列表中的最小值。
        2、GREATEST(d1,d2,d3,...) 返回日期列表中的最大值。
七、NULL的含義
    1、NULL是數據庫中非常重要一個數據,也叫空值。
    2、在插入數據時,某些字段如果沒設置值則取值為NULL。
    3、在創建表的時可以設置某些字段的值不能為NULL。
    4、任何數據類型都可以為空。
   
八、空值操作
    1、插入空值
        1、顯式的插入空值,賦值時任何類型的數據都可以賦值為NULL。
        2、隱式的插入空值,對字段不賦值時該字段的值就為NULL。
    2、更新成空值
        UPDATE 表名 SET 字段=NULL where bool;
    3、空值的條件查詢
        空值不等於任何值,不能直接判斷。
        where sex is NULL
九、空值相關的函數
    1、NVL
        1、NVL(val1,val2) 把空值數據轉換成非空的。
        2、如果val1不為空,則返回val1,如果val1為空則返回val2。
        3、val1和val2可以是任意類型,但它們類型必須一致。
    2、NVL2
        1、NVL2(val1,val2,val3)也是把空值數據轉換成非空的。
        2、如果val1為空,則返回val2,如果val2也為空則返回val3。
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM