




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
CREATE TABLE cd_study_detail ( row_id VARCHAR2(20) UNIQUE, id_card VARCHAR2(20) PRIMARY KEY, study_date DATE CHECK (study_date LIKE %-%-%), study_desc VARCHAR2(50) , study_sco NUMBER(10,1), CONSTRAINT dtudy_role_fk FOREIGN KEY(id_card) REFERENCES neu_study(id_card);CREATE TABLE neu_study ( row_id VARCHAR2(20) UNIQUE, id_card VARCHAR2(20) PRIMARY KEY, birth_day DATE CHECK (birth_day LIKE %-%-%), role_id VARCHAR2(20) , per_remark VARCHAR2(255), base_salry NUMBER(10,4) CHECK (base_salry BETWEEN 500 AND 2000), fact_salry NUMBER(10,4), create_date DATE DEFAULT SYSDATE CHECK (create_date LIKE %-%-%), last_up_date DATE CHECK (last_up_date LIKE %-%-%), CONSTRAINT dtudy_role_fk FOREIGN KEY(字段) REFERENCES 表名(字段) /字段后直接加 references 表名(字段名)创建外键更好)DROP TABLE neu_study;CREATE TABLE ROLE( cd_role VARCHAR2(20) PRIMARY KEY, role_name VARCHAR2(20) UNIQUE)SELECT * FROM neu_studySELECT * FROM ROLEINSERT INTO ROLE VALUES(&请输入部门编号,&请输入部门姓名);CREATE SEQUENCE seq_study START WITH 1 INCREMENT BY 1;DROP SEQUENCE seq_study;INSERT INTO neu_study VALUES(seq_study.NEXTVAL,&请输入身份证号, to_date(&请输入生日,yyyy-mm-dd),&请输入部门编号,&备注, &请输入基本工资,&请输入当前实际工资, to_date(&请输入创建工资的日期,yyyy-mm-dd), to_date(&请输入最后更新工资的日期,yyyy-mm-dd); INSERT INTO neu_study VALUES(seq_study.NEXTVAL,2100902930, to_date(1986-02-03,yyyy-mm-dd),1102,无, 2000,600, to_date(2010/11/10,yyyy-mm-dd), to_date(2010/11/16,yyyy-mm-dd); COMMIT;SELECT *FROM neu_study;/Oracle的基本操作Oracle字段类型(zz) 在Oracle关于时间属性的建表Example:create table courses(cid varchar(20) not null primary key,cname varchar(20) not null,ctype integer,ctime date DEFAULT SYSDATE,cscore float not null)insert into courses values(ss01,java,0,TO_DATE(2009-8-28,yyyy-mm-dd),94)insert into courses values(ss02,music,1,TO_DATE(2009-8-27,yyyy-mm-dd),88)insert into courses values(ss03,c+,0,TO_DATE(2009-8-29,yyyy-mm-dd),78)在PL/SQL建表以后,记得commit,才能在pl/sql上查询到数据。对于日期类型将字符串转换成日期: Insert Into table(col_date)Values(to_date(2003-01-16,yyyy-mm-dd); 将日期转换成字符串: Insert Into table (col_char)Values(to_char(Date,format); select * from courses where ctimeto_date(2009-8-28,yyyy-mm-dd) 创建表 1. ORACLE常用的字段类型 ORACLE常用的字段类型有 VARCHAR2 (size) 可变长度的字符串, 必须规定长度 CHAR(size) 固定长度的字符串, 不规定长度默认值为 NUMBER(p,s) 数字型p是位数总长度, s是小数的长度, 可存负数 最长38位. 不够位时会四舍五入. DATE 日期和时间类型 LOB 超长字符, 最大可达4G CLOB 超长文本字符串 BLOB 超长二进制字符串 BFILE 超长二进制字符串, 保存在数据库外的文件里是只读的.数字字段类型位数及其四舍五入的结果 原始数值1234567.89 数字字段类型位数 存储的值 Number 1234567.89 Number(8) 12345678 Number(6) 错 Number(9,1) 1234567.9 Number(9,3) 错 Number(7,2) 错 Number(5,-2) 1234600 Number(5,-4) 1230000 Number(*,1) 1234567.92. 创建表时给字段加默认值 和约束条件 创建表时可以给字段加上默认值 例如 : 日期字段 DEFAULT SYSDATE 这样每次插入和修改时, 不用程序操作这个字段都能得到动作的时间创建表时可以给字段加上约束条件 例如: 非空 NOT NULL 不允许重复 UNIQUE 关键字 PRIMARY KEY 按条件检查 CHECK (条件) 外键 REFERENCES 表名(字段名)3. 创建表的例子 CREATE TABLE DEPT( EPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY, DNAME VARCHAR2(14), LOC VARCHAR2(13) ;CREATE TABLE region( ID number(2) NOT NULL PRIMARY KEY, postcode number(6) default 0 NOT NULL, areaname varchar2(30) default NOT NULL);4. 创建表时的命名规则和注意事项 1)表名和字段名的命名规则:必须以字母开头,可以含符号A-Z,a-z,0-9,_,$,# 2)大小写不区分 3)不用SQL里的保留字, 一定要用时可用双引号把字符串括起来 4)用和实体或属性相关的英文符号长度有一定的限制注意事项: 1)建表时可以用中文的字段名, 但最好还是用英文的字段名 2)创建表时要把较小的不为空的字段放在前面, 可能为空的字段放在后面 3)建表时如果有唯一关键字或者唯一的约束条件,建表时自动建了索引 4)一个表的最多字段个数也是有限制的,254个.5. 约束名的命名规则和语法 约束名的命名规则约束名如果在建表的时候没有指明,系统命名规则是SYS_Cn(n是数字) 约束名字符串的命名规则同于表和字段名的命名规则6. 使用约束时的注意事项 约束里不能用系统函数,如SYSDATE和别的表的字段比较 可以用本表内字段的比较想在事务处理后, 做约束的检查 SQL alter session set constraints deferred.7. 由实体关系图到创建表的例子 s_dept 前提条件:已有region表且含唯一关键字的字段id SQL CREATE TABLE s_dept (id NUMBER(7) CONSTRAINT s_dept_id_pk PRIMARY KEY, name VARCHAR2(25) CONSTRAINT s_dept_name_nn NOT NULL, region_id NUMBER(7) CONSTRAINT s_dept_region_id_fk REFERENCES region (id), CONSTRAINT s_dept_name_region_id_uk UNIQUE(name, region_id);8. 较复杂的创建表例子 SQL CREATE TABLE s_emp (id NUMBER(7) CONSTRAINT s_emp_id_pk PRIMARY KEY, last_name VARCHAR2(25) CONSTRAINT s_emp_last_name_nn NOT NULL, first_name VARCHAR2(25), userid VARCHAR2(8) CONSTRAINT s_emp_userid_nn NOT NULL CONSTRAINT s_emp_userid_uk UNIQUE, start_date DATE DEFAULT SYSDATE, comments VARCHAR2(25), manager_id NUMBER(7), title VARCHAR2(25), dept_id NUMBER(7) CONSTRAINT s_emp_dept_id_fk REFERENCES s_dept(id), salary NUMBER(11,2), commission_pct NUMBER(4,2) CONSTRAINT s_emp_commission_pct_ck CHECK (commission_pct IN(10,12.5,15,17.5,20);8. 通过子查询建表 通过子查询建表的例子 SQLCREATE TABLE emp_41 AS SELECT id, last_name, userid, start_date FROM s_emp WHERE dept_id = 41;SQL CREATE TABLE A as select * from B where 1=2; 只要表的结构.10. 用子查询建表的注意事项 1)可以关连多个表及用集合函数生成新表,注意选择出来的字段必须有合法的字段名称,且不能重复。 2)用子查询方式建立的表,只有非空NOT NULL的约束条件能继承过来, 其它的约束条件和默认值都没有继承过来. 3)根据需要,可以用alter table add constraint 再建立其它的约束条件,如primary key等.11. Foreign Key的可选参数ON DELETE CASCADE 在创建Foreign Key时可以加可选参数: ON DELETE CASCADE它的含义是如果删除外键主表里的内容,子表里相关的内容将一起被删除. 如果没有ON DELETE CASCADE参数,子表里有内容,父表里的主关键字记录不能被删除掉.12. 如果数据库表里有不满足的记录存在,建立约束条件将不会成功.13. 给表创建和删除同义词的例子 SQL CREATE SYNONYM d_sum 2 FOR dept_sum_vu;SQL CREATE PUBLIC SYNONYM s_dept 2 FOR alice.s_dept;SQL DROP SYNONYM s_dept;Oracle添加修改删除表字段1、添加字段 alter table table_name add column1 type add column2 type add column3 type . ; 2、删除字段 alter table table_name drop column column_name; 3、修改字段 alter table table_name modify (column_name type); 14.修改字段名方法:ALTER TABLE 表名MODIFY(字段名 not null)15. 请问如何修改一张表的主键? alter table aaa drop constraint aaa_key ; alter table aaa add constraint aaa_key primary key(a1,b1) ; 16.如果该字段不是外键中的字段,你可以通过:alter
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房间隔缺损的护理查房
- 2024中铁大桥局集团有限公司校园招聘笔试参考题库附带答案详解
- 七年级英语下册 Unit 2 Its Show Time《lesson 12 A blog about the silk road》教学设计 (新版)冀教版
- 七年级生物上册 3.5.2营养物质的作用教学设计 (新版)苏科版
- 创业培训总结文案工作流程
- 2024中国邮政集团有限公司贵州省分公司夏季招聘176人笔试笔试参考题库附带答案详解
- 2024中国联通软件研究院校园招聘(19个岗位)笔试参考题库附带答案详解
- 班主任培训交流会心得分享
- 九年级化学下册 第8单元 金属和金属材料 课题3 金属资源的利用和保护 第2课时 金属资源的保护教学设计 (新版)新人教版
- 全国青岛版信息技术八年级下册第2单元第5课《谜语大擂台(二)》教学设计
- 银行内控案防警示教育
- 2024-2025学年湖南省长沙市八年级(上)期末物理试卷(含解析)
- 2025-2030中国镀锌钢板行业市场发展趋势与前景展望战略研究报告
- 施工合同中约定的安全防护、文明施工措施费用支付计划
- 2025年安阳职业技术学院单招职业倾向性测试题库带答案
- 2025年审计监察面试题及答案
- nginx面试题及答案100道
- 2025年开封大学单招职业技能测试题库及答案1套
- 小学教师招聘-《小学教育学》押题密卷1
- 《InSAR干涉测量》课件
- 2025年脑机接口蓝皮书:未来将至打造人机交互新范式-前瞻研究院
评论
0/150
提交评论