Oracle學習總結

来源:http://www.cnblogs.com/luogg/archive/2016/09/21/5892134.html
-Advertisement-
Play Games

Oracle day01 Oracle簡介及表的創建,增刪改查 安裝好之後,需要手動開啟的服務 : 右鍵我的電腦 管理 服務 OraclORCL 和 OracleListiner . 必須開啟. dos 底下輸入sqlplus啟動oracle,資料庫口令 : orcl 用戶名system密碼orcl ...


Oracle

day01 Oracle簡介及表的創建,增刪改查

  • 安裝好之後,需要手動開啟的服務 : 右鍵我的電腦 -> 管理 -> 服務 -> OraclORCL 和 OracleListiner . 必須開啟.
  • dos 底下輸入sqlplus啟動oracle,資料庫口令 : orcl
  • 用戶名system密碼orcl 用戶名scott密碼luogg
  • 網頁端 : http://localhost:5560/isqlplus
  • 以管理員角色登錄 : sqlplus scott/luogg as sysdba
  • 測試是否安裝成功: select sysdate from dual;查詢當前時間
  • 退出 exit
  • 鎖定與解鎖用戶 : alter user scott account lock ;
    alter user scott account unlock ;
  • 清屏: host cls(windows中)
    host clear(Linus中)
  • 切換用戶 : conn[ect] scott/luogg ;
  • 顯示當前用戶 : show user ;
  • 查看表結構: desc table_name;
  • 單行註釋- -
  • 多行註釋/* */

  • 查看當前用戶有那些表 : select * from tab ;
  • 建表的時候先創建E-R圖,會比較清晰,實體用長方形,屬性用橢圓.
  • 一個漢字有3個位元組, varchar2為可變字元串.
  • PL/SQL developer 查看表的方法: ctrl+鼠表放在表上
    SQL developer 查看表的方法: desc + 表名 ;
  • PL/SQL developer 中輸入select * from 表名 + for update; 可以直接增刪改查
  • 查看本機IP的方法 : dos底下輸入 -> ipconfig -> ipv4地址
  • 創建表 : create table t_student(t_name varchar2(20) ...);
  • 添加信息: insert into t_student(t_name) values('小花');
    若不指定欄位, 那麼預設添加所有欄位信息;
    若要添加指定欄位信息, 表名後邊必須指明欄位;
  • 修改信息: update t_student set stu_name='小美' where stu_no=1001;
  • 刪除信息: delete from t_student where stu_age=20 and stu_no=1002;
  • 刪除表: drop table t_student;
  • 添加欄位: alter table t_student add(stu_sex varchar2(10));
  • 修改欄位長度: alter table t_student modify(stu_sex varchar2(6));
    修改長度時候,可以不為null, 修改欄位的修飾類型(varchar2->number)的時候, 欄位下邊必須沒有信息, 為null
  • 刪除欄位: alter table t_student drop column stu_sex;
  • 複製HR用戶下的employees表: create table copy_emp as select * from hr.employees; 前提是有許可權訪問hr.
  • 只複製表結構: create table copy_emp2 as select * from hr.employees where 1=2
  • 查詢欄位為空的表: select * from t_student where stu_name is null ;

  • 可以快速導入表 : 先放到excel中,然後導入;
  • SQL : 結構化查詢語言
    PL/SQL: 過程話查詢語言
  • DCL: 數據控制語言(極少用)
    DDL: 數據定義語言, 創建對象的時候使用, create,alter,drop
    DML: 數據操縱語言,和操作數據有關, insert,update,delete,查詢不屬於DML.

  • pl/sql中,選中本行: home/end + shift,end/home ;
  • 運行sql語句: f8. 提交: f10 . 回滾: shift+f10.

day02 約束

表的類型

  • char 2000個位元組 , 定長字元串,
  • varchar 4000個位元組, 可變字元串, 若沒達到指定字元長度, 會自動調整大小
  • number(m,n) m,有效位數,n,代表小數位,出多來的小數位四捨五入,
    不寫n的時候,為整數
  • date類型
    1,sysdate 當前日期
    2,預設格式: dd-mm月-yy 05-03月-94
    3,採用資料庫提供的to_date()方法,

    追加出生日期的三種方法:
    1.update t_student set stu_birthday=sysdate where stu_name='張三'
    2.update t_student set stu_birthday=to_date('1994-05-03', 'yyyy- mm-dd') where stu_name='狗蛋';
    3.update t_student set stu_birthday=to_date('1994-05-03 235830', 'yyyy-mm-dd hh24miss') where stu_name='二麻子';
    4.update t_student set stu_birthday='05-03-94' where stu_name='蠢單子';

to_char的使用

  • 查詢08 月份入職的所有員工的信息
    select * from copy_emp where to_char(hire_date,'mm') = '08';
  • 查詢本月入職的所有的員工信息
    select * from copy_emp where to_char(hire_date,'mm') = to_char(sysdate,'mm');
  • 查詢星期x 入職的員工信息
    select * from copy_emp where to_char(hire_date,'day') = to_char(sysdate,'day');

函數

to_date(): 將其他類型轉換為date類型
to_char(): 將其他類型轉換為char類型

