搜档网
当前位置:搜档网 › oracle 5种约束条件使用方法模板

oracle 5种约束条件使用方法模板

oracle 5种约束条件使用方法模板
oracle 5种约束条件使用方法模板

1 约束

约束是操作表数据的强制规定

有以下五种约束:

?NOT NULL ;非空约束

?UNIQUE :唯一值约束

?PRIMARY KEY:主键约束

?FOREIGN KEY:外键约束

?CHECK:检查约束

约束:建表的时候可以加约束,建表后也可加约束

注意事项

、如果不指定约束名 Oracle server 自动按照 S、YS_C n 的格式指定约束名

、在什么时候创建约束:

?建表的同时

?建表之后

、可以在表级或列级定义约束

、可以通过数据字典视图查看约束

create table newdept

as

select * from departments

create table newemp

as

select * from employees

2 定义约束

CREATE TABLE [schema.]table

(column datatype [DEFAULT expr]

[column_constraint],

...

[table_constraint][,...]);

CREATE TABLE employees(

employee_id NUMBER(6),

first_name VARCHAR2(20),

...

job_id VARCHAR2(10) NOT NULL,

CONSTRAINT emp_emp_id_pk

P RIMARY KEY (EMPLOYEE_ID));

列级

column[CONSTRAINT constraint_name] constraint_type,

表级

column,...

[CONSTRAINT constraint_name] constraint_type (column, ...),

3 NOT NULL 约束

只能定义在列级:

保证列值不能为空:

修改first_name 非空

alter table newemp

modify (first_name NOT NULL)

取消非空约束

alter table newemp

modify (first_name NULL)

增加约束

定义每一行必须满足的条件

以下的表达式是不允许的:

?出现CURRVAL, NEXTVAL, LEVEL, 和ROWNUM 伪列

?使用 SYSDATE, UID, USER, 和 USERENV 函数

?在查询中涉及到其它列的值

..., salary NUMBER(2)

CONSTRAINT emp_salary_min

CHECK (salary > 0),...

限制工资不能少于2000

alter table newemp

ADD constraints newemp_salary_ck CHECK(salary>=2000)

添加约束的语法

使用 ALTER TABLE 语句:

添加或删除约束, 但是不能修改约束

有效化或无效化约束

添加 NOT NULL 约束要使用 MODIFY 语句

ALTER TABLE table

ADD [CONSTRAINT constraint] type (column);

添加约束

ALTER TABLE employees

ADD CONSTRAINT emp_manager_fk

FOREIGN KEY(manager_id)

REFERENCES employees(employee_id);

alter table表名

modify(自定义列名约束设置)

