Oracle第四课课后作业

Oracle第四课课后作业

一、DQL操作

  1. 按照emp表中的入职时间降序查询

    SELECT * FROM emp e ORDER BY e.hiredate DESC;
  2. 获取emp表中的所有职位信息,不要重复显示

    SELECT DISTINCT job FROM emp;
  3. 显示每个员工的sal增加500后的信息

    SELECT ename,sal 原工资,sal+500 现工资 FROM emp;
  4. JavaScript中找出数组重复的元素

    [10,9,3,7,2,8,4,5,7,9],找出9和7

    <script>
    var arr=[10,9,3,7,2,8,4,5,7,9];
    arr.sort();
    for(i=1;i<=arr.length;i++)
       if(arr[i]==arr[i-1])
          console.log(arr[i]);
    </script>

二、DDL(data definition language):数据定义语言

  • 关键词

    create(创建),alter(修改),drop(销毁)
  • 操作的对象

    • 表空间

      -- 授予管理员权限
      grant dba to user_test;
      -- 授予创建表空间的权限
      grant create tablespace to user_test;
      -- 创建表空间
      create tablespace sp1 datafile 'sp1.dbf' size 1m;
      -- 创建临时表空间
      create temporary tablespace tsp1 tempfile 'tsp1.dbf' size 2m;
      -- 创建用户时指定表空间和临时表空间
      create user user_test identified by user_test default tablespace sp1 temporary tablespace tsp1;
      -- 授予删除表空间权限
      grant drop tablespace to user_test;
      -- 删除表空间
      drop tablespace sp1 including contents and datafiles;
      -- 删除临时表空间
      drop tablespace tsp1 including contents and datafiles;
      -- 授予扩大表空间的权限
      grant alter database to user_test;
      -- 扩大表空间
      alter database datafile 'sp1.dbf' resize 2m;
      -- 授予在表空间增加数据文件的权限
      grant alter tablespace to user_test;
      -- 增加数据文件
      alter tablespacesp1 add datafile 'sp1_2.dbf' size 1m;
      • 数据类型

        number:数字类型
        integer:整数
        char:定长字符串
        varchar:变长字符串
        timestamp:时间戳
        blob:二进制数据
        clob:放大量的字符数据
        bfile:二进制文件
      • 对表的操作

        -- 创建表
        create table t1(id number);
        -- 增加一列
        alter table t1 add name char(4);
        -- 修改列的宽度
        alter table t1 modify name char(5);
        -- 删除一列
        alter table t1 drop column age;
        -- 增加系统默认名字的主键约束
        alter table t1 add primary key(id);
        -- 增加自己命名的主键约束
        alter table t1 add constraint t1_pk primary key(id);
        -- 删除主键
        alter table t1 drop primary key;
        -- 删除指定约束的主键
        alter table t1 drop constraint t1_pk;
        -- 增加唯一约束
        alter table t1 add constraint t1_uk unique(name);
        -- 增加默认约束
        alter table t1 modify age default 18;
        -- 增加检查约束
        alter table t1 add constraint t1_sex check(sex = 0 or sex = 1);
        -- 增加外键约束
        (什么都不写相当于no action,当子表有关联时删除父表记录会报错)
        alter table t1 add constraint t1_fk foreign key(clazz) references t_clazz(id);
        (设置为set null,删除父表记录时,把子表相应外键置为空)
        alter table t1 add constraint t1_fk foreign key(clazz) references t_clazz(id) on delete set null;
        (设置为cascade级联删除,删除父表时,子表相应的记录也会被删除)
        alter table t1 add constraint t1_fk foreign key(clazz) references t_clazz(id) on delete cascade;
        -- 删除外键约束
        alter table t1 drop constraint
        -- 删除表
        drop table t1;
        truncate table t1;

三、DML(data manipulation lanuage)数据操纵语言

  • 关键词

    insert(插入),delete(删除),update(修改)
  • 对表中的数据进行操作

    -- 插入数据
    -- 不指定添加的字段
    insert into t_clazz values(1,'name1','');
    -- 指定添加的字段
    insert into t1(id,name,age,sex,clazz) values(3,'name1',10,0,1);
    -- 修改
    -- 修改所有记录
    update t_clazz set name='新名称';
    -- 修改指定记录
    update t_clazz set name='新名称1' where id=1;
    -- 删除
    delete from t_clazz where id=1;

四、DQL(data query language)数据查询语言

  • 关键词

    select
  • 查询表中的信息

    -- 查询当前用户下所有表的信息
    select * from user_tables t;
    -- 查询当前表的所有字段信息
    select * from user_tab_columns where table_name='T_CLAZZ';
    -- 给表起别名
    as 或者是空格
    select sal,empno,ename,sal+100 sal2 from emp;
    -- 判断字段是否为空
    select sal from emp where sal is null;
    -- where过滤
    select empno,ename,sal from emp where sal>=3000;
    -- distinct去重
    -- 查询部门里有员工的部门号
    select distinct deptno from emp;
    -- distinct对后面的字段都进行过滤
    select distinct deptno,sal from emp;
    -- 排序,升序asc,降序desc
    -- 默认为升序
    select * from emp order by sal;
    -- 部门升序,部门中的员工工资降序
    select * from emp order by deptno asc,sal desc;

五、truncate,drop,delete三个的区别

  1. truncate和drop属于DDL,针对的是表,delete属于DML,针对的是表中的数据

  2. delete删除后不会释放空间,可以恢复数据,truncate和drop都会释放空间,不能恢复,truncate只删除表里的内容,drop删除的是全部,表上的所有对象都会删除掉

  3. 有害化排序:delete->truncate->drop



posted @ 2021-01-18 15:37  若你  阅读(52)  评论(0)    收藏  举报