表管理

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;

时间: 2024-08-06 03:42:01

表管理的相关文章

SQL语句之 多表管理

SQL语句之 多表管理 一个数据库内通常会有不止一张表,有时候我们要把多张表联系起来,这就需要用到多表管理的语句. 1.外键约束 一个表中的非主键字段,如果在另外一张表中是主键,那么这个字段我们叫它做外键. 例如,现在有两个表: 学生表 - 学号,姓名,性别,所在班级号 班级表 - 班级号,班级人数 在学生表中,学号是主键:在班级表中,班级号是主键,而学生表中‘所在班级号’是非主键.所以,所在班级号对学生表来说是一个外键. 语句:CONSTRAINT student_class_fk FOREI

个人的后门程序开发(第一部分):文件操作和注册表管理

本来是想寒假时写的,结果一直懒得动手. 虽然手上有ghost源码,但是感觉功能不是我想要的,比如把精力费在学MFC写界面上不如改进下隐藏性. 基本的计划就是做一个后门程序,目的是用来进行权限维持的.目前来看是基于控制台的,而且要带有内核模块,应用层的主要问题就是没写过太大体量的程序导致搞起来很蛋疼,内核方面就是通用性坑爹, 蓝屏起来也要费时间. 第一部分就是封装的两个函数,文件操作和注册表管理.ghost是把这两个功能封装成两个类,我这里就直接用函数来实现了. VS2015编译通过 1 //文件

mysql 连接命令 表管理 ,克隆表,临时表,字符串属性,设定语句间的分隔符

连接和断开连接mysql -h host -u user -p (即,连接的主机.用户名和使用的密码).断开输入QUIT (或\q)随时退出: 表管理克隆表注意:create table ... like 语句不克隆表的外键定义,不克隆原表可能使用的data directory 和index directory. 和auto_increment --创建一张和现有的某张表结构一致的表.create table new_table like original_table --把某张的数据插入到克隆

mysl 数据库 表 管理【创建 删除 修改 改名 引擎】

mysl 数据库 表 管理 MySQL中字符大小写: 1.SQL关键字及函数名不区分字符大小写: 2.数据库.表及视图名称的大小区分与否取决于低层OS及FS 3.存储过程.存储函数及事件调度器的名字不区分大小写,但触发器区分: 4.表别名区分大小写: 5.对字段中的数据,如果字段类型为Binary类型,则区分大小写:非Binary不区分大小写: [库]: mysql> help create database; Name: 'CREATE DATABASE' Description: Synta

OracleDBA之表管理

下面是Oracle表管理的部分,用到的测试表是oracle数据库中scott用户下的表做的测试,有的实验也用到了hr用户的数据,以下这些东西是我的麦库上存的当时学Oracle的学习笔记今天拿出来和大家分享一下,转载请注明出处,下面用的Oracle的版本是10g,用的时WinServer2003的操作系统,可能有些命令和Oracle11g的有所不同,但大部分是一样的,接下来还会陆续的分享一下Oracle中对数据库的管理,对表的管理,还有Oracle中的存储过程和PL/SQL编程.用到的Oracle

Zen-cart扩展国家表管理

Zen-cart中国家表的管理比较粗糙,特别是在要对应国家下拉列表进行调整时,比如把常用的国家调整到最前面,那么就需要扩展一下国家表字段了. 涉及到国家表管理的是admin/countries. Zen-cart中国家表的管理比较粗糙,特别是在要对应国家下拉列表进行调整时,比如把常用的国家调整到最前面,那么就需要扩展一下国家表字段了. 涉及到国家表管理的是admin/countries.php文件,需要对这个文件做一些改动: /////////////////////// $cnt = $db-

SqlCollections - 数据表管理

1 --==============================数据表管理=============================== 2 --特殊字符的输入 3 --Tab: char(9) 4 --换行: char(10) 5 --回车: char(13) 6 7 --varchar(n):1个字符占1个字节:nvarchar(n):1个字符占2个字节 8 --'我是Sky'存在varchar字段中,占7个字节:存在nvarchar中,占10个字节 9 10 --创建新表,并指定主键.

Mysql—数据库管理与表管理

数据库管理 表管理 原文地址:https://www.cnblogs.com/liuhaidon/p/11617720.html

表管理和索引,外键作用

表管理和索引,外键作用: 创建数据库create schema if not exists students character set 'gbk' collate 'gbk_chinese_ci'; cd students lsfile db.optcat db.optdefault-character-set=gbkdefault-collation=gbk_chinese_ci 修改数据库help alter database;help drop databases; help creat

Oracle的学习二:表管理(数据类型、创建/修改表、添加/修改/删除数据、数据查询)

1.Oracle表的管理 表名和列名的命名规则: 必须以字母开头: 长度不能超过30个字符: 不能使用oracle的保留字: 只能使用如下字符:A-Z, a-z, 0-9, $, # 等. Oracle支持的数据类型: 字符型 char 定长 最大2000个字符 char(10)----'小韩' 前四个字符放'小韩',后添加6个空格补全.(查询效率高) varchar2(20) 变长 最大4000个字符 vachar2(10)----'小韩' oracle分配四个字符,这样可以节省空间. clo