CREATE TABLE employees(

employee_id NUMBER(6),

last_name VARCHAR2(25) NOT NULL,

salary NUMBER(8,2),

commission_pct NUMBER(2,2),

hire_date DATE

CONSTRAINT emp_hire_date_nn

NOT NULL,

4主键约束

限制列值不允许空值,且不能为空,一个表只有一个主键

只要主键都会Alter,一般主键是ID唯一的

alter table newemp

ADD constraints newemp_empid_pk primary key(employee_id)

删除主键约束

alter table newemp

drop constraints newemp_empid_pk;

复合主键(多个列设置为主键)

ALter table newemp

add constraint newemp_ename_pk primary key(first_name, last_name)

5唯一约束

唯一值约束,限制列值不允许重复,可以为空(不会限制空值),一个表可以有多个唯一值的约束,不允许insert into

可以定义在表级或列级:

设置唯一值约束

alter table newemp

ADD constraints newemp_email_uk UNIQUE(email)

CREATE TABLE departments(

department_id NUMBER(4),

department_name VARCHAR2(30)

CONSTRAINT dept_name_nn NOT NULL,

manager_id NUMBER(6),

location_id NUMBER(4),

CONSTRAINT dept_id_pk PRIMARY KEY(department_id));

查约束,限制自定义条件,忽略空值

可以定义在表级或列级:

CREATE TABLE employees(

employee_id NUMBER(6),

last_name VARCHAR2(25) NOT NULL,

email VARCHAR2(25) ,

salary NUMBER(8,2),

commission_pct NUMBER(2,2),

hire_date DATE NOT NULL,

...

CONSTRAINT emp_email_uk UNIQUE(email));

6 外键约束

一般都是主键的ID 不能修改

可以定义在表级或列级:

FOREIGN KEY: 在表级指定子表中的列

REFERENCES: 标示在父表中的列,后面跟一样的主键 ON DELETE CASCADE: 当父表中的列被删除是,子表中相对应的列也被删除

ON DELETE SET NULL: 子表中相应的列置空

CREATE TABLE employees(

employee_id NUMBER (6), last_name VARCHAR2(25) NOT NULL ,

email VARCHAR2(25), salary NUMBER (

8,2),

commission_pct NUMBER (2,2),

hire_date DATE NOT NULL ,

...

department_id NUMBER (4),

CONSTRAINT emp_dept_fk FOREIGN KEY (department_id)

EMPLOYEES

INSERT INTO

允许 PRIMARY

KEY …

REFERENCES departments(department_id),

CONSTRAINT emp_email_uk UNIQUE(email));

主外键关联

外键约束:限制外键列值必须是引用主键中的主键列存在的列值,不限制空值ALter table newdept

add constraint newdeptid primary

key(department_id)

alter table newemp

部门主键约束设置

ADD CONSTRAINTS newemp_deptid_fk FOREIGN

KEY(department_id)// newemp_deptid_fk鼠标点击名称references newdept (department_ID);//关联想要给newemp增加外键的前提是newdept必须有主键,先设置newdept的主键之后才会有外键

7级联删除

删除约束

从表 EMPLOYEES 中删除约束

ALTER TABLE employees

DROP CONSTRAINT emp_manager_fk;

使用CASCADE选项删除约束

外键和主键一起删除

在ALTER TABLE 语句中使用 DISABLE 子句将约束无

效化。

使用 CASCADE 选项将相关的约束也无效化

ALTER TABLE employees

DISABLE CONSTRAINT emp_emp_id_pk CASCADE;//中间的是约束的名字

ALTER TABLE departments

DROP PRIMARY KEY CASCADE;

alter table newemp

add constraints newemp_deptid_fk foreign

key(department_id)

references newdept(department_id)//REFERENCES 关联的是父键dept所以是department_id

on delete cascade

级联置空

员工不删除但是把外键删除

alter table newemp

add constraints newemp_deptid_fk foreign

key(department_id)

references newdept(department_id)

on delete set null//引用之前必须drop掉外键在一块执

ALTER TABLE newemp

ADD CONSTRAINTS newemp_deptid_fk FOREIGN

KEY(department_id)

REFERENCES newdept(department_id)

ON DELETE CASCADE;//必须删除外键之后才能执行语句

ALTER TABLE newemp

ADD CONSTRAINTS newemp_deptid_fk FOREIGN

KEY(department_id)

REFERENCES newdept(department_id)

ON DELETE SET NULL; //想要删除不能按钮drop要用下面的语句删除外键

alter table newemp

drop CONSTRAINTS newemp_deptid_fk;

8 激活约束

在ALTER TABLE 语句中使用DISABLE 子句将约束无效化。使用CASCADE 选项将相关的约束也无效化

ENABLE 子句可将当前无效的约束激活

ALTER TABLE employees

ENABLE CONSTRAINT emp_emp_id_pk;

Table altered.

当定义或激活UNIQUE 或 PRIMARY KEY 约束时系统会自动创建UNIQUE 或 PRIMARY KEY索引

无效化约束

Alter table newemp

disable constraint newemp_ename_pk

激活约束

Alter table newemp

enable constraint newemp_ename_pk

9 查询约束

查询数据字典视图USER_CONSTRAINTS

SELECT constraint_name, constraint_type, search_condition

FROM user_constraints

WHERE table_name = 'EMPLOYEES';

查询定义约束的列

SELECT constraint_name, column_name FROM user_cons_columns

WHERE table_name = 'EMPLOYEES';

10 建表的时候增加约束

CREATE table emp2(

emp_id number(10) primary key, 设置主键emp_name varchar2(60) NOT NULL, 非空约束emp_email varchar2(50) UNIQUE, 唯一值约束

emp_sal number(8,2) check(emp_sal>=500),检查约束emp_deptid number(6) references newdept (department_id) 外键约束

constraints emp2_emp2_uk unique(emp_email)

) //,没有完成要加,强制约束条件同primary key

11 索引:

主键唯一的,索引方便快速的查询,关联的机构,加快速度,目录索引

方便地位查找,给小范围寻找

索引还会往下查

作用:加速查询,但是会降低DML操作

一种数据库对象

通过指针加速 Oracle 服务器的查询速度

通过快速定位数据的方法,减少磁盘 I/O

索引与表相互独立

Oracle 服务器自动使用和维护索引

创建索引

、自动创建: 在定义 PRIMARY KEY 或 UNIQUE 约束后系统自动在相应的列上创建唯一性索引

、手动创建: 用户可以在其它列上创建非唯一的索引,以加速查询

索引分类

B-tree 索引默认,适用于基数比较高,冗余数量较少的时候位图索引,适用于基数比较第,冗余数量较高的时候

适合创建B-TREE索引的时机:

1.列值基数比较高(重复率比较低)

2.不以空值做条件

3.列经常出现在条件子句中

4.表很大

5.经常做查询操作,而不是DML操作

6.满足条件的数据不超过总记录数的15%

7.模糊查询不走索引,如果模糊查询想使用索引,必须用全文检索技术

创建索引

在一个或多个列上创建索引

CREATE INDEX index

ON table (column[, column]...);

在表 EMPLOYEES的列 LAST_NAME 上创建索引

CREATE INDEX emp_last_name_idx

ON employees(last_name);

Index created.

创建唯一索引

alter table new_emp

add constraints newemp_empid_pk primary key(employee_id)

select * from new_emp

创建普通索引

create index emp_lastname_idx on new_EMP(last_name)

查询索引

可以使用数据字典视图USER_INDEXES 和USER_IND_COLUMNS 查看索引的信息

SELECT ic.index_name, ic.column_name, ic.column_position col_pos,ix.uniqueness FROM user_indexes ix, user_ind_columns ic WHERE ic.index_name = ix.index_name

AND ic.table_name = 'EMPLOYEES';

select * from new_emp where employee_id= 174 select * from new_emp where last_name ='King' //King==king

创建基于函数的索引

create index newemp_lastname_idx on

new_emp(LOWER(last_name))

select* from new_emp where LOWER(last_name)='King'

基于函数的索引

基于函数的索引是一个基于表达式的索引

索引表达式由列, 常量, SQL 函数和用户自定义的函数CREATE INDEX upper_dept_name_idx

ON departments(UPPER(department_name));

Index created.

SELECT *

FROM departments

WHERE UPPER(department_name) = 'SALES';

位图索引

位图索引是在基数较小,即重复率很大的列值中创建比较适用create bitmap index emp_jobid_bmidx

on empcopy (job_id);

create index newemp_jobid_idx on new_emp(job_id) select * from new_emp where job_id='IT_PROG'

RBO和CBO

RBO :

?基于规则的优化方式(Rule-Based Optimization )CBO :

?基于代价的优化方式(Cost-Based Optimization )

删除索引

使用DROP INDEX 命令删除索引

DROP INDEX index

删除索引UPPER_LAST_NAME_IDX

DROP INDEX upper_last_name_idx;

Index dropped.

只有索引的拥有者或拥有DROP ANY INDEX权限的用户才可以删除索引

drop index emp_lastname_idx //

12 用户和权限

权限

数据库安全性:

?系统安全性

?数据安全性

系统权限: 对于数据库的权限

对象权限: 操作数据库对象的权限

方案: 一组数据库对象集合, 例如表, 视图,和序列

系统权限

超过一百多种 100 有效的权限

数据库管理员具有高级权限以完成管理任务,例如: ?创建新用户

?删除用户

?删除表

?备份表

创建用户

Cmd下

SQLPLUS

System /scott 小写

Grant create user to SCOTT

Grant create session to SCOTT

Revoke create session to icss;

在PL里面输入权限创建用户

create user icss identified by icss create table a(

id number(2)

)

insert into a values(1)

在DOS下输入

Grant create session to icss

grant connect,resource to icss; alter user icss identified by123456

接触锁定

Sqlplus

SCOTT /TIGER

Conn system/scott;

SCOTT SCOTT/TIGER;

解锁

Alter user SCOTT ACCOUNT UNLOCK; 权限

Grant create session to xxx

改密码

Alter user 用户名identified by新密码

oracle实例内存解析

一、名词解释 (1)SGA:System Global Area是Oracle Instance的基本组成部分,在实例启动时分配;系统全局域SGA主要由三部分构成:共享池、数据缓冲区、日志缓冲区。 (2)共享池:Shared Pool用于缓存最近被执行的SQL语句和最近被使用的数据定义,主要包括:Library cache(共享SQL区)和Data dictionary cache(数据字典缓冲区)。共享SQL区是存放用户SQL命令的区域,数据字典缓冲区存放数据库运行的动态信息。 (3)缓冲区高速缓存:Database Buffer Cache用于缓存从数据文件中检索出来的数据块,可以大大提高查询和更新数据的性能。 (4)大型池:Large Pool是SGA中一个可选的内存区域,它只用于shared server环境。 (5)Java池:Java Pool为Java命令的语法分析提供服务。 (6)PGA:Process Global Area是为每个连接到Oracle database的用户进程保留的内存。 二、分析与调整 (1)系统全局域: SGA与操作系统、内存大小、cpu、同时登录的用户数有关。可占OS系统物理内存的1/3到1/2。 a.共享池Shared Pool: 查看共享池大小Sql代码 SQL>show parameter shared_pool_size 查看共享SQL区的使用率: Sql代码 select(sum(pins-reloads))/sum(pins)"Library cache"from v$librarycache; --动态性能表 LIBRARY命中率应该在90%以上,否则需要增加共享池的大小。

Oracle__插入数据

Oracle 插入数据 插入数据就是将数据放置到已经创建的表中,Oracle 数据库是通过INSERT 语句来实现插入数据的。一般情况下,使用INSERT 语句可以一次插入一行数据。 与SELECT 语句相比,INSERT 语句的使用方式要简单的多。在INSERT 语句的使用方式中,最为常用的形式是在INSERT INTO 子句中指定添加数据的列,并在V ALUES 子句中为各个列提供一个值。 下面语句将向SCOTT 模式中的EMP 表添加一条记录: SQL> insert into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) 2 values(7995,'A TG','CLERK',7782,to_date('2007-9-23','yyyy-mm-dd'),1300,null,10); 已创建 1 行。。 在向表中所有列添加数据时,可以省略INSERT INTO 子句后的列表清单,使用这种方法时,必须根据表中定义的列的顺序,为所有的列提供数据,用户可以使用DESC 命令查看表中定义列的顺序。下面的INSERT 语句在向EMP 表添加记录时省略了列清单: SQL> desc emp SQL> insert into emp 2 values(7996,'LI','CLERK',7782,to_date('2006-5-12','yyyy-mm-dd'),1200,null,10); 已创建 1 行。 在插入操作过程中,用户也可以根据实际情况只为部分列提供数据,而省略某些列的数据。注意这些列必须允许空值、有默认值或系统可以自动成生值等。例如,在EMP 表中,除EMPNO 列不允许空值外,其他列都可以为空值。 如果某个列不允许NULL 值存在,而用户没有为该列提供数据,则会因为违反相应的约束而插入失败。事实上,在定义表的时候为了数据的完整性,经常会为表添加许多约束。例如,在EMP 表中为了保证表中每条记录的惟一性,在表的EMPNO 列上定义了主键约束。如果用户试图为表中的EMPNO 列添加一个重复值,则因为违反主键约束而失败: SQL> insert into emp(empno,ename,job) 2 values(7782,'KING','CLERK'); insert into emp(empno,ename,job) * 第 1 行出现错误: ORA-00001: 违反唯一约束条件 (SCOTT.PK_EMP) 注 意 使用这种方法插入数据时有一个大隐患,如果为表指定的数值位置不对, 并且指定的数据类型之间可以转化,则执行该语句时系统不会返回任何错误信息。但是这会为该表添加一条错误的记录。由于这种错误难以发现,所以在添 加记录时最好在INSERT INTO 子句中指定列清单,以明确接收数据的列。

