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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Oracle简单SQL语句(详细!!!)

發布時間:2023/12/31 数据库 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle简单SQL语句(详细!!!) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 前言
  • 一、Sql語句基礎
  • 二、Oracle中的主要的數據類型
  • 三、Sql語句分類
  • 四、SQL語句的書寫規則
      • 注意
  • 五、運算符的優先級
  • 六、空值的使用
        • 知識點
        • 空值的運算表達式
  • 七、文本字符串的使用
  • 八、輸出結果中列標題的默認顯示
        • 1、Sql*plus的默認顯示
        • 2、iSql*plus的默認顯示
  • 九、Oracle中簡單的創建表
        • 案例:新建表
  • 十、Oracle簡單的刪除表
        • 案例:刪除表
  • 十一、Oracle中對表的簡單查詢操作
        • 案例一:查詢表的數據
        • 案例二:查詢表的結構
  • 十二、從表中查詢部分字段
        • 案例:查詢部分字段
  • 十三、對表中數據進行簡單運算
        • 案例:數據進行簡單運算
  • 十四、定義字段的別名
        • 知識點
        • 案例:起別名
  • 十五、字符串的連結操作符使用
        • 知識點
        • 案例一:簡單合并運算
        • 案例二:字符數據運用及空值的運算
  • 十六、對表中數據進行修改
  • 十七、 對日期型數據進行加減運算
        • 案例一
        • 案例二
  • 十八、去除重復行
        • 知識點
        • 案例一:去除單列重復數據
        • 案例二:去除多列重復數據
  • 十九、限定所選擇查詢記錄
        • 知識點
        • 案例一:注意單引號
        • 案例二:字符型數據
        • 案例三:日期型數據
        • 案例四:在查詢條件中使用比較運算符
        • 案例五:邏輯運算符
  • 二十、對查詢數據的排序
        • 知識點
        • 案例一:普通升降序
        • 案例二:按照多個字段進行排序
        • 案例三:使用字段的別名來進行排序
  • 總結


前言

此篇文章是我在B站學習時所做的筆記,主要對Oracle數據庫部分SQL語句做了簡單的介紹,文中的數據庫為已建好的數據庫,為方便演示用的。此篇文章僅供學習參考,禁止轉載!


提示:以下是本篇文章正文內容,下面案例可供參考

