传智播客java学习--sql对象

本文介绍了Oracle数据库中表的基本操作,包括修改表结构、添加和删除列、约束的使用等,并详细解释了数据字典、索引、视图、同义词、序列和存储过程的概念及应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我今天学习了Oracle数据库如何修改表的知识,是冯威老师讲的课,我做了简单的记录:

1.在表中插入新的列:
  alter table tablename
  add city varchar(2) default 'rr' //赋默认值

2.修改表中的列:
  alter table tablename
  modify city varchar(20)

3.删除表中的列:
  alter table tablename
  drop column city
 
4.删除表的内容:
  TRUNCATE TABLE tablename
  它可以清除表中所有的记录,delete可以选择删除表中的一部分
  它是DDL语句,不可以回滚,delete可以使用rollback回滚,放弃修改。
  他可以释放表的存储空间,delete不释放空间

5.删除表的语句:这个删除操作不能回滚
  drop table tablename

6.改变对象的名称:
  使用RENAME语句改变对象名称,可以修改表、视图、序列或者同义词的名称
  RENAME old_name TO new_name;

**************************************************************

1.在Oracle数据库中的表:
  用户表:
     被用户创建和维护的一些表
     包括了用户自己的信息
  数据字典表:
     被Oracle数据库创建和维护的一些表
     包括了数据库的信息

2.数据字典:
  是每个Oracle数据库的核心
  用于描述数据库和它的所有对象
  包括了只读的表和视图
  被 SYS用户拥有
  被 Oracle server维护
  用户可以使用 SELECT访问

3.查询用户下所有的表:
  select * from user_name

4.查询当前用户下表中的列:
  select table_name ,column_name from user_tab_columuns

5.查询当前用户下dept表中的列:
   
6.约束:对表中的数据限制。

7:Oracle 支持下面五类完整性约束:
     1、NOT NULL 非空
     2、UNIQUE Key 唯一键
     3、PRIMARY KEY 主键
     4、FOREIGN KEY 外键
     5、CHECK  检察

8.约束:
  区分列级约束和表级约束:
  列级约束:在建表的同时创建
  表级约束:建表后创建

9.非空约束(NOT NULL):确保字段值不允许为空

10.查看表的约束:select * from user_constraints

11.唯一性约束(UNIQUE):唯一性约束条件确保所在的字段或者字段组合不出现   重复值,唯一性约束条件的字段允许出现(1或多个)空值

12.主键约束( PRIMARY KEY):
  主键从功能上看相当于非空且唯一,一个表中只允许一个主键,Oracle为主键  创建对应的唯一性索引;
  创建主键,constraint pk primary key (employees_id)

13.联合主键:如学生的课程号和学生学号构成联合主键;

14.外键约束( FOREIGN KEY):
  外键约束条件参照的是主表的一个或者多个字段的值,通常被外键参照的是主  表的主键或者唯一键,
  当表存在是只能在表的外部定义外键约束;
  alter table dept02
  add constraint pk01 foreign key(dept_id),references dept(dept_id)
  *****外键可以是构建于一个表的两个字段,

15.CHECK 约束
  Check约束条件是一种比较特殊的约束条件,通过check定义,强制定义在字段    上的每一记录都要满足check中定义的条件。
 
16.删除约束:删除约束条件对于表和数据不会产生影响
   ALTER TABLE  employees
   DROP CONSTRAINT  emp_manager_fk;

17.索引:
  索引是:方案(schema)中的一个数据库对象,在 Oracle数据库中用来加速对  表的查询,通过使用快速路径访问方法快速定位数据,减少了磁盘的I/O
  与表独立存放,由 Oracle数据库自动维护

18.创建索引:
  自动: 当在表上定义一个PRIMARY KEY 或者UNIQUE 约束条件时,Oracle数据库       自动创建一个对应的唯一索引.
  手动: 用户可以创建索引以加速查询.CREATE INDEX index
                                   ON table (column[, column]...);

19.删除索引:
   drop index index_emp01

20.查询索引:
 select * from user_indexs

21.视图:
  视图也就是虚表,实际上视图就是一个命名的查询,用于改变基表数据的显示。