模板支护施工专项施工方案

模板支护专项施工方案 编制人:杨青 审核人:杨小春 审批人:张仪 西安三好建筑工程公司

XI AN SAN HAO JIAN ZHU GONG CHENG GONG SI

目录 一编制依据 (2) 二工程概况 (2) 三施工准备 (2) 四模板支设施工 (2) 五质量保证措施 (5) 六安全文明施工措施 (5)

一、编制依据 1、湖北襄阳文理学院教学实体模型结构施工图 2、《湖北襄阳文理学院教学实体模型施工组织设计》 3、建筑工程施工质量验收统一标准GB50300-2010 4、建筑施工扣件式钢管脚手架安全技术规范JGJ/130-2011 5、建筑施工安全检查标准JGJ59-2011 6、建筑安装分项工程施工工艺规程DBJ01-26-2003 二、工程概况 湖北襄阳文理学院教学实体模型项目位于湖北省襄阳市隆中路296号,主楼为框架结构,总建筑面积为115.9m2。其中主楼地上2层。建筑高度为6.8m;基础为独立基础,建设单位:湖北文理学院,设计单位:西安三好股份有限公司;监理单位:湖北文理学院教学组;施工单位:西安古典建筑工程有限公司,竣工日期:2017年12月20日,基础类型:阶梯型独立基础,建筑檐高6.8m地下面积:99.12,抗震等级;二级. 三、施工准备 施工现场准备

1、本工程木模的加工由现场加工,因现场场地狭小,利用栋号之间的狭小地带加工制作首层模板,待首层砼浇筑后,在首层室外楼面板上设置封闭式木模加工棚,长×宽为7m×10m,净高为2.7m;模板堆放区布置见《施工平面布置总图》,但堆放区要避开道路、消防管线,并满足相关消防要求。 2、依据图纸、本方案、交底、洽商、现场实际尺寸等画出本班组施工范围内模板的拼装图(要有拼板编号),需调整误差模板(板角部模)应留出1-2cm 余量;并据此裁好每块竹胶板(在背面用白粉笔编号),下部均分垫三根100×100mm的木方,分类堆放高度不超过1.5m,随加工随用;所有钉眼用腻子填满后粘上胶带纸。 3、运输准备: 在现场制作完成的墙模板、柱模板、梁板拼装后,用塔吊吊运。 4、成立模板专业施工组,使其对本施工范围的工作专业化,达到操作熟练,各环节得心应手。定岗、定位、定人,责任落实到每个人。 施工材料准备 按清水砼质量要求进行模板设计,在模板满足强度和刚度要求前提下,尽可能提高表面光洁程度,阴阳角模统一整齐(尽量在安装之前配置)。 1、支撑系统:采用钢管支撑,扣件连接,U托调整高度。 2、止水对拉螺杆:采用14的高强螺杆中部焊接止水片(有防水要求的砼模板专用)。 3、模板:顶模板采用15mm厚、1830×920mm的多层胶合板。 4、木方:采用50×100mm、100×100mm规格,要求不变形,无死节,无断裂。 5、脱模剂:水溶性脱模剂、机油:柴油(1:1); 6、对拉螺栓:采用14的高强螺杆,蝴蝶卡。 7、工具:铁木榔头、活动(套口)板子、水平尺、钢卷尺、托线板、轻便爬梯、脚手板、吊车等。 四、模板支设施工

oracle数据库的5种约束类型

