zoukankan      html  css  js  c++  java
  • Oracle第四课

    Oracle第四课

    一、plsql操作

    1. 免密登录

      tools->preferences->logon history->fexed users->user21/user21
    2. 关键字转大写

      tools->preferences->Editor->keywords->uppercase
    3. view查看表结构,edit修改表结构

    4. query data 查看表里的记录,edit data修改表里的记录

    二、外键约束

    1. 外键,第三范式,别的表中

    2. 创建一个班级表

      CREATE TABLE t_clazz(
      ID number PRIMARY KEY,
      name varchar(20) NOT NULL,
      remark varchar(50));
    3. 给t1表增加班级这一列

      ALTER TABLE t1 ADD clazz NUMBER;
    4. 给t1表增加外键,参照班级表的id

      -- 外键什么都不写(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;
    5. 删除外键约束

      ALTER TABLE t1 DROP CONSTRAINT t1_fk;

    三、truncate

    1. 作用:截断表,删除表中的数据,但是保留表的结构和索引、触发器等对象

    2. delete删除表中的记录,对表也没有影响(DML)

    3. truncate(DDL),类似于drop table,然后再create table,假设truncate命令执行后,后台drop表,然后再create表,对于客户感觉不到

    四、DML(数据操作语言,增删改)

    1. 插入

      -- insert不写列时,指定的值的顺序一定要和表结构中的列的顺序保持一致

      insert into 表名(列1,列2,...) values(值1,值2,...);
      -- 向班级表中添加数据
      INSERT INTO t_clazz VALUES(1,'name1','');
      -- 向t1表中添加数据
      INSERT INTO t1(id,NAME,age,sex,clazz) VALUES(3,'name1',10,0,1);
    2. 修改

      -- set后面是要修改的条件

      -- 把所有记录都修改
      UPDATE t_clazz SET NAME='新名称';
      -- 把id为1的记录修改
      UPDATE t_clazz SET NAME='新名称1' WHERE ID=1;
    3. 删除

      DELETE FROM t_clazz WHERE ID=1;

      -- delete针对表中的数据,trunicate针对表对象的

      -- delete不会释放空间,truncate会释放空间

      -- delete可以恢复数据,truncate不可以恢复

      -- drop释放空间,表上的所有对象都丢失了,truncate不会丢失表上的对象

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

    五、DQL(数据查询语言)

    1. sys登录

      • 账号:sys 密码:orcl

    2. 获取当前用户下所有的表的信息

      SELECT * FROM User_Tables t;
    3. 获取当前表的所有字段信息

      SELECT * FROM User_Tab_Columns WHERE table_name='T_CLAZZ';
    4. 给表起别名

      as 或者是空格
      SELECT sal,empno,ename,sal+100 sal2,comm,sal+comm money FROM emp;
    5. scott是Oracle一个测试账号,默认是锁定,要解锁,解锁完了要修改密码(强制)

      -- scott下面有几张表,供测试使用

      -- 以sysdba登录
      sqlplus / as sysdba
      -- 解锁scott账号
      alter user scott account unlock;
      -- 修改scott密码
      alter user scott identified by scott;
      -- 登录scott账号
      sqlplus scott/scott
    6. 查询空或者非空

      SELECT SAL FROM emp WHERE SAL IS NULL;
    7. where过滤

      -- 查询工资大于3000的员工
      SELECT empno,ename,sal FROM emp WHERE sal>=3000;
    8. 去重

      -- 查询部门里面有人的部门号
      SELECT DISTINCT deptno FROM emp;
      -- distinct对后面的字段都进行过滤
      SELECT DISTINCT deptno,sal FROM emp;
    9. 排序

      -- 升序ASC,降序DESC
      SELECT * FROM emp ORDER BY sal;
      SELECT * FROM emp ORDER BY sal;
      -- 部门升序,部门中的员工工资降序
      SELECT * FROM emp ORDER BY deptno ASC,sal DESC;

    六、作业

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

    2. 获取emp表中的所有职位信息,不要重复显示

    3. 显示每个员工的sal增加500后的信息

    4. JavaScript中找出数组重复的元素

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



    软件下载提取码:qwer
  • 相关阅读:
    多数据源报表解析之简单多源报表
    8.5.4 Optimizing InnoDB Redo Logging 优化InnoDB Redo Logging
    8.5.2 Optimizing InnoDB Transaction Management
    8.5.1 Optimizing Storage Layout for InnoDB Tables
    Linux_RHEL7_YUM
    Linux_RHEL7_YUM
    Python基本语法_函数_返回值
    Python基本语法_函数_返回值
    8.4 Optimizing Database Structure 优化数据库结构
    8.3.7 InnoDB and MyISAM Index Statistics Collection InnoDB 和MyISAM 索引统计信息收集
  • 原文地址:https://www.cnblogs.com/ty0910/p/14292100.html
Copyright © 2011-2022 走看看