<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    oracle_基礎知識整理

    用戶

    一:系統用戶:
    1:sys,system,sys的權限大于system
    2:sysman
    3:scott,默認密碼:tiger
    使用自帶sql/plus登陸,格式:[username/psaaword] @服務名 as 角色[sysdba/sysoper]

    二:用戶的切換
    當在sql/plus中登錄之后,使用connect 用戶名/密碼 來切換用戶

    三:查看當前用戶
    show user,命令語句可以不添加分號,之后會顯示當前已登錄的用戶信息,除了這種方式,還可以使用數據庫自帶的數據字典來查看信息
    *數據字典就是數據庫自帶的表,可以直接查看結構和數據
    dba_users和user_users,查看系統用戶

    scott用戶
    默認情況下是被鎖定的,啟用用戶
    alter user 用戶名 account unlock


    表空間
    表空間就是數據庫存放數據的邏輯區域

    類型:
    永久表空間:一般存放表,視圖等持久內容
    臨時表空間:存放數據庫執行過程中的臨時操作
    UNDO表空間:存放歷史數據,一般存放事物提交之前的歷史數據

    數據字典
    dba_tablespaces或者user_tablespaces
    前者對應系統管理員級別用戶的表空間,后者對應一般用戶的表空間,查看用戶的默認表空間
    需要在dba_users或者user_users表中查看

    修改表空間
    alter user 用戶名 default/temporary tablespaces 新的表空間名

    創建表空間
    永久表空間 create [TEMPORARY] tablespace 表空間名 datafile ‘文件名’ size XX
    默認創建永久表空間,添加[TEMPORARY]選項,則會生成臨時表空間
    示例:創建永久表空間create tablespace test_p1 datafile ‘test_p1.dbf’ size 10M
    示例:創建臨時表空間create TEMPORARY tablespace test_t1 datafile ‘test_t1.dbf’ size 10M

    查看永久表空間
    數據字典dba_data_files,查看數據文件

    查看臨時表空間
    數據字典dba_temp_files,查看數據文件

    修改表空間狀態
    狀態:聯機/脫機,聯機是默認狀態,脫機狀態的表空間不可以使用
    alter tablespace 表空間名 online/offline
    可以通過dba_tablespaces或者user_tablespaces數據字典的status字段確認表空間狀態
    狀態:只讀/讀寫,默認是可以讀寫,要修改可以該狀態,該表空間必須處于聯機狀態
    alter tablespace 表空間名 read only/read write

    修改數據文件
    在表空間中添加/刪除數據文件
    alter tablespace 表空間名 add/drop datafile ‘文件名’ [size XX]

    刪除表空間
    drop tablespace 表空間名,該選項只是刪除表空間,如果需要同時刪除表空間包含的文件,
    那么需要在命令最后添加inculding contents


    數據表
    數據類型

    1:字符型
    char(n):固定長度,最長2000
    nchar(n):固定長度,按照unicode編碼存放,最長1000,適用于存儲漢字
    varchar2(2):變長字符類型,節省空間,最長4000
    nvarchar2(2):變長字符類型,節省空間,支持unicode,最長2000

    2:數據型
    number(p,s):p代表有效數字,s代表小數位數
    s可正可負
    float(n):主要存儲二進制數字

    3;日期類型
    date:精確到秒,已經基本滿足日常使用
    timestamp:精確到小數秒

    4:其他
    blob:存放4G數據,以二進制形式存儲
    clob,存放4G數據,以字符串形式存儲
    對表的基本操作

    創建表
    基本語法:
    create table 表名
    (
    列名 數據類型,…
    )

    修改表
    1:添加字段
    語法
    alter table 表名 add 字段名 數據類型
    示例
    alter table user add cellphone number(11,0)

    2:修改字段類型(修改時表中不可以存放數據)
    語法
    alter table 表名 modify 字段名 數據類型
    alter table user modify cellphone char(11)

    3:刪除字段
    語法
    alter table 表名 drop column 字段名

    4:修改字段名
    語法
    alter table 表名 rename column 舊字段名 to 新字段名
    5:修改表名
    語法
    rename 舊表名 to 新表名

    5:刪除表
    刪除表數據(截斷一個表)
    truncate table 表名
    刪除表結構連同其數據
    drop table 表名

    操作表中的數據
    1:新增記錄
    insert into 表名(列名1,列名2,列名3…) values(值1,值2,值3…)
    列名和值需要一一對應,如果不寫列名,那么代表為所有字段添加值
    *sysdate關鍵字,代表當前日期
    *插入字符串的時候,需要添加單引號

    2:設定默認值
    在創建表的時候,可以為指定字段設定默認的值
    create table 表名
    (
    id number(6,0),
    reg_date date default sysdate
    )

    3:修改默認值
    alter table user modify cellphone default ”;

    4:復制表
    1):創建表時就復制,復制結構和數據
    create table 新建表表名 as select 列1,列2…|* from 所要復制表的表名
    2):在新增時添加來自其他表的內容
    insert into 表名(列1,列2…) select 列1,列2…|* from 所要復制表的表名
    和新增一條記錄類似,但是values關鍵字被替換成目標表的列,數據來源不是手動指定,而是來自其他表

    5:修改表數據
    update 表名 set 列1=值1,列2=值2… [where 條件…]
    無條件更新,也就是全表更新
    update user set username=’new_name’(更新的時候要注意,列和值的類型要匹配,全表更細是有風險的操作,謹慎操作)
    有條件更新
    update user set username=’other_name’ where id=123456

    6:刪除表數據
    delete from 表名 [where 條件…]
    無條件刪除
    delete from user(刪除全表數據,但是效率上不如truncate操作快)
    條件刪除
    delete from user where id=123456


    約束
    作用:來定義記錄中數據的規則,哪些字段必須輸入,字段的內容。以此來保持數據的完整性

    1:非空約束
    創建表時添加該約束
    create table 表名
    (
    id number(6,0) NOT NULL,
    )
    *只能在列級設置,不能在表級設置,并且非空約束是沒有約束名稱
    修改表的約束
    alter table 表名 modify 列名 類型 NOT NULL,但是如果表中的數據存在違反非空約束的記錄,那么會修改失敗
    去除非空約束
    alter table 表名 modify 列名 類型 NULL

    2:主鍵約束
    主鍵約束:確保記錄在表中的唯一性,主鍵可以由一個或者多個字段組成,并且一個表中只能有一個主鍵約束

    創建表時添加該約束,列級
    create table 表名
    (
    id number(6,0) PRIMARY KEY,
    );

    創建表示添加該約束,表級
    create table 表名
    (
    id number(6,0),
    username varchar2(50),
    constraint pk primary key(id,username)
    );
    *使用一個字段作為主鍵無需指定主鍵的名字,而多個主鍵需要指定主鍵的名稱

    查看約束
    用到了一個數據字典user_constraint
    select constraint_name from user_constraint where table_name=’XXX’
    在修改表時添加該約束
    alter table 表名 add constraint 主鍵名 primary key(指定為主鍵的列)
    修改約束名稱
    alter table 表名 rename constraint 舊名字 to 新名字

    3:外鍵約束
    創建表的時候添加外鍵關聯,列級
    create table 表名(從表)
    (
    id number(6,0) primary key,
    username varchar2(50),
    type_id varchar2(5) references 表名(主表)(主表字段,只能是主鍵)
    )
    或者,表級
    create table 表名(從表)
    (
    id number(6,0) primary key,
    username varchar2(50),
    constraint 外鍵名 foreign key(從表外鍵列名) reference 主表名(主表列名)[ON DELETE CASCADE],可選項是級聯刪除,主表記錄刪除,從表相應記錄也會被刪除)
    *外鍵只能來自主表的主鍵(或者是null),并且類型必須一致

    在修改時添加外鍵約束
    alter table user add constraint fk_id foreign key(id) references user_info(id)[ON DELETE CASCADE]

    4:唯一約束
    作用:保證字段值的唯一性
    和主鍵的區別:允許空值,允許有多個
    創建表的時候添加唯一約束,列級
    create table 表名(從表)
    (
    id number(6,0) primary key,
    username varchar2(50),
    type_id varchar2(5) UNIQUE
    )
    或者,表級
    create table 表名
    (
    id number(6,0) primary key,
    username varchar2(50),
    constraint 唯一約束名 unique(列名);
    )
    *每個唯一約束都有自己的名字,不可以聯合多個字段設置唯一約束

    在修改表時添加唯一約束
    alter table 表名 add constraint 約束名 unique(id )

    5:檢查約束
    作用:限制數據的錄入,同一個表中可以存在多個
    create table 表名,列級
    (
    id number(6,0) primary key,
    username varchar2(50),
    age number(3,0) check(age >0)
    )
    或者,表級
    create table 表名
    (
    id number(6,0) primary key,
    username varchar2(50),
    age number(3,0),
    constraint 檢查約束名 check(age >0);
    )
    在修改表時添加檢查約束
    alter table 表名 add constraint 約束名 check(salary>0)

    6:禁用/啟用和刪除約束的方法
    啟用/禁用約束
    alter table 表名 disable|enable constraint 約束名

    7:刪除約束
    1:
    alter table 表名 drop constraint 約束名
    2:
    alter table 表名 drop primary key[cascade] 約束名,添加可選項,連同外鍵的級聯刪除

    posted on 2015-07-28 11:04 都較瘦 閱讀(160) 評論(0)  編輯  收藏 所屬分類: Oracle相關問題積累

    <2015年7月>
    2829301234
    567891011
    12131415161718
    19202122232425
    2627282930311
    2345678

    導航

    統計

    公告

    博客定位:囿于目前的水平,博客定位在記錄自己的學習心得和隨手的練習

    常用鏈接

    留言簿

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲欧洲一区二区三区| 91精品啪在线观看国产线免费| 免费做爰猛烈吃奶摸视频在线观看| 亚洲精华国产精华精华液好用| 亚洲国产精品久久久久秋霞小| 久久精品免费一区二区喷潮| 亚洲乱码无限2021芒果| 波多野结衣在线免费观看| 国产片免费在线观看| 亚洲av中文无码乱人伦在线播放| 久久国产福利免费| 99久久国产热无码精品免费| 亚洲国产成AV人天堂无码| 日韩欧美一区二区三区免费观看| 国产亚洲sss在线播放| 女人18一级毛片免费观看| 精品久久久久亚洲| 四虎成人精品永久免费AV| 国产成人免费片在线观看| 边摸边吃奶边做爽免费视频网站| 亚洲国产人成精品| a成人毛片免费观看| 一级毛片免费毛片一级毛片免费 | 国产精品成人69XXX免费视频| 日本免费一区二区在线观看| 亚洲国产精品成人精品小说| 在线A级毛片无码免费真人| 青娱乐在线视频免费观看| 亚洲日韩激情无码一区| 最近免费中文字幕mv电影| 亚洲中文字幕一区精品自拍| 久久免费看少妇高潮V片特黄| 亚洲国产成人精品青青草原| 四虎永久免费影院| 国产精品高清视亚洲一区二区| 无码AV片在线观看免费| 亚洲a级片在线观看| 免费h成人黄漫画嘿咻破解版| 国产精品99精品久久免费| 国产成人精品日本亚洲专| 区三区激情福利综合中文字幕在线一区亚洲视频1 |