oracle 数据库的 5 种约束类型 oracle 数据库数据表的 5 个约束类型: 1.主键约束 2.外键约束 3.唯一约束 4.检查约束 5. 非空约束 F 主键约束:用来唯一标示表中的一个列, 一个表中的主键约束只能有一个,但是可以在一个主键约束 中包含多个列,也称为联合约束。外键约束:用来约束两 个表中列之间的关系。唯一约束:用来唯一标示表中的 列。与主键约束不同的是,在一个数据表中可以有多个唯一约束。检查约束:用来约束表中列的输入值得范围,比如 在输入性别时,要求数据库中只能输入男或者女,就可以使用检查约束来约束该列。非空约束:约束该列一定要输入值。 ----- 创建一个带检查约束的表:使用PL/SQL 语句创建检查约束的语法如下所示:CONSTRAINT constraint_name CHECK(condition) [ 语法说明:] CONSTRAINT: 关键词constraint_name: 约束名称condition: 约束条件列如:创建BOOKINFO 表时,给图书 价格加上一个检查约束,要求图书价格在10 元到100 元之间。CREATE TABLE BOOKINFO ( BOOKID

INT, BOOKNAME CAHR, PUBLISH

char, publish varchar2(20), pubdate varchar2(20), CHECK(PRICE>=10 AND PRICE ----- 创建一个带非空约束的表: 举例 :在创建 BOOKINFO 表时,给图书名称加上一个非空约束。 CREATE TABLE BOOKINFO ( BOOKID INT NOT NULL, BOOKNAME CHAR NOT NULL, PUBLISH PUBDATE VARCHAR2(20), AUTHOR CHAR, STORE ----- 创建一个带唯一约束的表 语法格式: CONSTRAINT constraint_name UNIQUE(column_name) 【语法说明】 UNIQUE: 唯一约束的关键词 column_name: 唯一约束的名称。 举例 :创建 BOOKINFO 表时,为图书名称( BOOKNAME )列添加唯一约束 create table bookinfo ( bookid int, bookname PRICE DECIMAL, AUTHOR CHAR, STORE VARCHAR2(1), READER INT, REMARKS VARCHAR2(50), CONSTRAINT CK_PRICE ); VARCHAR2(20), PRICE DECIMAL, VARCHAR2(1), VARCHAR2(50) READER INT, REMAERKS );

oracle题1

A. DECLARE ? B. SET ? C. UPDATE ? D. SELECT o 2. 能计算出一列中所有数的总和的函数是_____。【2.0分】 ? A. COUNT ? B. SUM ? C. AVG ? D. SQRT o 3. ORACLE中,用来判断列值是否为空的操作符是_____。【2.0分】? A. = NULL ? B. IS NULL ?

C. AS NULL ? D. NULLIS o 4. 分析以下SQL 命令: SELECT price FROM inventory WHERE price BETWEEN 1 AND 50 AND (price IN(55, 30, 95); 命令执行后的最可能的输出结果是_____。【2.0分】 ? A. 55 ? B. 30 ? C. 95 ? D. 51 o 5. Oracle中,当需要使用显式游标更新游标中的行时,声明游标时指定的SELECT语句必须带有_____子句。【2.0分】 ? A. WHERE CURRENT OF ? B. INTO ? C. FOR UPDATE ? D. ORDER BY

o 6. 当执行SELECT INTO语句没有返回行时,会触发_______异常。【2.0分】? A. TOO_MANY_ROWS ? B. NO_DATA_FOUND ? C. VALUE_ERROR ? D. 不会触发任何异常 o7. 下面哪一个like命令会返回名字像HOTKA的行?【2.0分】 ? A. where ename like …_HOT%' ? B. where ename like …H_T%' ? C. where ename like …%TKA_' ? D. where ename like …%TOK%' o8. 以下运算结果不为空值的是______。【2.0分】 ? A. 12+NULL ? B. 60*NULL ?

柱模板安装施工方案

模板安装 一、框架柱模板安装 1、柱模安装工艺流程:弹线找平定位组装柱模涂刷脱模剂安装柱箍安装拉杆或斜撑校正轴线、垂直度固定柱模预检封堵清扫口 2、先弹出柱的轴线及四周边线。 3、根据测量标高抹水泥砂浆找平层调整柱底标高,并作为定位的基准,支侧模时应与其靠紧。 4、通排柱(或多根柱)模板安装时,应先将柱脚互相搭牢固定,再将两端柱模板找正吊直,固定后,拉通线校正中间各柱模板.柱模除各柱单独固定外还应加设剪刀撑彼此拉牢,以免浇灌混凝土时偏斜。 5、柱脚应预留清扫口,柱子较高时应预留浇灌口,高度不得高于柱脚2米。 6、柱模应根据柱断面尺寸和混凝土的浇灌速度加设柱箍及对拉螺栓。 7、柱模板的安装必须待钢筋检查无问题并办好验收手续后方可进行封模,封模前必须将模内垃圾清理干净,施工时要留出梁口位置(或砼只浇到梁底),紧固夹具间距不大于500,柱模安装时在下部留设清除口,待模板内垃圾清除干净后再封模。 二、构造柱模板安装 先砌墙体,然后施工构造柱。构造柱两侧墙体应按设计要求沿柱高砌成马牙槎,马牙槎外伸段至边柱边缘并在一条垂线上。砌筑时,按设计要求埋设柱墙拉结钢筋。一般做法为:沿墙高500㎜处设2Ф6钢筋,钢筋两端弯钩,一端埋入墙体灰缝1000㎜,另一端伸入构造柱内200㎜,与构造钢筋绑扎连接。砖墙砌筑完工,然后绑扎构造柱钢筋,继而支模浇筑构造柱砼。 三、外挑窗与悬挑阳台模板安装 1、底模采用18㎜厚胶合板,侧模采用20㎜厚胶合板,支撑采用υ18原木,原木立柱间距为0.7m,顶部、中间一道水平杆,在原

木立柱低均加木垫板等有效措施,确保砼在浇筑过程中不会发生支顶下沉、移位。 2、梁板模安装时先在底板面将梁中线弹出,然后再进行梁板模板的竖向支撑、水平支撑、模板等的安装。 3、阳台板模板采用18㎜厚胶合板,木楞间距为450㎜,原木立柱间距为0.7m,板底下垫方木50×100㎜,间距@400。 4、不够一整板胶合板的空隙,可用木板铺满,拼缝宽度超过2㎜的,用小木条或胶带纸处理。 5、胶合板作楼板模板时,木栅间距不大于45㎝。 四、施工质量要求 柱模安装前应按设计图弹出柱子边线,框定模板边,校正钢筋位置,钢筋上部宜采用钢管架固定,保证钢筋位置正确。柱模夹箍规格及间距应经过计算选用,柱子四角用拉杆和支撑固定。 安装柱模时,应随时支撑回定,防止倾覆;支设高度在3米以上的柱模板,四周应设斜撑,并应设立操作平台,低于3米的可用马凳操作。 支设悬挑阳台及外挑窗模板时,应按支架设计的要求设置足够的模板支撑。在未达到设计强度前,不得拆除悬挑的模板支撑。不得在阳台上面集中堆放超重材料。模板支架应有足够的承载力、刚度、稳定性及抗倾能力。 五、计算书 材料选用TC13红松,详见表5及图4: 表5

Oracle数据库实例及其相关概念

Oracle数据库实例及其相关概念2010-11-24 00:00 出处:中国IT实验室作者:佚名 完整的Oracle数据库通常由两部分组成:Oracle数据库实例和数据库。 用数据库安全策略防止权限升级攻击 C++虚函数的显式声明 完整的Oracle数据库通常由两部分组成:Oracle数据库实例和数据库。 1)数据库是一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等); 2)Oracle数据库实例则是一组Oracle后台进程/线程以及在服务器分配的共享内存区。 在启动Oracle数据库服务器时,实际上是在服务器的内存中创建一个Oracle实例(即在服务器内存中分配共享内存并创建相关的后台内存),然后由这个Oracle数据库实例来访问和控制磁盘中的数据文件。Oracle有一个很大的内存快,成为全局区(SGA)。 一、数据库、表空间、数据文件 1.数据库 数据库是数据集合。Oracle是一种数据库管理系统,是一种关系型的数据库管理系统。 通常情况了我们称的“数据库”,并不仅指物理的数据集合,他包含物理数据、数据库管理系统。也即物理数据、内存、操作系统进程的组合体。 数据库的数据存储在表中。数据的关系由列来定义,即通常我们讲的字段,每个列都有一个列名。数据以行(我们通常称为记录)的方式存储在表中。表之间可以相互关联。以上就是关系模型数据库的一个最简单的描述。

