Oracle-常用資料庫對象筆記(片段)

来源:https://www.cnblogs.com/bjsxt123/archive/2018/04/26/8955318.html
-Advertisement-
Play Games

1:用戶和許可權 1.1 用戶的創建 a)語法 create user 用戶名 identified by 密碼; b)創建用戶abcd,並設定密碼為abcd; 註意:操作資料庫對象是需要DBA(資料庫管理員)許可權的; create user abcd identified by bjsxt; 1.2 ...


1:用戶和許可權

1.1 用戶的創建

a)語法---    create user 用戶名  identified by 密碼;

b)創建用戶abcd,並設定密碼為abcd;---註意:操作資料庫對象是需要DBA(資料庫管理員)許可權的;

create user abcd identified by bjsxt;

1.2 給用戶授權

Oracle中的許可權很多,為了方便用戶管理許可權,提供了角色這個概念。角色代表一個身份,該身份擁有固定的許可權。常見的角色:DBA(資料庫管理員),CONNECT(臨時用戶,擁有少量的權限),RESOURCE(比較靠譜的許可權,擁有更多的許可權,不能管理資料庫);

a)給abcd用戶授予普通用戶的許可權

grant connect,resource to abcd;

b)從abcd用戶撤銷resource許可權

revoke resource from abcd;

1.3 刪除用戶

drop user abcd;

1.4修改用戶

1.4.1修改用戶密碼

alter user abcd identified by 123;

1.4.2鎖定用戶和解鎖用戶

a)鎖定用戶

alter user abcd account lock;

b)解鎖用戶

alter user abcd account unlock;

2.資料庫表

2.1Oracle中的數據類型

2.1.1字元類型

a)varchar2---可變長度的字元串

b)cahr       ---不可變長度的字元串,效率較高;

2.1.2數值類型

number,既可以表示整數,也可以表示浮點數;

2.1.3日期時間類型

a)date,存放日期和時間;

b)timestamp,比date更精確的日期時間類型;

2.1.4  lob類型

a)blob,用於存放二進位數據,可以用於存放文件、圖片、音頻、視頻等二進位數據;

b)clob,用於存放答文本信息;

2.2創建表格

創建學生表,欄位包含學號、姓名、性別、年齡、入學日期、班級、email等信息;

create table student(

        sno number(4),

        sname varchar(12),

        gender char(3),

        age number(3),

        sdate date,

        clazz varchar2(20),

        email varchar2(50)

)

2.3修改表格

2.3.1添加欄位

alter table student add(score number(3));

2.3.2修改欄位的類型

alter table student modify(score number(5,2));

2.3.3重命名欄位

alter table student rename column score to fenshu ;

2.3.4刪除欄位

alter table student drop column fenshu;

2.3.5刪除表格

drop table stu;

3.表格的約束

constraints,約束,用於對錶格的額數據進行限制,保證表格數據的完整性和一致性。

語法:constraints 約束名+約束類型(約束欄位)

3.1主鍵約束(primary key)

主鍵約束用於唯一標識一條記錄的欄位,必須保證即非空有唯一。

一張表中,只能有一個主鍵;

a)在表級別定義主鍵約束,對約束統一管理

create table student (

       sno number(4),

       sname varchar2(12),

       gender char(3),

       age number(3),

       sdate date,

       clazz varchar2(20),

       email varchar2(50),

       constraints pk_student primary key (sno)

);

b)在列級別添加主鍵約束

create table student (

       sno number(4) constraints pk_student primary key,

       sname varchar2(12),

       gender char(3),

       age number(3),

       sdate date,

       clazz varchar2(20),

       email varchar2(50)

);

c)在列級別添加簡化版約束

create table student (

       sno number(4) primary key,

       sname varchar2(12),

       gender char(3),

       age number(3),

       sdate date,

       clazz varchar2(20),

       email varchar2(50)

);

d)聯合主鍵,只能在表級別定義,因為一個表只能有一個主鍵

create table student (

       sno number(4),

       sname varchar2(12),

       gender char(3),

       age number(3),

       sdate date,

       clazz varchar2(20),

       email varchar2(50),

       constraints pk_student primary key (sno, email)

);

3.2非空約束not null

欄位值不允許為空,非空約束只能在列級別定義

create table student (

       sno number(4),

       sname varchar2(12) not null,

       gender char(3),

       age number(3),

       sdate date,

       clazz varchar2(20),

       email varchar2(50),

       constraints pk_student primary key (sno)

);

3.3唯一約束 (unique)

要求欄位值不能重覆;

create table student (

       sno number(4),

       sname varchar2(12) not null,

       gender char(3),

       age number(3),

       sdate date,

       clazz varchar2(20),

       email varchar2(50), -- unique,

       constraints pk_student primary key (sno),

       constraints uk_student_email unique (email)

);

3.4 檢查約束(check)

用於限定欄位值的取值範圍;

create table student (

       sno number(4),

       sname varchar2(12) not null,

       gender char(3) check (gender in ('', '')),

       age number(3),

       sdate date,

       clazz varchar2(20),

       email varchar2(50),

       constraints pk_student primary key (sno),

       constraints uk_student_email unique (email),

       constraints ck_student_age check (age between 18 and 30)

);

3.5外鍵約束(foreign key)

用於約束表和表之間的關係,兩張標的依賴關係,以emp表和dept表為例,emp表依賴dept表,因此,dept表可以被稱之為主表,emp表被稱之為從表。

註意:

》主表中,只有主鍵或唯一建才可以被從表參考;

》從表中作為外鍵的列,類型一定要和主表的被參考列相同;

a)建立主表clazz

