• 表管理


    ORcale 表名和列名:
    必须以字母开头
    必须在 1–30 个字符之间
    必须只能包含 A–Z, a–z, 0–9, _, $, 和 #
    必须不能和用户定义的其他对象重名
    必须 不能是Oracle 的保留字
    MYsql 命名规则
     数据库涉及字符规范

    采用26个英文字母(区分大小写)和0-9这十个自然数,加上下划线'_'组成,共63个字符.不能出现其他字符(注 释除外).
    注意事项:
    1) 以上命名都不得超过30个字符的系统限制.变量名的长度限制为29(不包括标识字符@).
    2) 数据 对象、变量的命名都采用英文字符,禁止使用中文命名.绝对不要在对象名的字符之间留空格.
    3) 小心保留词,要保证你的字段名没有和保留词、数据 库系统或者常用访问方法冲突
    5) 保持字段名和类型的一致性,在命名字段并为其指定数据类型的时候一定要保证一致性.假如数据类型在一个表里是整 数,那在另一个表里可就别变成字符型了.
    字段命名规范
    字段名称使用单词组合完成,首字母小写,后面单词的首字母大写,最好是带表名前缀.
    数据库表命名规范
    数据表名使用小写英文以及下划线组成,尽量说明是那个应用或者系统在使用的.
    相关应用的数据表使用同一前缀,如 论坛的表使用cdb_前缀,博客的数据表使用supe_前缀,前缀名称一般不超过5字

    创建表的格式
    CREATE TABLE dept
    (deptno NUMBER(2),dname VARCHAR2(14),loc VARCHAR2(13));
    数据类型 描述
    VARCHAR2(size) 可变长字符数据
    NUMBER(p,s) 可变长数值数据
    DATE 日期型数据
    LONG 可变长字符数据,最大可达到2G
    CLOB 字符数据,最大可达到4G
    RAW and LONG RAW 裸二进制数据
    BLOB 二进制数据,最大可达到4G
    BFILE 存储外部文件的二进制数据,最大可达到4G
    ROWID 行地址
    时候用 AS subquery 选项,将创建表和插入数据结合起来
    CREATE TABLE table [(column, column...)]
    AS subquery;

    例:CREATE TABLE dept80
    AS
    SELECT employee_id, last_name,
    salary*12 ANNSAL,
    hire_date
    FROM employees
    WHERE department_id = 80;

    使用 ALTER TABLE 语句追加, 修改, 或删除列的语法.
    增加列
    ALTER TABLE table
    ADD (column datatype [DEFAULT expr]
    [, column datatype]...);
    修改类型
    ALTER TABLE table
    MODIFY (column datatype [DEFAULT expr]
    [, column datatype]...);
    可以修改列的数据类型, 尺寸, 和默认值
    删除列
    ALTER TABLE table
    DROP COLUMN(列) (column);
    执行RENAME语句改变表, 视图, 序列, 或同义词的名称
    RENAME dept TO detail_dept;

    TRUNCATE TABLE 语句:( 效果跟delete类似 ) TRUNCATE TABLE detail_dept;
    删除表中所有的数据
    释放表的存储空间
    TRUNCATE语句不能回滚
    约束
    NOT NULL 非空
    UNIQUE 唯一性
    PRIMARY KEY 主键
    FOREIGN KEY 外键
    CHECK 检查是否满足条件
    添加约束
    ALTER TABLE table
    ADD [CONSTRAINT constraint] type (column);
    删除约束
    ALTER TABLE departments
    DROP PRIMARY KEY CASCADE;

    视图
    创建视图格式
    CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view
    [(alias[, alias]...)]
    AS subquery
    作用: 控制数据访问
    简化查询
    数据独立性
    避免重复访问相同的数据
    使用CREATE OR REPLACE VIEW 子句修改视图
    CREATE OR REPLACE VIEW empvu80
    (id_number, name, sal, department_id)--重命名
    AS SELECT employee_id, first_name || ' ' || last_name,
    salary, department_id
    FROM employees
    WHERE department_id = 80;
    可以在简单视图中执行 DML 操作
    当视图定义中包含以下元素之一时不能使用delete:
    组函数
    GROUP BY 子句
    DISTINCT 关键字
    ROWNUM 伪列
    当视图定义中包含以下元素之一时不能使用update :
    组函数
    GROUP BY子句
    DISTINCT 关键字
    ROWNUM 伪列
    列的定义为表达式
    当视图定义中包含以下元素之一时不能使用insert :
    组函数
    GROUP BY 子句
    DISTINCT 关键字
    ROWNUM 伪列
    列的定义为表达式
    表中非空的列在视图定义中未包括

    删除视图
    DROP VIEW view;
    序列
    作用
    自动提供唯一的数值
    共享对象
    主要用于提供主键值
    代替应用代码
    将序列值装入内存可以提高访问效率
    定义序列:
    CREATE SEQUENCE sequence
    [INCREMENT BY n]
    [START WITH n]
    [{MAXVALUE n | NOMAXVALUE}]
    [{MINVALUE n | NOMINVALUE}]
    [{CYCLE | NOCYCLE}]
    [{CACHE n | NOCACHE}];
    两个方法
    NEXTVAL 返回序列中下一个有效的值,任何用户都可以引用
    CURRVAL 中存放序列的当前值
    NEXTVAL 应在 CURRVAL 之前指定 ,二者应同时有效
    修改序列
    ALTER SEQUENCE dept_deptid_seq
    INCREMENT BY 20
    MAXVALUE 999999
    NOCACHE
    NOCYCLE;
    修改序列的注意点
    必须是序列的拥有者或对序列有 ALTER 权限
    只有将来的序列值会被改变
    改变序列的初始值只能通过删除序列之后重建序列的方法实现
    其它的一些限制
    例如
    CREATE SEQUENCE id_v
    INCREMENT BY 1
    START WITH 1;
    alter table emp
    add (id_v number) ;
    update emp
    set id_v = id_v.nextval;
    删除序列
    drop sequence 序列名;
    例:
    drop sequence id_v;
    索引

    作用:
    一种数据库对象
    通过指针加速 Oracle 服务器的查询速度
    通过快速定位数据的方法,减少磁盘 I/O
    索引与表相互独立
    Oracle 服务器自动使用和维护索引
    自动创建: 在定义 PRIMARY KEY 或 UNIQUE 约束后系统自动在相应的列上创建唯一性索引
    手动创建: 用户可以在其它列上创建非唯一的索引,以加速查询
    创建索引
    CREATE INDEX index
    ON table (column[, column]...);
    例:
    create index in_ename
    on table(ename)
    适合创建B-TREE索引的时机:
    1.列值基数比较高(重复率比较低)
    2.不以空值做条件
    3.列经常出现在条件子句中
    4.表很大
    5.经常做查询操作,而不是DML操作
    6.满足条件的数据不超过总记录数的15%
    7.模糊查询不走索引,如果模糊查询想使用索引,必须用全文检索技术
    删除索引
    DROP INDEX index;
    用户权限
    创建用户
    CREATE USER user
    IDENTIFIED BY password;
    增加权限
    GRANT privilege [, privilege...]
    TO user [, user| role, PUBLIC...];
    系统权限
    CREATE SESSION(创建会话)
    CREATE TABLE(创建表)
    CREATE SEQUENCE(创建序列)
    CREATE VIEW(创建视图)
    CREATE PROCEDURE(创建过程)
    创建角色
    create role mannger;
    给角色副权限
    grant CREATE TABLE,CREATE VIEW to mannger;
    将角色赋予用户
    grant mannger to Scott;

  • 相关阅读:
    Markdown语法
    简易银行管理系统
    登录sql sever
    MainActivity中R为红色
    PLC STL any数据类型
    Oracle ORA-12541,ORA-12514错误
    Myeclispe下struts-config.xml文件无法图形界面打开
    SSH报错
    Myeclispe 代码自动补全
    Mac下多个jdk自由切换
  • 原文地址:https://www.cnblogs.com/fy02223y/p/7241815.html
Copyright © 2020-2023  润新知