当然,Oracle也是提供对面象对象型的结构数据库的最强大支持,对象既可以与其它对象建立关系,也可以包含其它对象。关于OO型数据库,以后利用专门的篇幅来讨论。一般情况下我们的讨论都基于关系模型。 2.表空间、文件 无论关系结构还是OO结构,Oracle数据库都将其数据存储在文件中。数据库结构提供对数据文件的逻辑映射,允许不同类型的数据分开存储。这些逻辑划分称作表空间。 表空间(tablespace)是数据库的逻辑划分,每个数据库至少有一个表空间(称作SYSTEM表空间)。为了便于管理和提高运行效率,可以使用一些附加表空间来划分用户和应用程序。例如:USER表空间供一般用户使用,RBS表空间供回滚段使用。一个表空间只能属于一个数据库。 每个表空间由同一磁盘上的一个或多个文件组成,这些文件叫数据文件(datafile)。一个数据文件只能属于一个表空间。在Oracle7.2以后,数据文件创建可以改变大小。创建新的表空间需要创建新的数据文件。数据文件一旦加入到表空间中,就不能从这个表空间中移走,也不能与其它表空间发生联系。 如果数据库存储在多个表空间中,可以将它们各自的数据文件存放在不同磁盘上来对其进行物理分割。在规划和协调数据库I/O请求的方法中,上述的数据分割是一种很重要的方法。 3.Oracle数据库的存储结构分为逻辑存储结构和物理存储结构: 1)逻辑存储结构:用于描述Oracle内部组织和管理数据的方式; 2)物理存储结构:用于描述Oracle外部即操作系统中组织和管理数据的方式。 二、Oracle数据库实例

oracle ALTER 用法

oracle ALTER 用法 1.如果sql语句中有''(单引号或者双引号)括的字符串,则需要同表中严格一致,不然会显示“找 不到行”这个错误。 alter语句的用法 需要修改结构的,就用到alter语句,方法如下: 1.ALTER TABLE语句用于修改已经存在的表的设计。 2.语法: ALTER TABLE table ADD COLUMN field type[(size)] [NOT NULL] [CONSTRAINT index ] 3.ALTER TABLE table ADD CONSTRAINT multifieldindex 4.ALTER TABLE table DROP COLUMN field 5.ALTER TABLE table DROP CONSTRAINT indexname 6. 7.说明:table参数用于指定要修改的表的名称。 8.ADD COLUMN为SQL的保留字,使用它将向表中添加字段。 9.ADD CONSTRAINT为SQL的保留字,使用它将向表中添加索引。 10.DROP COLUMN为SQL的保留字,使用它将向表中删除字段。 11.DROP CONSTRAINT为SQL的保留字,使用它将向表中删除索引。 12.field指定要添加或删除的字段的名称。 13.type参数指定新建字段的数据类型。 14.size参数用于指定文本或二进制字段的长度。 15.indexname参数指定要删除的多重字段索引的名称。 16. 17.用sql*plus或第三方可以运行sql语句的程序登录数据库: 18. 19.ALTER TABLE (表名) ADD (列名数据类型); 20.ALTER TABLE (表名) MODIFY (列名数据类型); 21.ALTER TABLE (表名) RENAME COLUMN (当前列名) TO (新列名); /////不需要括号 22.ALTER TABLE (表名) DROP COLUMN (列名); 23.ALTER TABLE (当前表名) RENAME TO (新表名); 24. 25.如: 26.Alter Table Employ Add (weight Number(38,0)) ; 27. 28.Alter Table Employ Modify (weight Number(13,2)) ; 29. 30.Alter Table Emp Rename Cloumn weight To weight_new ; 31. ALTER TABLE emp DROP COLUMN weight_new ;

Oracle 建表(一对多)代码及相关约束示例