一、Sql語句基礎

  • SQL被稱為結構化查詢語句
  • SQL是操作和檢索關系型數據庫的標準語言
  • 使用SQL語句,程序員和數據庫管理員可以完成如下的任務:
  • 二、Oracle中的主要的數據類型

    三、Sql語句分類

    四、SQL語句的書寫規則

  • 在Oracle數據庫中,Sql語句大小寫不敏感
  • Sql語句可單行或多行書寫
  • 在Sql語句中,關鍵字不能跨多行或縮寫
  • 為了提高可讀性,一般關鍵字大寫,其他小寫
  • 子句通常位于獨立行,便于編輯,提高可讀性
  • 空格和縮進使程序易讀
  • 注意

    SQL語句是不區分大小寫的,包括登錄的用戶名,密碼都是不區分大小寫的,且要注意輸入的符號要英文半角格式。

    SeLEcT * FrOm A_CHENS; --等價于 SELECT * FROM A_CHENS;

    五、運算符的優先級

  • 乘法和除法的優先級高于加法和減法
  • 同級運算的順序是從左到右
  • 表達式中使用括號可強行改變優先級的運算順序
  • 六、空值的使用

    知識點

  • 空值是指不可用、未分配的值
  • 空值不等于零或空格
  • 任意類型都可以支持空值
  • 空值的運算表達式

  • 包括空值的任何算術表達式都等于空
  • 包括空值的連接表達式等于與空字符串連接,也就是原來的字符串
  • 七、文本字符串的使用

  • 文本字符串是一個包括在SELECT查詢列表中的字符,表達式,或數字
  • 日期和字符型文本字符串必須用單引號擴起來(例如:十五、案例二)
  • 每返回一條記錄文本字符串被顯示一次
  • 八、輸出結果中列標題的默認顯示

    1、Sql*plus的默認顯示

    • Date和character型數據左對齊
    • Numeric型數據右對齊
    • 列標題默認顯示為大寫(如:EMPNO,ENAME,JOB…)

    2、iSql*plus的默認顯示

    • 列標題缺省居中對齊
    • 列標題默認顯示為大寫

    摘自B站

    九、Oracle中簡單的創建表

    案例:新建表

    CREATE TABLE A_CHENS (ID NUMBER(4) PRIMARY KEY,NAME VARCHAR(10),SEX CHAR(2),ADDR VARCHAR2(20),BIRTHDAY DATE,SAL NUMBER(8,2) );

    注意:

  • 每個字段后面必須加分號。
  • 表里邊就是一個一個的字段。

  • 步驟一:點擊選擇“My objects”

    步驟二:點擊左上角“File-New-SQL Window”


    步驟三:在彈出的SQL Window窗口中輸入sql建表語句,選中所有語句,點擊左上角齒輪運行


    步驟四:點擊Tables,右鍵refresh刷新一下,找到新建的表CHENS,右鍵點擊“Edit data”可查看表內容。


    十、Oracle簡單的刪除表

    案例:刪除表

    DROP TABLE A_CHENS;

    步驟:在SQL Window窗口中輸入刪除語句,選中所有語句,點擊左上角齒輪運行,即可刪除。

    刪除前

    刪除后

    十一、Oracle中對表的簡單查詢操作

    案例一:查詢表的數據

    SELECT * FROM A_CHENS;

    步驟:在SQL Window窗口中輸入查詢語句,選中所有語句,點擊左上角齒輪運行,即可顯示結果。


    案例二:查詢表的結構

    注意:只能在命令行的模式下使用

    DESC A_CHENS;

    步驟一:點擊左上角“File-New-Command Window”。

    步驟二:在彈出的Command Window窗口中輸入查詢語句,即可得到結果。

    十二、從表中查詢部分字段

    原表數據:

    案例:查詢部分字段

    注意:此表A_CJJ_3為已建好表

    --SELECT 語句的使用 --從表中查詢部分的字段 SELECT CHENGJI,XUENIAN,XINGMING,KEMU FROM A_CJJ_3;

    步驟:在SQL Window窗口中輸入需查詢部分字段的語句,選中所有語句,點擊左上角齒輪運行,即可得結果。

    十三、對表中數據進行簡單運算

    案例:數據進行簡單運算

    --在查詢過程中,對于數值型的數據,可以執行+,-,*,/運算 SELECT CHENGJI,CHENGJI*2,XUENIAN,XINGMING,KEMU FROM A_CJJ_3;

    步驟:在SQL Window窗口中輸入需運算的語句,選中所有語句,點擊左上角齒輪運行,即可得結果。

    十四、定義字段的別名

    知識點

  • 改變列的標題頭
  • 用于表示計算結果的含義
  • 作為列的別名
  • 如果別名中使用特殊字符,或者是強制大小寫敏感,或有空格時,都需加雙引號
  • 注意:如果字符型寫小寫不加雙引號,會強制輸出大寫表名,若需保持大小寫或小寫,則需加雙引號。

    案例:起別名

    --可以給查詢字段起別名,有不同的方式,可以不用"",也可以不用"",可以用As(as),也可以不用As SELECT CHENGJI "ChengJi",CHENGJI*2 兩倍成績,XUENIAN "學年",XINGMING as 姓名,KEMU As 科目,PINGSHIFEN psf FROM A_CJJ_4;

    步驟:在SQL Window窗口中輸入命名語句,選中所有語句,點擊左上角齒輪運行,即可得結果。

    十五、字符串的連結操作符使用

    知識點

  • 將列或字符與其它列連結
  • 用雙豎線表示(||)
  • 產生的結果列是另一個字符表達式
  • 案例一:簡單合并運算

    • 用 || 可以將兩列或多列查詢結果合并到一起
    --用||可以將兩列或多列查詢結果合并到一起 SELECT XUENIAN "學年",XINGMING as 姓名,XINGMING||XUEHAO 學生信息,XUEHAO AS 學號 FROM A_CJJ_4;

    (注意:此處的表A_CJJ_4是已建好的)

    結果

    案例二:字符數據運用及空值的運算

    • 在連接表達式中出現字符數據,字符型的數據必須要使用單引號’ ’
    • 在連接表達式中出現null,就是原來的字符型數據,即原來是null,現在還是null類型
    --在連接表達式中出現字符數據,字符型的數據必須要使用單引號'' --在連接表達式中出現null,就是原來的字符型數據,即原來是null,現在還是null類型 SELECT XUENIAN 學年,XINGMING 姓名,XINGMING||'的平時分是'||PINGSHIFEN "學生信息1",PINGSHIFEN 平時分 FROM A_CJJ_4;

    結果:

    十六、對表中數據進行修改

    SELECT * FROM A_CJJ_4 FOR UPDATE;

    十七、 對日期型數據進行加減運算

    案例一

    • 對于日期型的數據可以使用+,-運算符
    • 1個日期 ±1個數值(就是±1個天數)=1個新的日期
    --對于日期型的數據可以使用+,-運算符 --1.一個日期 +— 一個數值(就是+-一個天數)=一個新的日期 SELECT NAME,ADDR 地址,BIRTHDAY "今天",(BIRTHDAY+7)"過七天" FROM A_CHENS;

    結果:

    案例二

    • SYSDATE取得系統當前日期
    • 2個日期型的數據相減,得到的是兩者之間相差的天數
    • 2個日期型的數據不能相加,日期型的數據不能進行乘除運算
    --SYSDATE取得系統當前日期 --2.兩個日期型的數據相減,得到的是兩者之間相差的天數 --2個日期型的數據不能相加,日期型的數據不能進行乘除運算 SELECT NAME,ADDR 地址,BIRTHDAY "今天",(SYSDATE-BIRTHDAY)已存活天數 FROM A_CHENS;

    結果:

    十八、去除重復行

    知識點

    • 缺省情況下查詢顯示所有行,包括重復行,使用DISTINCT關鍵字可從查詢結果中清除重復行
    • DISTINCT的作用范圍是后面所有宇段的組合

    查看表A_CHENS的原始數據

    SELECT * FROM A_CHENS;

    結果:

    案例一:去除單列重復數據

    --去除單列重復數據 SELECT DISTINCT NAME FROM A_CHENS;

    結果:

    案例二:去除多列重復數據

    --去除多列重復數據 SELECT DISTINCT ADDR,BIRTHDAY FROM A_CHENS;

    結果:

    十九、限定所選擇查詢記錄

    知識點

    1、Where中的字符串日期值

    • 字符串和日期要用單引號擴起來
    • 字符串是大小寫敏感的,日期值是格式敏感的
    • 缺省的日期格式是’DD-MON-YY’

    2、使用BETWEEN運算符

    • 使用BETWEEN運算符顯示某一值域范圍的記錄

    3、使用IN運算符

    • 使用IN運算符獲得匹配列表值的記錄

    4、使用LIKE運算符

    • 使用LIKE運算符執行通配查詢
    • 查詢條件可包含文字字符或數字
      (%)可表示零或多個字符
      (_)可表示一個字符

    5、使用IS NULL運算符

    • 查詢包含空值的記錄

    案例一:注意單引號

    • 對于字符型的數據和日期型的數據必須使用單引號’ ’

    正確:

    --使用WHERE子句對數據進行過濾 --對于字符型的數據和日期型的數據必須使用單引號'' SELECT * FROM A_CHENS WHERE NAME='陳一';

    結果:


    錯誤語句:

    SELECT * FROM A_CHENS WHERE PASSWORD=chengyi;

    結果:

    案例二:字符型數據

    • 字符型的數據對大小寫是敏感的

    正確:

    --字符型的數據對大小寫是敏感的 SELECT * FROM A_CHENS WHERE PASSWORD='chenyi';

    結果:


    例子:

    SELECT * FROM A_CHENS WHERE PASSWORD='CHENGYI';

    結果:

    案例三:日期型數據

    正確:

    --對日期型數據,格式是敏感的,使用日期型數據的格式是DD-MM-YYY(日-月-年) SELECT * FROM A_CHENS WHERE BIRTHDAY='20-7月-2001';

    結果:

    錯誤一: 輸入日期型格式不對

    --對日期型數據,格式是敏感的,使用日期型數據的格式是DD-MM-YYY(日-月-年) SELECT * FROM A_CHENS WHERE BIRTHDAY='2001-7-20';

    結果:

    錯誤二: 由于系統設置中文的編碼格式,缺少“月”字

    --對日期型數據,格式是敏感的,使用日期型數據的格式是DD-MM-YYY(日-月-年) SELECT * FROM A_CHENS WHERE BIRTHDAY='20-7-2001';

    結果:

    案例四:在查詢條件中使用比較運算符

    where中的比較運算符

    運算符含義
    =等于
    >大于
    >=大于等于
    <小于
    <=小于等于
    <> 或 !=不等于
    --在查詢條件中使用其他的比較運算符 SELECT * FROM A_CJJ_4 WHERE CHENGJI >=80;SELECT * FROM A_CJJ_4 WHERE CHENGJI !=90; --等價于 SELECT * FROM A_CJJ_4 WHERE CHENGJI <>90;

    其他的比較運算符

    運算符含義
    BETWEEN…AND…在兩值之間(包含)
    IN(list)匹配列出的值
    LIKE匹配一個字符模式
    IS NULL是空值
    --使用BETWEEN...AND SELECT * FROM A_CJJ_4 WHERE CHENGJI BETWEEN 80 AND 100; --等價于 --在Oracle中用AND來執行&&的功能 SELECT * FROM A_CJJ_4 WHERE CHENGJI >=80 AND CHENGJI<=100; ------------------------------------------------ --使用IN子查詢學科為數學和java的同學的全部信息 SELECT * FROM A_CJJ_4 WHERE KEMU IN ('數學''java'); ------------------------------------------------ --在Oracle中用OR來執行||的功能 SELECT * FROM A_CJJ_4 WHERE KEMU='java' OR KEMU='英語'; ------------------------------------------------ --LIKE用于字符型數據的查詢,可以執行模糊查詢 -- % 表示0個或多個字符 SELECT * FROM A_CJJ_4 WHERE KEMU LIKE'%A%';SELECT * FROM A_CJJ_4 WHERE KEMU LIKE'A%';-- _表示一個字符 SELECT * FROM A_CJJ_4 WHERE KEMU LIKE'_A%'; ---------------------------------------- --轉義字符的使用,輸出數據中含有%的信息 SELECT * FROM A_CJJ_4 WHERE NAME LIKE '%\%%' ESCAPE '\'; ---------------------------------------- --對于空值,要使用IS NULL進行比較 SELECT * FROM A_CHENS WHERE PASSWORD IS NULL;

    案例五:邏輯運算符

    運算符含義
    AND &&如果組合的條件都是TRUE,返回TRUE
    OR ||如果組合的條件之一是TRUE,返回TRUE
    NOT !如果下面的條件是FALSE,返回TRUE
    --使用NOT運算符SELECT * FROM A_CJJ_4 WHERE CHENGJI NOT BETWEEN 80 AND 100; --等價于 SELECT * FROM A_CJJ_4 WHERE CHENGJI <80 OR CHENGJI>100; -------------------------------------------- SELECT * FROM A_CJJ_4 WHERE KEMU NOT IN ('數學''java'); --等價于 SELECT * FROM A_CJJ_4 WHERE KEMU != '數學' AND KEMU != 'java'; -------------------------------------------- SELECT * FROM A_CHENS WHERE PASSWORD IS NOT NULL;

    優先級規則

    次序運算符
    1所有的比較運算
    2NOT
    3AND
    4OR

    (注意:括號將跨越所有優先級規則)

    --NOT AND OR的運算順序 SELECT * FROM A_CHENS WHERE NAME='陳一' AND PASSWORD='chenyi';--admin' OR 'x'='x --SQL注入攻擊 SELECT * FROM A_CHENS WHERE NAME='陳一' OR ('X'='X' AND PASSWORD='chenyi'); -- = WHERE NAME='陳一' OR 'X'='X' AND PASSWORD='chenyi';

    二十、對查詢數據的排序

    知識點

    • 使用ORDER BY子句將記錄排序
      ASC:升序,缺省
      DESC:降序
    • ORDER BY子句出現在SELECT語句的最后
    • 使用列的別名排序

    案例一:普通升降序

    --對查詢后的數據進行排序,使用ORDER BY子句 SELECT * FROM A_CJJ_4 WHERE CHENGJI>80 ORDER BY CHENGJI;--顯示的時候默認的按照指定的字段升序排列 SELECT * FROM A_CJJ_4 ORDER BY CHENGJI; --用指定的字段顯示的指定升序排序 SELECT * FROM A_CJJ_4 ORDER BY CHENGJI ASC; -------------------------------------------- --用指定的字段顯示的指定降序排序 SELECT * FROM A_CJJ_4 ORDER BY CHENGJI DESC; ---------------------------------------------

    案例二:按照多個字段進行排序

    --可以按照多個字段進行排序 --此處表示的是,先讓CHENGJI按升序排序,PINGSHIFEG不管順序, --若CHENGJI有相同的,PINGSHIFEN再按升序排序 SELECT * FROM A_CJJ_4 ORDER BY CHENGJI,PINGSHIFEN;

    案例三:使用字段的別名來進行排序

    --使用字段的別名來進行排序 SELECT XINGMING,KEMU,(CHENGJI*0.6+PINGSHIFEN*0.4)"總分" FROM A_CJJ_4 ORDER BY "總分"

    總結

    在本章的一開始創建了最簡單的表,對表有了一個基本的認識。對Sql語句也做了簡單介紹,講述了Sql的分類和Sql*Plus的基本特點,用一些例子描述了最簡單的Select查詢語句的基本用法,并在此基礎上進行了語句擴充,增加了Where子句以便能夠執行帶有限制條件的查詢,增加了Order By子句以便對查詢出的數據進行排序顯示。


    如若侵權,請及時與我聯系。
    此篇文章僅供學習參考,禁止轉載!

    總結

    以上是生活随笔為你收集整理的Oracle简单SQL语句(详细!!!)的全部內容,希望文章能夠幫你解決所遇到的問題。

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