ORACLE学习笔记3

表及完整性定义
1. 创建表
        语法: create table scott.temp(
                    empon number(5) primary key,                --主键
                    ename varchar2(15) nou null,                --非空
                    job varchar2(20),                       
                    mrg number(5),       
                    hireDate date default sysdate,              --缺省命令 
                    Sal number(7,2) check(sal>100),             --约束条件  
                    Comm number(3) default 0.0,               
                    dept number constraint ,                    --列约束
                    dept_fkey references scott.yrmp             --外键关联  
                )
                Tablespace users                                --指定其表空间 如果不指定,那么就使用缺省的表空间 SYSTEM
                PCTFREE 10                                      --用与数据块更新的百分比,在1-99之间   假设为0,那么需要在该数据库满了之后才使用新的数据块。
                PCTUSED 70                                      --表示数据块保留空间的最小百分比,在1-99之间。默认是40   PCTFREE && PCTUSED决定了在添加数据时,是放入新数据块,还是旧数据块。
                INITRANS 1                                      --指定一个数据块中分配的数据库事务的入口 缺省情况是1
                MAXTRANS 255                                    --表数据块最大的事务并发数,一般不修改
                STORAGE(
                        INITIAL 50k                             --表的初始化大小
                        NEXT    50k                             --下一次扩展的大小
                        MINEXTENTS 1                            --最小分配次数
                        MAXEXTENTS 10                           --最大分配次数    这里我们可以设置为unlimited
                        PCTINCREASE 10                          --增长百分比       
                );

                comment on table scott.temp is  '测试表'        --为表添加注释
                comment on column scott.job is '工作'           --为列添加注释

2. 修改表结构
        alter table ep_message
                ADD  pp number(3);                             --添加列
                DROP COLUMN pp                                  --删除列
                MODIFY
                DROP CONSTRAINT constraint
3. 创建一个不需要修复的表
                create table test as select * from ep_message  unrecoverables;
                 create table test as select * from ep_message  nologging;        --建议使用一下两种
                 create table test as select * from ep_message  logging;    
4.删除表
        drop table table_name cascade constraint                               
                加上cascade constraint 表示所有指向本表的主键,外键被删除。
5. 主键与唯一索引的区别
        唯一索引用create unique index 建立,在数据字典中建立唯一的索引名字,用于表示表中某一行的关键字
        主键使用primary key 来创建,在数据字典中建立唯一的索引名字,用与表示表中某一行的关键字
6. 修改ORACLE用户的密码
        在10g以后用默认用户名密码scott/tiger/orcl登陆创建新用户:

create user test1 identified by test1;
grant connect,resource to test1;

主键外键等的建立和删除:
         alter table con_productinfohead
                drop constraint PK_PROD  
        alter table con_productinfohead
                add constraint PK_PROD_CONTENTID_STATUS primary key(contentid,STATUS)

用test1登陆:

sqlplus test1/test1

首先用管理员的帐户登录(要有修改用户的权限)system

alter user ccp identified by outletccp; (sys是用户名,123是密码)

如果用sys登录:

connect sys/oralce as sysdba;

用system登录:

connect system/oracle;

7.表的权限设置
        建立表空间 create tablespace srs datafile  '/data/ora_data/ivas/ivas_data/srs_01.dbf' size 3000m autoextend on next 128m maxsize 30000m ;
        临时表空间 create tablespace srs_idx datafile  '/data/ora_data/ivas/ivas_data/srs_idx_01.dbf' size 512m autoextend on next 128m maxsize 5120m ;
        建立用户   create user srs identified by srs default tablespace srs Temporary tablespace temp_ivas ;
        给用户赋权限 grant select any sequence, connect, resource, select any table to srs; 给srs用户访问sequencce 等权限
        把表的访问权限赋给其他用户 grant select,delete,update,insert on srs.USER_COUNT_TEMP to sp;
        给用户赋存储过程的权限 GRANT EXECUTE ANY PROCEDURE TO  SSO
                给视图赋权限和表相同;

           
  存在 xzm_test m表  xzy_test y表 两表
右连接就是 对M和Y两表进行匹配,但是对于M表不能匹配上的数据也列出来
也就是说列出M表的所有数据,不能匹配上的就是空NULL表示

select m.name,m.age,y.name,y.age from xzm_test m,xzy_test y where m.age=y.age(+);


NAME              AGE NAME              AGE
---------- ---------- ---------- ----------
xzy                23
xzm1               25 xzm2               25
xzm2               26         
              
                    
       

你可能感兴趣的:(数据结构,oracle,工作,SSO)