建表(一对多)代码及相关约束 create table t_class( c_id number(3) primary key, c_name varchar2(20) not null ); create table t_stu( s_id number(5) primary key, s_name varchar2(8) not null, sex char(2) default '男', birthday date, school_age number(2) check(school_age>0), school_score number(5,2), c_id number(3), id_card char(18) unique, foreign key(c_id) references t_class(c_id) ); 附:测试数据: insert into t_class values(1,'订单班'); insert into t_class values(2,'开发班'); insert into t_class values(3,'美工班'); insert into T_STU (S_ID, S_NAME, SEX, BIRTHDAY, SCHOOL_AGE, SCHOOL_SCORE, C_ID, ID_CARD) values (1, 'a', '男', to_date('01-01-1980', 'dd-mm-yyyy'), 24, 90, 1, null); insert into T_STU (S_ID, S_NAME, SEX, BIRTHDAY, SCHOOL_AGE, SCHOOL_SCORE, C_ID, ID_CARD) values (2, 'b', '男', to_date('11-05-1981', 'dd-mm-yyyy'), 23, 80, 1, null); insert into T_STU (S_ID, S_NAME, SEX, BIRTHDAY, SCHOOL_AGE, SCHOOL_SCORE, C_ID, ID_CARD) values (3, 'c', '女', to_date('19-09-1982', 'dd-mm-yyyy'), 22, 50, 1, null); insert into T_STU (S_ID, S_NAME, SEX, BIRTHDAY, SCHOOL_AGE, SCHOOL_SCORE, C_ID, ID_CARD) values (4, 'd', '女', to_date('28-01-1984', 'dd-mm-yyyy'), 21, 80, 2, null); insert into T_STU (S_ID, S_NAME, SEX, BIRTHDAY, SCHOOL_AGE, SCHOOL_SCORE, C_ID, ID_CARD)

模板专项施工方案(样本)

南水北调东线一期工程江苏通水应急调度中心 (调度灾备中心) 模板工程专项方案 编制: 审核: 批准: 江苏江都建设集团有限公司 2013年1月4日 1、工程概况

南水北调东线一期工程江苏通水应急调度中心(调度灾备中心)工程为二层建筑,建筑高度13.95m,其中一层高度为3.3m,二层6.36m,建筑物室内外高差0.45m。一层用途:活动室、门厅、讯问室、医务室、警卫室等,二层为办公区、休息厅、会议室、监控室,三层为大会议室、休息厅、办公室、贮藏室、音控室等,本工程外形为长方形,长64.8m(轴线间长度),宽49.00m(轴线间宽度)纵向共16个轴线,为1~14轴,横向为11个轴线分别为A~L轴。 结构形式: 基础为桩承台独立基础,上部为框架结构,结构安全等级为二级,抗震设防烈度为7度,框架抗震等级三级,按抗震等级二级采取抗震措施;墙体拉结筋按8度设防;楼梯间抗震等级为二级,抗震按一级等级执行。 2 3.1本工程采用12mm厚木胶板,其强度、刚度满足施工要求,木胶板表面平整光滑,易脱模。 3.2钢管:采用Ф48×2.7mm钢管,有弯折、空洞、锈蚀、裂纹等严重影响架体结构实体稳定性的管体严谨使用。 3.3扣件:有裂纹、滑丝的扣件严禁使用。 3.4架体底座采用木垫板,木垫板宽不小于300mm,厚度不小于50mm,垫板的延伸不得少于3跨。 4、施工工艺 4.1支设流程:柱梁板 4.2柱模板安装 4.3梁模板的安装 4.4板模板的安装 4.5梁板模板支撑系统的搭设 4.6架体支设要求 1)采用Ф48×2.7mm钢管搭设,立杆支设时可调底座配合使用。梁设双排架体,板设满堂架体,柱、梁、板应连成整体。 2)立杆底部应设置垫板,距基面、顶面200mm搭设扫地杆。架体安装在木垫板上,垫板地面应夯实整平。

Oracle内存全面分析

Oracle 内存内存全面全面全面分析分析 作者作者::fuyuncat 来源来源::https://www.sodocs.net/doc/b85494243.html, 作者简介 黄玮,男,99年开始从事DBA 工作,有多年的水利、军工、电信及航 运行业大型数据库Oracle 开发、设计和维护经验。 曾供职于南方某著名电信设备制造商——H 公司。期间,作为DB 组 长,负责设计、开发和维护彩铃业务的数据库系统。目前,H 公司的彩铃系 统是世界上终端用户最多的彩铃系统。最终用户数过亿。 目前供职于某世界著名物流公司,负责公司的电子物流系统的数据库开 发、维护工作。 msn: fuyuncat@https://www.sodocs.net/doc/b85494243.html, Email :fuyuncat@https://www.sodocs.net/doc/b85494243.html, Oracle 的内存配置与oracle 性能息息相关。而且关于内存的错误(如4030、4031错 误)都是十分令人头疼的问题。可以说,关于内存的配置,是最影响Oracle 性能的配 置。内存还直接影响到其他两个重要资源的消耗:CPU 和IO。 首先,看看Oracle 内存存储的主要内容是什么: ? 程序代码(PLSQL、Java); ? 关于已经连接的会话的信息,包括当前所有活动和非活动会话; ? 程序运行时必须的相关信息,例如查询计划; ? Oracle 进程之间共享的信息和相互交流的信息,例如锁; ? 那些被永久存储在外围存储介质上,被cache 在内存中的数据(如redo log 条 目,数据块)。 此外,需要记住的一点是,Oracle 的内存是与实例对应的。也就是说,一个实例就有 一个独立的内存结构。 先从Oracle 内存的组成架构介绍。 1. Oracle 的内存架构组成 Oracle 的内存,从总体上讲,可以分为两大块:共享部分(主要是SGA)和进程独享 部分(主要是PGA 和UGA)。而这两部分内存里面,根据功能不同,还分为不同内存池 (Pool)和内存区(Area)。下面就是Oracle 内存构成框架图:

独立柱模板工程施工方案

2014 G76地块项目A地块工程体育馆 排 架 搭 设 施 工 方 案 编制人: 审核人: 审批人: 江苏农垦建设有限公司 2016年07月

一、编制依据 1.工程图纸; 2.混凝土结构工程施工质量验收规范GB50204-2015; 3.建筑机械使用安全技术规程JGJ33-2015; 4.建筑工程施工质量验收统一标准GB50300-2013; 二、编制说明 1.该施工方案完全满足工程招标文件的有关要求,充分考虑了合同条款 中质量目标承诺,本着对业主负责的原则; 2.根据本工程的特点、有关施工规范的规定、本公司内部规章制度和质 量方针,本着优化施工方案、强化质量管理、合理降低工程造价,缩短工期的原则; 3.根据建设单位的要求和现场的条件,确保优质、高效、安全的完成本 工程的施工任务; 4.本工程施工的结构混凝土质量必须达到内坚实、外光滑的混凝土效果。 三、工程概况 本工程位于南京高新区。结构类型钢筋混泥土基础结构,主体为钢结构;基础均为混凝土独立基础。 四、施工准备 (一)施工技术准备 1. 认真阅读施工图,掌握设计的要领,明确设计意图,根据设计要求做好技术交底; 2. 选派有参加过同类工程、施工经验丰富,具有专业理论知识的人负