22.创建视图:
  实际上是给sql语句起一个别名,在查询时,不需要再写完全的Select查询语句    ,只需要简单的写上从视图中查询的语句就可以了,

   CREATE VIEW  emp_v_10
   AS SELECT  employee_id ID, last_name NAME,
            salary*12 ANN_SALARY
    FROM    employees
    WHERE   department_id = 10;

   ***查询视图:
   select * from emp_v_10
   ***修改视图:
   CREATE OR REPLACE VIEW emp_v_10
   AS SELECT  employee_id ID, last_name NAME,
   salary*12 ANN_SALARY
   FROM    employees
   WHERE   department_id = 20;

22.禁止对视图进行DML操作:
  CREATE VIEW  emp_v_10
  AS SELECT  employee_id ID, last_name NAME,
            salary*12 ANN_SALARY
  FROM    employees
  WHERE   department_id = 10
  with read only  --只读

23.删除视图:删掉视图不会导致数据的丢失,因为视图是基于数据库的表之上的    一个查询定义.
  drop view emp_v_10

24.行内视图
  行内视图是在SQL语句中使用的一个带有别名的子查询.
  在主查询FROM 子句中的子查询就是行内视图.

25.Top-N 分析  ********必须掌握******
  使用Top-N分析法可以得到某列上最什么的前n个值,
  1、使用了rownum这个伪列,这个伪列将会返回行号,可以作为返回记录的序列  号显示。
  2、在from后面使用了子查询,这是标准的行内视图的使用。
  3、在子查询中使用了order by进行排序,在前面的子查询中不需要使用。
  4、在主查询中通过where条件中的rownum伪列定义过滤条件,只返回最什么的前  几行数据。

    例如:  显示EMPLOYEES表中薪水最高的前三个雇员信息
       求薪水在第二和第三的:
       select emp_id  from(
       SELECT ROWNUM as RANK, last_name, salary
       FROM  (SELECT last_name,salary FROM employees
       ORDER BY salary DESC)
       WHERE ROWNUM <= 3)
       where rank>1
26.同义词:
  同义词是数据库中一个对象的别名,可以简化对对象的访问
  通过使用同义词,可以:
  1、简化了引用另一个用户对象的方法
  2、缩短了对象名称的长度
*****创建同义词:创建employees表的别名.
                 CREATE SYNONYM  s_emp
                 FOR  emp;
                 select * from S_emp

27.删除同义词:
  drop synonym s_emp

28.序列:
  是一数据库对象,利用它可生成唯一的整数。
  一般使用序列自动地生成表主键值或唯一键值
 
  创建一个序列,从一开始,步长为1:
   create sequence seq_stu
   increment by 1   --步长
   start with 1     --开始值
   Maxvalue 21      --最大值
   minValue 1       --最小值

29.修改序列
  修改序列可以: 修改未来序列值的增量。设置或撤消最小值或最大值。改变缓  冲序列的数目。 指定序列号是否是有序。
  *****删除序列
   Drop  sequence  emp_seq

30.存储过程:用于在数据库中完成特定的操作或者任务,
  ***创建存储过程,--插入数据,
   create or replace procedure insertdept
   (
   in v_deptno number,
  
    )
    is
    begin
         insert into dept(deptno,dname,loc) values          (v_deptno,v_dname,v_loc);
           commit;
     end;
  *****执行存储过程:
         exec insertdept(13,'aaa','bj')

*****创建带返回值的存储过程:
     修改dept的表
     create or replace procedure updatedept
    (v_deptno in number,v_dname in varchar2)
      is
      begin
        update dept set dname=v_dname,loc=v_loc where deptno=v_deptno;
        commit;
        v_demo:='success';
      end;
  ******调用存储过程:
    declare
       v_out  varchar2(34);
    is
    begin
        updatedept(13,'789','678',v_demo)
        dbms_output.put_line(v_out);
    end;


我觉得今天冯老师讲的通俗易懂,很容易让我们理解,今天的知识点比较的多,很多知识都是一成不变的,需要课下花时间去记忆,多记几遍就会记住了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值