`
dushanggaolou
  • 浏览: 171204 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Oracle字段的增删改查

阅读更多

--创建表
--cteate table 表名(
         --字段名 数据类型 约束,
         --字段名 数据类型 约束
--)
Create table stu(
  Sid number(10),
  Sname varchar2(10)
) tablespace tt;
--以上 tablespace不是必须的。默认不写,则创建在登录的用户所在的表空间上
 select * from all_tables where owner='SCOTT'

--使用子查询创建表
create table myemp as select * from emp;                 创建一张与emp表 结构和数据完全相同的表

create table myemp as select * from emp where deptno=10;   创建一张只有部分结果的新表 
create table myemp as select * from emp where 1=2;              创建一张只有emp表的结构,但是不含任何结果的空表

 

--添加字段
--alter table 表名 add 新列字段名 数据类型;
Alter table stu add age number(3); 
                                                                                                                 
--修改字段
--alter table 表名 modify 字段名 新的数据类型
Alter table stu modify Sage number(10);
--alter table 表名 rename column 原来的名字 to 新的名字;
alter table stu rename column age to Sage;


--删除字段
--alter table 表名 drop column 列名
Alter table stu drop column Sage;

 

--清空表中数据 delete ,回滚
--清空表中数据
Truncate table student;  
--则表示所删除的数据不可恢复了.所以速度很快

--删除表
Drop table student;

--重命名表
Rename student to student1;

 

-- 插入数据
INSERT INTO person(pid,name) VALUES (11,'张三');
 
--PRIMARY KEY:主键约束
--不能重复,不能为空
--例如:身份证号不能为空。 
 
--UNIQUE:唯一约束,值不能重复(空值除外)
--人员中有电话号码,电话号码不能重复。 
 
--CHECK:条件约束,插入的数据必须满足某些条件
--人员有年龄,年龄的取值只能是0~150岁之间
DROP TABLE person ;
CREATE TABLE person
(
 pid  NUMBER PRIMARY KEY NOT NULL ,                                                                                                                                                                                                                                                                                          
 name VARCHAR(30)  NOT NULL ,
 tel  VARCHAR(50)  NOT NULL UNIQUE ,
 age  NUMBER   CHECK(age BETWEEN 0 AND 150)
) ;
-- 插入数据
INSERT INTO person(pid,name,tel,age) VALUES (11,'张三','1234567',30);
-- 年龄的输入错误
INSERT INTO person(pid,name,tel,age) VALUES (12,'李四','2345678',-100);
 
--Foreign Key:外键 
                                                                                                                        
 
alter 命令为表添加约束
--、 为两个表添加主键:
--• person表 pid为主键:
   ALTER TABLE person ADD CONSTRAINT person_pid_pk PRIMARY KEY(pid) ;
--为person表中的 tel添加唯一约束:
  ALTER TABLE person ADD CONSTRAINT person_tel_uk UNIQUE(tel) ;
--为person表中的 age添加检查约束:
  ALTER TABLE person ADD CONSTRAINT person_age_ck CHECK(age BETWEEN 0 AND 150) ;
--为book表中的 pid添加与 person的主-外键约束,要求带级联删除
  ALTER  TABLE  book  ADD  CONSTRAINT  person_book_pid_fk  FOREIGN  KEY  (pid)
  REFERENCES person(pid) ON DELETE CASCADE ;
--删除约束:
 ALTER TABLE book DROP CONSTRAINT person_book_pid_fk ;
alter table student drop unique(tel);
--启用约束
ALTER TABLE book enable CONSTRAINT person_book_pid_fk ;
--禁用约束
ALTER TABLE book disable CONSTRAINT person_book_pid_fk ;

 

--视图:是一个封装了各种复杂查询的语句,就称为视图。
--CREATE VIEW  视图名字(字段) AS  子查询
create view empv_all as select * from scott.emp;

 

--创建序列
Create sequence myseq
Start with 1  
Increment by 1  
Order
cache 20 --设置是否在内存里缓冲
Nocycle;
--NextVal,CurrVal
Select myseq.nextval from dual;
Select myseq.currval from dual;
--(必须先有 nextval,才能有currval)

                                                                                                                      
--查询完之后就已经自增 1了

create table t1 (

       id int
      
)
select * from t1;
Insert into t1 values(myseq.nextval)  --这时候已经是2了
 
--Cycle,Cache
--而用了 nocycle,就可以确保当该序列用于多张表的时候,ID 是唯一的
 
--用 cycle时,用法如下:
create sequence myseq2 start with 1 increment by 1 cycle maxvalue 3
nocache ;

Select myseq2.nextval from dual;
Select myseq2.currval from dual;
--这样到3之后,要会重新从1开始  
--如果指定CACHE值,ORACLE就可以预先在内存里面放置一些sequence,这样存取的快些。cache里
--面的取完后,oracle自动再取一组到cache。 使用cache或许会跳号, 比如数据库突然不正常down掉
--(shutdown abort),cache中的sequence就会丢失. 所以可以在create sequence的时候用nocache防止
--这种情况
 
--不能改变当前值,但是可以改变增量
Alter sequence myseq increment by 3;


--同义词
--在任何一个用户下,都可以直接访问 dual,而不需要加上前缀的用户名如:scott.emp
Select * from dual;
 
--为什么?因为同义词的存在  
--Dual其实是sys用户下的一张表
select table_name from user_tables where lower(table_name) = 'dual';  
--作用:
--很方便的操作不同用户下的对象
--能使两个应用程序使用不同的名字指向同一张表
--使用不同的用户指向同一张表的。

Create synonym dept for soctt.dept;--(这样创建的同义词是私有的,只有创建者才能用)
Drop synonym dept;
Create public synonym dept for soctt.dept;--(这样创建的同义词才是公有的)
Drop public synonym dept;

 

--建立索引
create index emp_ix on emp(ename);

 
 
 

 

 

 

 

 

 

 

 



 

分享到:
评论

相关推荐

    jsp_oracle增删改查

    jsp oracle增删改查操作,用最原始,最简单的的jdbc方式,提某位同学做的作业。估计很多人也要做同样的作业。所以传上来。 需要自己建一张表System.StuTable。4个字段,stuName,stuNumber,stuSex,ID

    mybatis+spring+struts2 使用oracle数据库 增删改查

    mybatis+spring+struts2 使用oracle数据库 增删改查,是把csdn原先的mysql数据库改成oracle数据库,直接在myeclipse上导入就行,并添加数据库myuser表,还有id,username,password等字段,压缩包下又myuser用记事本...

    Java反射泛型,实现数据库的动态增删改查等功能

    在Java中运用反射+泛型,实现数据库的动态增删改查等功能,可以是Mysql, 也可以是SQL Server,oracle 也行。本代码是支持SQL Server和oracle的。

    oracle数据库中的对表中字段的增删改查

    NULL 博文链接:https://dampce032.iteye.com/blog/976695

    简单部门表的增删改查基于Oracle

    没使用框架,基于selvret和Oracle数据库实现的,适用于初学者

    SSH实现的基本功能增删改查

    登录,增删改查,这些功能全都有,只要你把数据库弄出来。。。 (因为数据库里就一个users表只有三个字段id,username,password,所以我在这里也懒得建了,请原谅!哦,对了,数据库用的是oracle 10g)

    Ibatis资源,增删改查代码都有

    这是本人只使用Ibatis做的一个增删改查的例子,里面注释写得很详细,可以直接运行,使用的是Oracle数据库,数据库表只有两个字段,id 跟name,表名就为Ibatis.如有什么不懂也可加我QQ:519603116

    python cx_Oracle的基础使用方法(连接和增删改查)

    使用python操作oracle数据库,获取表的某几个字段作为变量值使用。 使用Popen+sqlplus的方法需要对格式进行控制,通过流获取这几个字段值不简洁(个人观点……)。(优点是能够使用sqlplus的方法直接访问sql文件,不...

    Oracle的CLOB大数据字段类型操作方法

    VARCHAR2既分PL/SQL Data Types中的变量类型,也分Oracle Database中的字段类型,不同场景的最大长度不同。接下来通过本文给大家分享Oracle的CLOB大数据字段类型操作方法,感兴趣的朋友一起看看吧

    数据库ORACLE命名规范(标准版)

    数据库ORACLE命名规范(标准版),在oracle行业内的统一标准,包括数据字典、约束、增删改查等标准的命名规范

    ThinkPHP写的增删改的完整功能例子

    thinkPHP框架写的增,删,修功能,优化ThinkPHP自带的提示功能,很好的thinkphp入门学习的实例,亲测通过。 数据库请自己建,数据库名称:user 字段: id, username,password,address,age,createtime,createip。

    jdbc 处理clob类型字段

    主要是整合了jdbc处理clob类型的增删改查方法,有需要的同学可以看下

    ssmCrudOracleDemo

    ssm框架连接Oracle的简单的增删改查,适合初学者。仅涉及一张Oracle表,数个字段。

    oracle全程笔记及代码

    (2)关系模型的组成:数据结构+数据操作+数据完整性,数据结构指表、数据操作指数据的CRUD(create---insert,R read----select,update,delete 增删改查等操作) 完整性约束是指数据的正确性与完备性。 1)表:...

    java项目代码生成器

    非常好用的代码生成器,最新版,传智播客出品,支持多种代码模板生成,包括前端页面,csdn首发.支持springboot+springdatajpa微服务;...选择你的数据库,然后就可以根据字段生成增删改查代码,再配合mybatis逆向工程,一键构站

    JSP对Oracle数据库的操作

    用JSP链接Oracle数据库,使用jdbc技术,链接驱动,对数据的进行增,删,改,以及不同字段的查询实现!

    自己封装的jdbc工具类

    给学生讲课课上写的jdbc封装类,对基本的增删改查和事务做了封装。例子中用的是oracle 11g数据库,如果换其他数据库直接改连库字符串就行,其他的不用动,适合初学者学习。查询的时候会省掉很多工作量,不需要一个一...

    oracle 数据按主键删除慢问题的解决方法

    增删改查使用hibernate实现。 一开始一直以为是hibernate的内部处理上有关联操作导致的删除和更新数据缓慢。所以将原先使用hibernate的saveOrupdate方法,改查jdbc的 sql语句来处理update和delete数据操作。但是依然...

    Oracle数据库课程设计报告(1).doc

    设计环境 1.Windows7旗舰版32位 2.Microsoft Visual Studio 2005 3.Oracle 11g 第2章 概要设计 2.1系统需求分析 图书管理系统主要是用oracle数据库进行逻辑处理,实现对图书信息的增删改查,以 及出库入库的管理。...

    jdbc连接oracle

    jdbc连接oracle,并实现增、删、改、查(数据库user 字段username,password)

Global site tag (gtag.js) - Google Analytics