责模板技术,对工程的细部与结点进行具体放样; 3. 组织有多年施工经验的熟练工进场,进场后由模板班组长、施工员对本工种进行交底,提出技术、质量、安全等要求。 (二)材料要求 1. 木材材质不得采用有脆性、严重扭曲和受潮后容易变形的木材; 2. 模板所采用的木方必须加工成不翘曲、规格一致的模板背楞; 3. 木模板必须采购封边严实光滑的模板,规格一致,几何尺寸方正。采用旧胶板时,必须齐边刷胶封边。 (三)劳动力安排 (四)施工机械 ⑴针对本工程特点,施工前确定模板制作的几何形状、尺寸要求,龙骨的规格、间距、选用支架系统。 ⑵木模板备料:模板数量应按模板设计方案结合施工流水段的划分,进行综合考虑,合理确定模板的配置数量。 ⑶模板涂刷脱模剂,并分规格堆放;根据图纸要求,放好轴线和模板边线,定好水平控制标高。 ⑷柱、圈梁钢筋绑扎完毕,水电管及预埋件已安装,绑好钢筋保护层垫块,并办完隐蔽验收手续。

oracle复习题剖析

一、选择题 1. Oracle数据表中,下面哪个可以作为有效的列名( A )(选择一项) A. class B. 123_NUM C. date D. #123_NUM 2. Oracle中的三种系统文件分别是( ABC )〔选择三项〕 A. 数据文件 DBF B. 控制文件 CTL C. 日志文件 LOG D. 归档文件 ARC 3.下面哪个命令可以用来查看学生表(表名student)的表结构( C )〔选择一项〕 A. Select student ; B. Display student ; C. Describe student ; D. Show student ;。 4.下面哪个命令不属于数据定义语言(DDL)( D )(选择一项) A. alter table… B、drop index… C、create view… D、update tablename… 5.在设计数据库时,要充分考虑数据的完整性或准确性。下面关于primary key和unique的描述错误的是()〔选择一项) A. primary key用来在表中设置主键,主键列的值是不能重复的,用来唯一标识表中的每一条记录 B. 设为unique的列的值是不能重复的,用来唯一区别unique列的值 C. primary key列不可以有null值, 而unique列是可以有null的 D. primary key列和unique列都不可以有null值 6.假定有一张表员工表employee,其中一性别字段sex,该列只能存入'男'或'女'。为了维护数据的完整性,在设计数据库时,最好对sex字段添加约束,请问应该添加什么约束( B )(选择一项) A. primary key B、check C、default D、unique 7.为表TEST中ID列添加主键约束的语法是( D )〔选择一项〕 A. ALTER TABLE TEST CHANGE( ID INT PRIMARY KEY) B. ALTER TABLE TEST ADD( ID INT PRIMARY KEY)

柱子模板施工方案

柱子模板施工方案 篇一:独立柱模板工程施工方案 XX G76地块项目A地块工程体育馆 排架搭设施工方案 编制人: 审核人:审批人: 江苏农垦建设有限公司 XX年07月 一、编制依据 1. 工程图纸; 2. 混凝土结构工程施工质量验收规范GB50204-XX; 3. 建筑机械使用安全技术规程JGJ33-XX; 4. 建筑工程施工质量验收统一标准GB50300-XX;二、编制说明 1. 该施工方案完全满足工程招标文件的有关要求,充分考虑了合同条款中质量目标承诺,本着对业主负责的原则; 2. 根据本工程的特点、有关施工规范的规定、本公司内部规章制度和质量方针,本着优化施工方案、强化质量管理、合理降低工程造价,缩短工期的原则; 3. 根据建设单位的要求和现场的条件,确保优质、高效、安全的完成本工程的施工任务; 4. 本工程施工的结构混凝土质量必须达到内坚实、外光滑的混凝土效果。三、工程概况 本工程位于南京高新区。结构类型钢筋混泥土基础结

构,主体为钢结构;基础均为混凝土独立基础。四、施工准备 (一) 施工技术准备 1. 认真阅读施工图,掌握设计的要领,明确设计意图,根据设计要求做好技术交底; 2. 选派有参加过同类工程、施工经验丰富,具有专业理论知识的人负 责模板技术,对工程的细部与结点进行具体放样; 3. 组织有多年施工经验的熟练工进场,进场后由模板班组长、施工员对本工种进行交底,提出技术、质量、安全等要求。 (二) 材料要求 1. 木材材质不得采用有脆性、严重扭曲和受潮后容易变形的木材; 2. 模板所采用的木方必须加工成不翘曲、规格一致的模板背楞; 3. 木模板必须采购封边严实光滑的模板,规格一致,几何尺寸方正。采用旧胶板时,必须齐边刷胶封边。 (三) 劳动力安排 (四) 施工机械 ⑴针对本工程特点,施工前确定模板制作的几何形状、尺寸要求,龙骨的规格、间距、选用支架系统。 ⑵木模板备料:模板数量应按模板设计方案结合施工流水段的划分,进行综合考虑,合理确定模板的配置数量。 ⑶模板涂刷脱模剂,并分规格堆放;根据图纸要求,放好轴线和模板边线,定好水平控制标高。

oracle实例内存详解

一、名词解释 (1)SGA:SystemGlobal Area是Oracle Instance的基本组成部分,在实例启动时分配;系统全局域SGA主要由三部分构成:共享池、数据缓冲区、日志缓冲区。 (2)共享池:Shared Pool用于缓存最近被执行的SQL语句和最近被使用的数据定义,主要包括:Librarycache(共享SQL区)和Datadictionarycache(数据字典缓冲区)。共享SQL区是存放用户SQL命令的区域,数据字典缓冲区存放数据库运行的动态信息。 (3)缓冲区高速缓存:DatabaseBufferCache用于缓存从数据文件中检索出来的数据块,可以大大提高查询和更新数据的性能。 (4)大型池:Large Pool是SGA中一个可选的内存区域,它只用于shared server环境。 (5)Java池:Java Pool为Java命令的语法分析提供服务。 (6)PGA:Process Global Area是为每个连接到Oracle database的用户进程保留的内存。 二、分析与调整 (1)系统全局域: SGA与操作系统、内存大小、cpu、同时登录的用户数有关。可占OS系统物理内存的1/3到1/2。 a.共享池Shared Pool: 查看共享池大小Sql代码 SQL>show parameter shared_pool_size 查看共享SQL区的使用率: Sql代码 select(sum(pins-reloads))/sum(pins)"Library cache"from v$librarycache; --动态性能表 LIBRARY命中率应该在90%以上,否则需要增加共享池的大小。 查看数据字典缓冲区的使用率:

Oracle 插入数据

