學習oracle的語句管理之前,我們需要了解oracle的體系結構
oracle database 資料庫是由 資料庫 + 例項組成
從概念上來看, 例項是暫時的,它不過是一組邏輯劃分的記憶體結構和程序結構,例項會隨著程序的關閉而關閉,但是資料庫不一樣,資料庫是一堆物理檔案,資料庫是永久存在磁碟上的(除非檔案損壞),資料庫和例項通常是一對一的,這種結構我們稱為單例項體系結構;段:
段就是包含所有資料的邏輯結構,表的最典型例子就是表,還有索引段,撤銷段等等
表空間:
表空間從邏輯上是多個段的結合,在物理上是多個資料檔案的集合,相當於在段和資料檔案的對應中加入了乙個中間層來解決這種多對多的關係
大體結構如下
資料庫 -> 例項 -> 表空間 - > 資料檔案
假設要開發乙個專案:建立表空間1. 建立表空間
2. 建立使用者 root
3. 使用者去建表
語法:
create tablespace 表空間的名稱
datafile 『存放的位置』
size 初始大小
autoextend on
next 每次增長多少
需要注意的是,需要登陸管理員賬號 system ,如果沒有切換的話,會報出以下錯誤
下面是我建表空間的語句
create tablespace shenzhen //專案名
datafile 'c:\shenzhen.dbf'
//oracle存放路徑
size 100m //初始大小 100兆
autoextend on //自動擴充套件,當記憶體不夠的時候
next 10m //每次擴充套件 10兆
-- 刪除表空間
drop tablespace shenzhen;
建立使用者(需要在system使用者賬號中執行)
create user zhangsan //賬號
identified by zs408 //密碼
default tablespace shenzhen; //管理的表空間
建立完使用者後不能立即使用,需要授權後才能使用,如果沒授權,會出現以下問題
角色級別
授權操作:
//給自己最大的許可權,體驗一把boss的感覺
grant dba to zhangsan;
授權了,才可以登陸我們原先建立的使用者
建立乙個表
基本型別
char(最大長度) : 固定長度字串
char(10) hello , 佔10個, 不滿10 用空格補滿
varchar2(最大長度) : 可變長度字串
varchar2(10) hello , 佔5個
number(總長度,小數字數)
date : 年月日時分秒
timestamp : 時間戳 , 精確到毫秒
long : 大字串型別, 最大支援儲存2g
clob : character large object 字串大物件 最大支援4g
blob : binary large object 二進位製大物件 4g (可放電影)
建表模板
create table demo(
name varchar2(10),
age number(10,2)
);
修改表
重定義列
alter table demo modify name number(10,2);
新增列
alter table demo add id number;
一次新增多列
alter table demo add (class number, cname varchar2(20));
刪除表
drop table demo;
以下語句跟mysql有一點小小的區別
修改列名
alter table demo rename column class to cid;
刪除列名
alter table demo drop column cid;
五大外來鍵約束,,,
create
table person(
pid number
primary
key,
name varchar2(20) unique,
age number
notnull,
*** varchar2(20) check(*** in('男','女','妖'))
);約束大概是
pid 唯一 非空
name 必須唯一
age 不能為空
*** 只能存 '男' '女' '妖'
如果插入資料違反了以上任何一條規則,都會匯入資料無法插入
-多表約束
foreign key 外來鍵約束
演示外來鍵約束前我們需要搭建環境,
建立倆個表,分別是主表 從表
主表create
table category(
cid number
primary
key,
cname varchar2(20)
);從表
create
table product(
pid number
primary
key,
pname varchar2(20),
cno number
);alter
table product add
foreign
key(cno) references category (cid);
外來鍵約束有什麼用我就不多說了,,找度娘把
本章就降講到這裡,撤退 吃飯 DDL語句(三) 表的管理
一 建立表 語法 create table if not exists 表名 欄位名 字段型別 約束 欄位名 字段型別 約束 欄位名 字段型別 約束 二 修改表 1 新增列 alter table 表名 add column 列名 型別 first after 欄位名 2 修改列的型別或約束 alt...
如何生成oracle表的ddl語句
有時候需要獲取指定表的ddl,開發人員經常會使用plsqldevolper去檢視表的定義,dba也可以使用dbms metadata.get ddl去查詢。但是這兩種方式只能看錶建表語句,乙個完整的表定義,至少要包括create table comment constraint index。此時可以...
DDL語句 刪除表
刪除表是指刪除資料庫中已經存在的表。刪除表時,會刪除表中的所有資料。因此,我們在刪除表的時候要特別小心。mysql中通過drop table語句來刪除表。由於建立表時可能存在外來鍵約束,一些表成為了與之關聯的表的父類。要刪除這些表,情況還有點複雜,因為不能直接刪除。ok,這篇部落格我在這裡詳細的整理...