• oracle练习题3


    create table preson( --创建preson表
    id number(18),
    name varchar2(100),
    sex varchar2(10),
    age number(3)
    )
    select * from preson;

    create table person_1( --创建person_1表
    id number(18),
    name varchar2(100),
    sex varchar2(10),
    age number(3)
    )
    drop table person_1

    alter table preson add(phone number(11),address varchar2(200)); --在表preson中添加两列和对应的类型长度
    select * from preson;

    alter table preson modify(address varchar2(1500)); --修改长度
    alter table preson rename column address to address_new; --修改address列名
    alter table preson drop column address_new; --删除address_new列
    alter table preson drop (age,phone); --删除age、phone两列
    /*drop table preson;*/ --删除preson表

    --约束:为了数据的实体完整性、参照完整性,避免脏数据
    --主键约束 primary key
    --外键约束 foreign key
    --非空约束 not null
    --唯一约束 unique
    --检查约束 check

    create table phone( --建一个父表
    id number(7),
    phonenum number(11),
    primary key(id), --主键
    unique(phonenum)); --唯一

    select * from phone;

    create table student1( --子表,表级别约束
    id number(9),
    name varchar2(30),
    sex varchar2(3),
    phone number(11),
    primary key(id), --主键
    check(sex in('m','f')), --检查
    foreign key(phone) references phone(phonenum) --外键、key(子表列) references 父表(父表列)
    );
    insert into phone values(1,13500010001); --主表增加数据
    insert into student1 values(1,'zhangsan','m','13500010001');--子表增加数据
    select * from phone;
    select * from student1;
    delete from student1; --删除子表1
    delete from phone; --删除主表

    create table student2( --子表2,列级别约束
    id number(9) primary key,
    name varchar2(30) not null,
    sex varchar2(3) check(sex in('m','f')),
    phone number(11) references phone(phonenum)
    );
    select * from student2;

    create table student3( --子表3,加约束名
    id number(9) constraints id_pk primary key, --约束名为 列_pk
    name varchar2(30) constraints name_nn not null,
    sex varchar2(3) constraints sex_ck check(sex in('m','f')),
    phone number(11) constraints phone_phonenum_fk references phone(phonenum) --约束名为 父表_父列_fk
    );
    select * from student3;

    select * from user_constraints; --查看所有的约束
    select * from user_constraints where table_name = 'STUDENT3';
    select * from user_constraints where table_name in('STUDENT2','STUDENT3');

    create table student4( --子表4
    id number(9),
    name varchar2(30),
    sex varchar2(3),
    phone number(11)
    );
    alter table student4 add /*constraint pk_id*/ primary key(id); --增加约束(约束名)
    alter table student4 modify name constraint nn_name not null;--非空约束-非空
    alter table student4 modify name constraint nn_name null; --非空约束-空
    alter table student4 add constraint uk_name unique(name); --唯一约束
    alter table student4 add constraint ck_sex check(sex in('m','f')); --检查约束-sex
    alter table student4 add age number(3) constraint ck_age check(age between 0 to 150);--增加age列\检查约束-age
    alter table student4 add constraint fk_student4_phone foreign key(phone) reference phone(phonenum);
    --外表约束,使用-表约束
    alter table 表名 drop constraint 约束名; --删除约束名,要以个个删

    select * from user_users;
    select * from all_user;

    create tablespace space1 --建表空间
    datefile 'D:\oracledate\space1.dbf' --储存路径
    size 100m autoextend on next 10m maxsize 200m --大小为100m,可变大小10m-200m
    extent management local; --本地现存管理地

    create temporary tablespace space1_temp --建临时表空间
    tempfile 'D:\oracledate\space1_temp.dbf'
    size 100m autoextend on next 10m maxsize 200m
    extent management local;

    create table t1(
    id number(7));
    tablespace space1;

    select * from user_tables where table_name = 'T1';
    alter table t1 move tablespace space1; --把表t1移动到space1表空间
    create table t1(id number(7));
    select * from user_tables where table_name in('T1','T2');--查看表所在的表空间

    drop tablespace space1
    including contents and datefiles
    cascade contraints; --(有的电脑需要去)表关联
    --在管理员用户里删除space1表空间的所有文件夹和数据

    drop tablespace space1_temp
    including contents and datefiles;
    --在管理员用户里删除临时space1_temp表空间的所有文件夹和数据

    create view V_emp --创建视图(要管理员给权限)
    as
    select /*sc.score,sc.cno*/* from sc;
    drop view V_emp; --删除视图

    create index first_name_idx on emp2(first_name);
    --创建索引,索引名为first_name_idx,表名(列名)

    select * from user_indxes where table_name = 'emp2';
    drop index first_name_idx; --删除名为first_name_idx的索引

    create table emp4( --建表emp4
    id number(10),
    userid varchar2(30)
    );

    create sequence emp4_seq --创建序列,序列名为emp4_seq
    increment by 1 --步长为1
    start with 1 --开始值为1
    maxvalue 9999999 --最大值为9999999
    minvalue 1 --最小值为1
    nocycle --不循环 (cycle循环,到最大值后开始循环)
    nocache; --不缓存 (cache n产生n个值放在缓存中,可以提高性能,不加cache时默认值为20)

    select * from user_sequences;
    select * from emp4;

    select emp4_seq.currval from emp4;
    insert into emp4 values(emp4_seq.nextval,'zhangsan');
    --调用nextval,序号加1。在emp4插入数据。‘ ’中超过字段,ID也会加一

    select seq_s_emp_id.currval from s_emp;
    insert into s_emp(id,last_name) values(seq_s_emp_id.nextval,'wangwau');
    drop sequence emp4_seq;--删除

    --使用sequence:通过nextval和currval进行调用
    --1.nextval:每次获得不同的sequence值,每调用一次,序列号+1
    --2.currval:获得当前指向的sequence值

    create table preson( --创建preson表
    id number(18),
    name varchar2(100),
    sex varchar2(10),
    age number(3)
    )
    select * from preson;
    
    create table person_1( --创建person_1表
    id number(18),
    name varchar2(100),
    sex varchar2(10),
    age number(3)
    )
    drop table person_1
    
    alter table preson add(phone number(11),address varchar2(200)); --在表preson中添加两列和对应的类型长度
    select * from preson;
    
    alter table preson modify(address varchar2(1500));  --修改长度
    alter table preson rename column address to address_new; --修改address列名
    alter table preson drop column address_new; --删除address_new列
    alter table preson drop (age,phone);  --删除age、phone两列
    /*drop table preson;*/ --删除preson表
    
    --约束:为了数据的实体完整性、参照完整性,避免脏数据
    --主键约束 primary key
    --外键约束 foreign key
    --非空约束 not null
    --唯一约束 unique
    --检查约束 check
    
    create table phone(  --建一个父表
    id number(7),       
    phonenum number(11),
    primary key(id),    --主键
    unique(phonenum));  --唯一
    
    select * from phone;
    
    create table student1(   --子表,表级别约束
    id number(9),
    name varchar2(30),
    sex varchar2(3),
    phone number(11),
    primary key(id),            --主键
    check(sex in('m','f')),     --检查
    foreign key(phone) references phone(phonenum) --外键、key(子表列) references 父表(父表列)
    );
    insert into phone values(1,13500010001); --主表增加数据
    insert into student1 values(1,'zhangsan','m','13500010001');--子表增加数据
    select * from phone;
    select * from student1;
    delete from student1;  --删除子表1
    delete from phone;     --删除主表
    
    create table student2(  --子表2,列级别约束
    id number(9) primary key,
    name varchar2(30) not null,
    sex varchar2(3) check(sex in('m','f')),
    phone number(11) references phone(phonenum)
    );
    select * from student2;
    
    create table student3(  --子表3,加约束名
    id number(9) constraints id_pk primary key,  --约束名为 列_pk
    name varchar2(30) constraints name_nn not null,
    sex varchar2(3) constraints sex_ck check(sex in('m','f')),
    phone number(11) constraints phone_phonenum_fk references phone(phonenum)  --约束名为 父表_父列_fk
    );
    select * from student3;
    
    select * from user_constraints;  --查看所有的约束
    select * from user_constraints where table_name = 'STUDENT3';
    select * from user_constraints where table_name in('STUDENT2','STUDENT3');
    
    create table student4(  --子表4
    id number(9),
    name varchar2(30),
    sex varchar2(3),
    phone number(11)
    );
    alter table student4 add /*constraint pk_id*/ primary key(id); --增加约束(约束名)
    alter table student4 modify name constraint nn_name not null;--非空约束-非空
    alter table student4 modify name constraint nn_name null;    --非空约束-空
    alter table student4 add constraint uk_name unique(name);    --唯一约束
    alter table student4 add constraint ck_sex check(sex in('m','f'));   --检查约束-sex
    alter table student4 add age number(3) constraint ck_age check(age between 0 to 150);--增加age列\检查约束-age
    alter table student4 add constraint fk_student4_phone foreign key(phone) reference phone(phonenum);
    --外表约束,使用-表约束
    alter table 表名 drop constraint 约束名; --删除约束名,要以个个删
    
    select * from user_users;
    select * from all_user;
    
    create tablespace space1    --建表空间
    datefile 'D:\oracledate\space1.dbf'    --储存路径
    size 100m autoextend on next 10m maxsize 200m    --大小为100m,可变大小10m-200m
    extent management local;  --本地现存管理地
    
    create temporary tablespace space1_temp  --建临时表空间
    tempfile 'D:\oracledate\space1_temp.dbf'
    size 100m autoextend on next 10m maxsize 200m
    extent management local;
    
    create table t1(
    id number(7));
    tablespace space1;
    
    select * from user_tables where table_name = 'T1';
    alter table t1 move tablespace space1; --把表t1移动到space1表空间
    create table t1(id number(7));     
    select * from user_tables where table_name in('T1','T2');--查看表所在的表空间
    
    drop tablespace space1
    including contents and datefiles 
    cascade contraints; --(有的电脑需要去)表关联
    --在管理员用户里删除space1表空间的所有文件夹和数据
    
    drop tablespace space1_temp
    including contents and datefiles;
    --在管理员用户里删除临时space1_temp表空间的所有文件夹和数据
    
    create view V_emp  --创建视图(要管理员给权限)
    as
    select /*sc.score,sc.cno*/* from  sc;
    drop view V_emp;  --删除视图
    
    create index first_name_idx on emp2(first_name);
    --创建索引,索引名为first_name_idx,表名(列名)
    
    select * from user_indxes where table_name = 'emp2';
    drop index first_name_idx; --删除名为first_name_idx的索引
    
    create table emp4( --建表emp4
    id number(10),
    userid varchar2(30)
    );
    
    create sequence emp4_seq   --创建序列,序列名为emp4_seq
    increment by 1             --步长为1
    start with 1               --开始值为1
    maxvalue 9999999           --最大值为9999999
    minvalue 1                 --最小值为1
    nocycle         --不循环  (cycle循环,到最大值后开始循环)
    nocache;        --不缓存  (cache n产生n个值放在缓存中,可以提高性能,不加cache时默认值为20)
    
    select * from user_sequences;
    select * from emp4;
    
    select emp4_seq.currval from emp4;
    insert into emp4 values(emp4_seq.nextval,'zhangsan');
    --调用nextval,序号加1。在emp4插入数据。‘ ’中超过字段,ID也会加一
    
    select seq_s_emp_id.currval from s_emp;
    insert into s_emp(id,last_name) values(seq_s_emp_id.nextval,'wangwau');
    drop sequence emp4_seq;--删除
    
    --使用sequence:通过nextval和currval进行调用
    --1.nextval:每次获得不同的sequence值,每调用一次,序列号+1
    --2.currval:获得当前指向的sequence值
    

      

    存笔记

  • 相关阅读:
    I hate it [HDU 1754]
    K Besk [POJ 3111]
    Little Pony and Alohomora Part 3 [HihoCoder 1075]
    Shuffle 洗牌 [AHOI 2005]
    Qt打包程序
    linux用户相关命令介绍_用户密码与用户组相关命令_yum软件包相关_编译安装
    find查找条件_find处理动作_正则表达式_linux压缩命令_tar追加文件
    linux文本相关工具_文件权限相关_vim命令介绍_vim帮助信息
    linux目录介绍_目录命令介绍_文件增删改查_输入和输出
    linux系统命令linux命令介绍_bash特性_基础命令介绍
  • 原文地址:https://www.cnblogs.com/yuntimer/p/15902461.html
Copyright © 2020-2023  润新知