Oracle 插入数据 插入数据就是将数据放置到已经创建的表中,Oracle 数据库是通过INSERT 语句来实现插入数据的。一般情况下,使用INSERT 语句可以一次插入一行数据。 与SELECT 语句相比,INSERT 语句的使用方式要简单的多。在INSERT 语句的使用方式中,最为常用的形式是在INSERT INTO 子句中指定添加数据的列,并在V ALUES 子句中为各个列提供一个值。 下面语句将向SCOTT 模式中的EMP 表添加一条记录: SQL> insert into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) 2 values(7995,'A TG','CLERK',7782,to_date('2007-9-23','yyyy-mm-dd'),1300,null,10); 已创建 1 行。。 在向表中所有列添加数据时,可以省略INSERT INTO 子句后的列表清单,使用这种方法时,必须根据表中定义的列的顺序,为所有的列提供数据,用户可以使用DESC 命令查看表中定义列的顺序。下面的INSERT 语句在向EMP 表添加记录时省略了列清单: SQL> desc emp SQL> insert into emp 2 values(7996,'LI','CLERK',7782,to_date('2006-5-12','yyyy-mm-dd'),1200,null,10); 已创建 1 行。 在插入操作过程中,用户也可以根据实际情况只为部分列提供数据,而省略某些列的数据。注意这些列必须允许空值、有默认值或系统可以自动成生值等。例如,在EMP 表中,除EMPNO 列不允许空值外,其他列都可以为空值。 如果某个列不允许NULL 值存在,而用户没有为该列提供数据,则会因为违反相应的约束而插入失败。事实上,在定义表的时候为了数据的完整性,经常会为表添加许多约束。例如,在EMP 表中为了保证表中每条记录的惟一性,在表的EMPNO 列上定义了主键约束。如果用户试图为表中的EMPNO 列添加一个重复值,则因为违反主键约束而失败: SQL> insert into emp(empno,ename,job) 2 values(7782,'KING','CLERK'); insert into emp(empno,ename,job) * 第 1 行出现错误: ORA-00001: 违反唯一约束条件 (SCOTT.PK_EMP) 关于为表定义完整性约束,将在后面的章节中介绍,这里需要记住的是在向表添加记录时,添加的数据必须符合为表定义的所有完整性约束。 INSERT 语句还有一种用法,可以实现一次向表中添加一组数据。即使用SELECT 语句替换V ALUES 子句,这样由SELECT 语句提供添加的数值。例如,下面的示例从EMP 表提注 意 使用这种方法插入数据时有一个大隐患,如果为表指定的数值位置不对, 并且指定的数据类型之间可以转化,则执行该语句时系统不会返回任何错误信 息。但是这会为该表添加一条错误的记录。由于这种错误难以发现,所以在添加记录时最好在INSERT INTO 子句中指定列清单,以明确接收数据的列。

Oracle基础练习题及答案(表约束)

练习作业 创建表emp1,字段如下 eno char(3), ename char(6) sex char(2) age number(2) dno char(3) 并插入如下数据 1 ,TOM ,男,21 ,’001’ 2 ,JERRY ,男,21 ,’002’ 3 ,KATE ,女,21 ,’003’ 4 ,MARY ,女,21 ,’004’ 5 ,JACK ,男,21 ,’005’ i.在eno字段上创建主键约束 ii.在ename字段上创建非空约束 iii.创建检查约束判断age在18到60岁之间的男性或者age在18到55岁之间的女性iv.在dno字段上创建唯一性约束 create table emp1( eno char(3) primary key, ename char(6) not null, sex char(2), age number(2), dno char(3) unique, constraint sex_age check( ((age between18and60) and sex='男') or ((age between18and55) and sex='女')) ) insert into emp1 values('1','TOM','男',21,'001') insert into emp1 values('2','JERRY','男',21,'002');

insert into emp1 values('3','KATE','女',21,'003'); insert into emp1 values('4','MARY','女',21,'004'); insert into emp1 values('5','JACK','男',21,'005'); v.创建和emp1表字段相同的emp_bak表,将emp_bak表的eno字段与emp表的eno字段创建外键约束 create table emp_bak as select * from emp1 where1=2 alter table emp_bak add constraint v foreign key(eno) references emp1(eno); 1、请创建一个表,表名为phone,表结构如下 电话号码(PHONENUM VARCHAR2(8)) 电话费(PAY number(8,2)) 号码等级(NUMLEVEL VARCHAR2(4)) 费用日期(PAYDATE varchar2(12) create table phone ( phonenum varchar2(8), pay number(8,2), numlevel varchar2(4), paydate varchar2(12) ) 1)插入以下两条数据. 123456, 600, pt04, 20051220 888888, 900, pt05, 20051019. insert into phone values('123456',600,'pt04', '20051220'); insert into phone values('888888',900,'pt05', '20050919');

Oracle 非空约束

Oracle 非空约束 非空约束就是限制必须为某个列提供值。空值是不存在的,它即不是数字0,也不是空字符串,而是没有、未知。 在表中,当某些字段的值是不缺少的,那么就可以为该列定义为非空约束。这样当插入数据时,如果没有为该列提供数据,那么系统就会出现一个错误消息。 如果某些列的值是可有可无的,那么可以定义这些列允许空值。这样,在插入数据时,就可以不向该列提供具体的数据。在默认情况下,表中的列是允许空值的。 例如,在创建EMPLOYEES表时,规定EMPNO、ENAME和DEPTNO列不能为空值:SQL> create table employees( 2 empno number(10) not null, 3 ename varchar2(20) not null, 4 sex char(2), 5 salary number(8,2), 6 hiredate date default sysdate, 7 job varchar2(10), 8 email varchar2(50), 9 deptno number(3) not null); 表已创建。 也可以使用ALTER TABLE MODIFY语句为已经创建的表删除或重新定义NOT NULL 约束。例如,下面的语句为SALARY字段定义了非空约束: SQL> alter table employees 2 modify salary not null; 表已更改。 在为表中的字段定义了非空约束后,当用户向表插入数据时,如果未向对应的字段提供值,则添加数据操作将返回一个如下所示的错误: SQL> insert into employees(ename,sex,salary,deptno) 2 values('刘丽','男',1500,20); insert into employees(ename,sex,salary,deptno) * 第 1 行出现错误: ORA-01400: 无法将NULL 插入("SCOTT"."EMPLOYEES"."EMPNO") 如果使用ALTER TABLE … MODIFY为表添加NOT NULL约束,并且表中该列的数据已经存在NULL值,则向该列添加NOT NULL约束将失败。这是因为当为该列应用非空约束时,Oracle将会试图检查表中的所有的行,以验证所有行在对应的列是否存在NULL值。 使用ALTER TABLE … MODIFY语句还可以删除表中非空约束。例如,下面的语句删除了SALARY列的非空约束: SQL> alter table employees 2 modify salary null;

相关主题