Oracle學(xué)習(xí)筆記(二):SQL基礎(chǔ)

自己學(xué)習(xí)Oracle的相關(guān)筆記,主要備忘,并不詳細(xì),如有錯(cuò)誤歡迎大家指正~~~


Oracle基礎(chǔ)語(yǔ)法

  • DDL使用

    • Create創(chuàng)建表
      • 語(yǔ)法
      CREATE TABLE table_name(
          column_name datatype [null|not null],
          column_name datatype [null|not null],
          ...
          [constraint]
      ); 
      
      • table_name: 表名,不可重復(fù)
      • column_name: 列名,在同一表中不可重復(fù)
      • datatype: 該列所存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)類型
      • [null|not null]:是否為空
      • [constraint]:約束條件
      • 示例:
      CREATE TABLE student(
          student_id number(10),
          student_name varchar2(20),
          student_address varchar2(100)
      );
      DESC student; --顯示表結(jié)構(gòu)
      
    • Alter修改表
      • 語(yǔ)法
      ALTER TABLE table_name ADD column_name | MODIFY column_name | DROP COLUMN column_name;
      
      • ADD: 向表中添加列
      • MODIFY: 修改表中已經(jīng)存在的列的信息
      • DROP COLUMN: 刪除表中的列,無(wú)法刪除屬于sys的表中的列
      • 示例
      ALTER TABLE student ADD remark varchar2(300);--添加備注列
      ALTER TABLE student MODIFY remark varchar2(400);--修改remark
      DESC student;--顯示student表結(jié)構(gòu)
      
    • Drop刪除表
    DROP TABLE table_name;
    DROP TABLE student; --刪除student
    
  • 約束的使用

    • 主鍵約束
      • 添加主鍵約束
      CREATE TABLE stdent(
          student_id number(10),
          student_name varchar(20),
          primary key(student_id)
      ); --建表時(shí)添加主鍵
      ALTER TABLE table_name ADD CONSTRAINTS constraint_name PRIMARY KEY(column_name);  --用ALTER添加主鍵,constraint_name是約束名,自己取
      
      • 移除主鍵約束
      ALTER TABLE table_name DROP CONSTRAINT constraint_name;
      
    • 外鍵約束
      • 使用外鍵約束建表
      CONSTRAINT constraint_name FOREIGN KEY (column_name) REFERENCE table_name (column_name) ON DELETE CASCADE;
      
        + 外鍵約束是建立在兩張表之間的約束,需在創(chuàng)建表的后面加上上面語(yǔ)句
        + constraint_name: 外鍵約束名字
        + FOREIGN KEY (column_name): 指定外鍵約束的列
        + REFERENCE:要引用的表名(列名)
        + ON DELETE CASCADE:設(shè)置級(jí)聯(lián)刪除,當(dāng)主鍵字段被刪除時(shí),外鍵對(duì)應(yīng)的字段也同時(shí)被刪除。
        + 示例:
        ```
        CREATE TABLE student_scores(
            student_id number(10),
            math_score number(2,2),
            english_score number(2,2),
            PRIMARY KEY (student_id),
            CONSTRAINT fk FOREIGN KEY(student_id) REFERENCES student(student_id) ON DELETE CSCADE 
        );
        ```
      
      • 在修改表時(shí)添加外鍵約束
        • 在ALTER TABLE后添加
        ADD CONSTRAINT constraint_name FOREIGN KEY (column_name) REFERENCES table_name (column_name) ON DELETE CASCADE;
        
      • 移除外鍵約束
        • 與移除主鍵相同
        ALTER TABLE student_scores DROP CONSTRAINT fk;
        
    • CHECK約束
      • 創(chuàng)建表時(shí)添加CHECK約束
      CONSTRAINT constraint_name CHECK(condition) --condition可以為age>=18 and age<50
      
      • 修改表時(shí)添加CHECK約束
      ADD CONSTRAINT constraint_name CHECK(condition) --condition->Gender='男' or Gender='女'
      
      • 移除CHECK約束
      ALTER TABLE table_name DROP CONSTRAINT constraint_name;
      
    • UNIQUE約束
      • 創(chuàng)建表時(shí)添加UNIQUE約束
      CONSTRAINT constration_name UNIQUE(column_name)
      
      • 修改表時(shí)添加UNIQUE約束
      ADD CONSTRAINT constraint_name UNIQUE (column_name)
      
      • 移除UNIQUE約束
      ALTER TABLE table_name DROP CONSTRAINT constraint_name;
      
    • NOT NULL約束
      • 創(chuàng)建NOT NULL約束
        • 創(chuàng)建表時(shí)直接在列后加NOT NULL
      • 修改表設(shè)置NOT NULL約束
        ALTER TABLE table_name MODIFY column NOT NULL; 
        
      • 非空約束不需要?jiǎng)h除,直接使用MODIFY語(yǔ)句把該列的非空約束寫成NULL。
  • DML和DQL使用

    • INSERT添加數(shù)據(jù)
      • 語(yǔ)法
      INSERT INTO table_name(column_name1,column_name2,...) VALUES(data1,data2,...);
      
      • 直接添加數(shù)據(jù)
      INSERT INTO student(student_id,student_name,student_address,remark) values(1,'Tim','asdf','12344');
      
      • 通過(guò)其他表添加數(shù)據(jù)
        • 如果創(chuàng)建一個(gè)新的數(shù)據(jù)表,但這個(gè)表中的數(shù)據(jù)又與其他表中的數(shù)據(jù)相似,就可以直接把存在表的數(shù)據(jù)添加到新創(chuàng)建的表,減少工作量
        • 語(yǔ)法
        INSERT INTO table_name(column_name1,column_name2,...) select column_name1,column_name2,...From table_name2;
        
    • UPDATE修改數(shù)據(jù)
      • 語(yǔ)法
      UPDATE table_name SET column_name1=data1,column_name2=data2,...[WHERE condition] --WHERE:條件,如果省略where語(yǔ)句,表示修改該字段所有值,加上where選擇修改
      
      • 根據(jù)條件修改表中指定字段
      UPDATE student SET student_name = 'TD' WHERE student_id=1;
      
    • DELETE刪除數(shù)據(jù)
      • 語(yǔ)法
      DELETE FROM table_name [WHERE condition];
      
    • SELECT查詢數(shù)據(jù)
      • 語(yǔ)法
      SELECT column_name1,column_name2,... FROM table_name [WHERE condition];
      
      • 查詢表中全部數(shù)據(jù)
      SELETE * FROM student;
      
      • 查詢表中某一字段數(shù)據(jù)
      SELETE student_name FROM student;
      
      • 根據(jù)條件查詢數(shù)據(jù)
      SELETE * FROM student WHERE student_id = 1;
      
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容