修改列名

alter table t_student rename column s_bir to str_bir;

模糊查詢LIKE(%表示0個或多個字元,_表示一個字元)
select * from table where table_name LIKE '%stu%';

約束

非空約束NOT NULL

修改約束(可為空) : alter table t_student modify s_name null;
若要追加非空NOT NULL約束, 必須在這個欄位信息不為空的時候追加.

查詢約束條件

1.通過表結構查詢
2.select * from USER_CONSTRAINTS where table_name = upper('t_student');

查詢到表的約束名: SYS_C007550

刪除約束

alter table t_stu drop CONSTRAINTS SYS_C007550;

唯一鍵約束UNIQUE

特點:

  • 唯一鍵約束用於確保所在欄位或欄位組合不出現重覆的值.
  • 唯一性約束的欄位允許出現空值.
  • Oracle會自動為唯一鍵約束創建唯一性索引.
  • 有值時,不可以重覆, 空值時,可以有多個null.

欄位組合做唯一性約束

這裡寫圖片描述

或者:
alter table t_student add CONSTRAINTS UQ_no_name UNIQUE(stu_no,stu_name);

主鍵約束 PRIMARY KEY

特點:

  • 唯一表示表中的某一條記錄.
  • 相當於非空且唯一
  • 一個表中只可以有一個主鍵
  • 可以是單個欄位或者多個欄位的組合
    這裡寫圖片描述

聯合主鍵

由多個欄位組合而成的主鍵也稱聯合主鍵
聯合主鍵中每一個欄位都不能為空
聯合主鍵欄位組合的值不能出現重覆
constraint PK_stuId_subId primary key(stu_name,sub_name)
)

外鍵約束 FOREIGN KEY

外鍵約束特點:

  • 外鍵用於確保相關的兩個欄位之間的參照關係,以實現參照完整性約束
  • 外鍵約束通常構建於來自不同表的兩個欄位之間
  • 子表外鍵列的值必須在主表參照列值得範圍內,或者為空
  • 外鍵參照的必須是主表的主鍵或者唯一鍵
  • 主表主鍵/唯一鍵值被子表參照時,主表相應記錄不允許被刪除

eid number(3) references t_empinfo(eid) on delete cascade,
或者 CONSTRAINTS stu_con_FK foreign key (c_no) references t_class(c_no);
約束 約束名 外鍵(欄位名) 參考 表(欄位名)

刪除主表的時候, 引入的數據 級聯刪除, on delete cascade 級聯刪除
刪除主表內容的時候, 引用的字表的欄位置空. on set null 級聯置空

檢測約束 CHECK

age number(3) check(age>=0 and age<=120)

同時使用主鍵約束和check約束
name varchar2(20) primary key check(length(name)>=6),


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 本篇文檔是介紹如何快速使用spark,首先將會介紹下spark在shell中的交互api,然後展示下如何使用java,scala,python等語言編寫應用。可以查看 "編程指南" 瞭解更多的內容。 為了良好的閱讀下麵的文檔,最好是結合實際的聯繫。首先需要 "下載spark" ,然後安裝hdfs,可 ...
  • 查到對應的用戶的活動連接: select * from pg_stat_activity where username="xxx"; 殺掉死鎖的連接: select pg_terminate_backend(pid) ...
  • Oracle資料庫用戶數據完整備份與恢復 1.1 PL/SQL->工具->導出用戶對象,選項如圖 常用的用戶對象包括: TABLE,SEQUENCE,VIEW,PACKAGE,TYPE,FUNCTION,PROCEDURE,PACKAGE BODY,TREGGER 1.2 PL/SQL->工具->導 ...
  • 先來描述下情況吧,首先有一批用戶之前批量錄入後預設的密碼為6個8然後進行MD5加密後進行存儲的,現在需要對其更改根據用戶身份證號後6位作為密碼。 1.首先發現我們sqlserver05以上的版本是自帶了MD5加密方法的,然後我們對其驗證其加密後的數據跟用.net自帶的MD5加密方法加密後是否相同。 ...
  • Redis是一個C實現的基於記憶體、可持久化的鍵值對資料庫,在分散式服務中常作為緩存服務。本篇將介紹在CentOS下如何從零開始安裝到配置啟動服務。 ...
  • sql函數 character函數 String 1.INITCAP 首字母大小 select initcap(address) address from student; select initcap('ni hao') from dual; --dual虛擬表 '數據' 列名-數據 2.LTRI ...
  • ACCESS數據的連接及語句執行操作,不難,久不用會生疏,每次都要找資料,乾脆自己整理下,記錄下來,需要的時候,直接查看,提高效率。也供初學者參考 1、連接字元串 public static string strConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Da ...
  • 身處MySQL這個圈子,能夠切身地感受到大家對MySQL 5.7的期待和熱情,似乎每個人都迫不及待的想要瞭解、學習和使用MySQL 5.7。那麼,我們不禁要問,MySQL 5.7到底做了哪些改進,引入了哪些新功能,性能又提升了多少,能夠讓大家翹首以盼,甚至歡呼雀躍呢? MySQL 5.7在諸多方面都 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...