create table clazz (

       cno number(3) primary key,

       cname varchar2(20) not null,

       croom number(3)

);

b)建立從表,並定義外鍵Student

create table student (

       sno number(4),

       sname varchar2(12) not null,

       gender char(3) default '' check (gender in ('', '')),

       age number(3),

       sdate date,

       email varchar2(50),

       cno number(3),

       constraints pk_student primary key (sno),

       constraints uk_student_email unique (email),

       constraints ck_student_age check (age between 18 and 30),

       constraints fk_student_cno foreign key (cno) references clazz (cno)

);

c)也可以在列級別定義外鍵,如下

create table student (

       sno number(4),

       sname varchar2(12) not null,

       gender char(3) default '' check (gender in ('', '')),

       age number(3),

       sdate date,

       email varchar2(50),

       cno number(3) references clazz(cno),

       constraints pk_student primary key (sno),

       constraints uk_student_email unique (email),

       constraints ck_student_age check (age between 18 and 30)

);

d)外鍵中的刪除問題;

》主表中的數據在被引用時,無法直接刪除,預設情況下,需要先刪除主表中的數據。

》可以在定義外建時,設置刪除策略為cascade(級聯),表示當刪除主表的信息時,同時刪除從表中的所有關聯的信息

create table student (

       sno number(4),

       sname varchar2(12) not null,

       gender char(3) default '' check (gender in ('', '')),

       age number(3),

       sdate date,

       email varchar2(50),

       cno number(3),

       constraints pk_student primary key (sno),

       constraints uk_student_email unique (email),

       constraints ck_student_age check (age between 18 and 30),

       constraints fk_student_cno foreign key (cno) references clazz (cno) on delete cascade

);

》可以在定義外建時,設置刪除策略為set null(設空),表示當刪除主表的信息時,將從表中的相關數據設置為null

create table student (

       sno number(4),

       sname varchar2(12) not null,

       gender char(3) default '' check (gender in ('', '')),

       age number(3),

       sdate date,

       email varchar2(50),

       cno number(3),

       constraints pk_student primary key (sno),

       constraints uk_student_email unique (email),

       constraints ck_student_age check (age between 18 and 30),

       constraints fk_student_cno foreign key (cno) references clazz (cno) on delete set null

);

3.6在修改表格時添加約束

a)給student表添加約束

-- 主鍵約束

alter table student add constraints pk_student primary key (sno);

-- 唯一約束

alter table student add constraints uk_student_email unique (email);

-- 檢查約束

alter table student add constraints ck_student_age check (age between 18 and 30);

alter table student add constraints ck_student_gender check (gender in ('',''));

-- 外鍵約束

alter table student add constraints fk_student_cno foreign key (cno) references clazz (cno);

 


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

-Advertisement-
Play Games
更多相關文章
  • 不知道你有沒有發現現在身邊學java的人越來越越多呢?其實在小編高考的時候,身邊選電腦專業的同學非常少。別誤會,就是幾年前而已。可能是因為小編是小縣城的,身邊很多人甚至都不知道有程式員這一職業。現在學java的人越來越多,學好java真的很有錢途嗎? 為什麼學java的人越來越多? 小編認為一個是 ...
  • 之前用過 Laravel,框架自帶的 artisan 命令,用得爽到爆。現在工作需要,要學習 FuelPHP,首先看到框架目錄結構,有 coposer.json 框架可以用 composer 管理,一定也有自己的命令工具。 對於新手來說,不妨先用命令自動生成文件,然後看這些生成的文件瞭解基本的 CR ...
  • 配置Windows2008伺服器openjdk時候出現這問題 原因是CLASSPATH配置出了問題,網上錯誤配置太多,一錯傳10,10傳百 CLASSPATH 外話,配置時候還需 JAVA_HOME Path ...
  • 代碼呢分兩部分,一部分是client端跟server端兩個。你只需要想辦法讓小伙伴運行你的client端腳本就OK啦。不過在此之前你一定要在你的電腦上運行server端哦~這樣子的話,client端會在你的小伙伴電腦上隨機生成一個密碼然後通過socket發給server端也就是發給你哦~ ...
  • 一、簡介: Zookeeper是一個分散式協調服務,提供的服務如下: 命名服務:類似於DNS,但僅對於節點 配置管理:服務配置信息的管理 集群管理:Dubbo使用Zookeeper實現服務治理 分散式鎖:選舉一個leader,這樣某一時刻只有一個服務在幹活,當leader出問題時釋放鎖,立即切到另一 ...
  • 本文要點剛要: (一)讀文本文件格式的數據函數:read_csv,read_table 1.讀不同分隔符的文本文件,用參數sep 2.讀無欄位名(表頭)的文本文件 ,用參數names 3.為文本文件制定索引,用index_col 4.跳行讀取文本文件,用skiprows 5.數據太大時需要逐塊讀取文 ...
  • 練習 8.1: 修改clock2來支持傳入參數作為埠號,然後寫一個clockwall的程式,這個程式可以同時與多個clock伺服器通信,從多伺服器中讀取時間,並且在一個表格中一次顯示所有服務傳回的結果,類似於你在某些辦公室里看到的時鐘牆。如果你有地理學上分散式的伺服器可以用的話,讓這些伺服器跑在不 ...
  • 先說一下,這裡用到了很多關於反射類型的功能,可能剛開始看代碼,如果對反射不熟悉的可能會不是非常清晰,但是同時也是為了更好的理解golang中的反射,同時如果後面想在代碼中可以直接從我的git地址get:go get github.com/pythonsite/config_yaml直接上代碼: 先寫 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...