这下以后用起来就方便了。可算是找到了

Orcl 数据库服务 启动项:

OracleDBConsoleorcl

OracleOraDb10g_home1iSQL*Plus

OracleOraDb10g_home1TNSListener

OracleServiceORCL

都被我配置了延迟启动。。。这样好歹 能让我先做点儿 什么。

2016.2.2今天配置成了手动启动。
GOODS_ID GOODS_NAME GOODS_PRICE GOODS_CA GOODS_PROVIDER

-------- ---------- ----------- -------- ---------------------

1        shangpin1           50 weijin   33

插入语句。

SQL> insert into goods_tb values(2,'weijin',35,'yongpin',33);

-- 修改表结构。

SQL> alter table goods_tb modify(goods_name varchar2(10));

创建表:

Create table test_tb(

Test_id number(2),

Test_name varchar(20)

);

Select * from emp where sal>all(select sal from emp where deptno=20);

添加约束:

主键约束:

alter table employee_tb add constraint pk_employee_tb_id primary key (employee_id);

外键约束:

alter table employee_tb add constraint fk_employee_tb_id foreign key (department_id) references department_tb(department_id);

复合主键:

create table depart_pos(

department_id int not null,

position_id int not null,

primary key (department_id,position_id)   #设定复和主键

);

数据库各项异常:

Ora-02290 违反检查约束条件

Ora-00291 未找到父项关键字

Ora-00298 父项关键字 不匹配

Ora-00904 标识符无效

ora-00911 无效字符 【插入语句当中本来是用英文逗号分割的,而我的用的是中文的。】

大部分情况下,此错误是由于引用了不存在的列名导致的。比如select name from Studtent 当studeng表中无name列时,系统就会报此错误。

--  数据库 命名的规范问题  tb  下划线隔开   不能使用数字开头

--  数据库也有数据类型   varchar2

-- 创建表格

--  表格中的字段应该选择什么样 数据类型

--  主键id  都选择 number  int

--  char  数据的长度不会经常变化的时候  varchar2  变化的时候

create table  emp_tb(

emp_id number,

emp_name varchar2(20),

emp_sex  char(4),

emp_age  number,

emp_sal  number(9,2),

emp_time date

)

create  table   dept_tb(

dept_id   number,

dept_name  varchar2(20)

)

-- 删除表格

select * from  stu_tb3;

drop table  stu_tb3;

-- 修改表格

-- 表结构的修改

--  添加一个字段

alter table  emp_tb add  dept_id number;

select * from emp_tb;

--  修改字段 类型

--  你要是 改字段类型 或者 是长度的时候   一定要谨慎

alter table  emp_tb  modify emp_age varchar2(10)

alter table  emp_tb  modify emp_age int

--  删除字段

alter  table  emp_tb  drop column  emp_age;

--  表数据的操作

select * from  emp_tb;

insert into  emp_tb (emp_id,emp_name,emp_time) values(3,'zhangsan','1-1月-2016');

update  emp_tb  set  emp_name = 'wangwu' where  emp_id = 2;

delete from emp_tb  where  emp_id = 2;

commit;

select * from  emp_tb;

--  在当前的事物上 这只一个保存点

savepoint  a;

delete  from  emp_tb  where  emp_id = 2;

savepoint  b;

delete  from  emp_tb;

select * from  emp_tb;

commit;

rollback to a;

--  表约束的操作

--  约束

--  目的:  保证我们数据表数据的完成性

--  每个字段的数据类型和长度  也都一种约束

--  not  null   unique   check  primary key  foregin key

--  没有任何约束 不行的 至少 都得有一个 主键

--  在创建表的同时 在字段后面 直接添加

create  table  stu_tb1(

stu_id  number not null,

stu_name  varchar2(20) unique

)

--  primary  key   自身有三个内容  非空  唯一  索引

create  table  stu_tb2(

stu_id  number  primary key,

stu_name  varchar2(20) unique

)

--  check

create  table  stu_tb3(

stu_id  number primary key ,

stu_name  varchar2(20),

stu_sex  char(4)  default '男',

stu_age  number  check (stu_age between 18 and 60)

)

drop table  stu_tb3;

select * from  stu_tb1;

--  在创建表的同时 在所有字段后面  添加约束

create  table  stu_tb4(

stu_id  number,

stu_name  varchar(2),

constraint pk_stu_tb4_id  primary  key(stu_id),

constraint un_stu_tb4_name unique (stu_name)

)

--  在创建表格以后  再去添加约束

select * from  emp_tb;

alter  table  emp_tb  modify emp_name varchar(20) not null

alter  table  emp_tb  add

constraint pk_emp_tb_id primary key (emp_id)

--

alter table  dept_tb  add

constraint  pk_dept_tb_id  primary key (dept_id)

--  外键约束

alter table  emp_tb  add

constraint fk_emp_tb_dept_id  foreign key (dept_id)

references  dept_tb(dept_id)

--数据查询

--  基本查询

-- 查询所有字段

select * from emp;

-- 查询指定的字段

select empno,ename,job from emp;

select distinct job,empno  from emp;

--  给查询的字段 取别名

select  empno as "编号",ename as empname from emp;

--  查询每个员工 年薪

select  empno,ename,sal*12 as "年薪" from emp;

--  mysql ifnull()

select  empno,ename,(sal+nvl(comm,0))*12 as "年薪" from emp;

select * from emp

-- 条件查询

--  如果查询工资高于3000 的员工的信息;

select empno,ename,job,sal from  emp where  sal > 3000;

select * from  emp where  hiredate > '1982/1/1';

select * from  emp  where sal between 2000 and 3000;

select * from  emp where  sal >=2000 and  sal<=3000;

select * from  emp where  ename  like  '%A%'

select * from  emp where  ename  like '__A%'

--  复习

select * from  emp

-- 排序查询

-- 聚合函数查询

-- 分组查询

--  复习

select * from emp;

select deptno,job,sal from  emp  where  ename='SMITH';

select (sal+nvl(comm,0))*12 from emp;

---

select * from  emp  where  empno not in(7839,7844,123,456)

select * from emp  where  mgr is not null;

--查询工资高于500或者是岗位为MANAGER的雇员,

--同时还要满足他们的姓名首字母为大写的J?

select * from  emp

where (sal>500 or job = 'MANAGER') and ename like 'J%'

select * from  emp where 1=1 and  order by sal;

--  from  where  select  order by

select * from  emp  order by deptno ,sal desc ;

--  按照年薪排序

select (sal+nvl(comm,0))*12 as "年薪" ,ename from emp

order  by  (sal+nvl(comm,0))*12 desc;

--分组函数

select  max(sal),min(sal),avg(sal),sum(sal),count(*) from emp;

select count(empno) from emp;

--  分组查询

--  如果你要进行 分组查询 select 中 就只能 显示 分组字段  或者 分组函数

select deptno,max(sal),avg(sal) from  emp where 1=1

group by deptno order by avg(sal);

-- from  where group by  having select order by

select deptno,max(sal),avg(sal) from  emp where 1=1

group by deptno having avg(sal)>3000 order by avg(sal);

--  最大工资的那个人叫啥

--  条件子查询

select  ename,sal from  emp where  sal > (select avg(sal) from emp);

--  笛卡尔积现象

select * from  emp;

select * from  dept;

select * from  emp e,dept d;

-- 关联查询

--  内连接查询

select * from emp e,dept d where  e.deptno = d.deptno;

select * from  emp e inner join  dept d  on e.deptno = d.deptno

--  外连接查询

--  左外联

select * from  emp e left join  dept  d on  e.deptno = d.deptno;

--select  * from emp e,dept d where  e.deptno =* d.deptno;

--  右外联

select * from  emp e right join  dept  d on  e.deptno = d.deptno;

--  全外联

select * from  emp e  full join  dept  d on  e.deptno = d.deptno;

--  自连接查询

select e.empno,e.ename,e2.empno,e2.ename

from  emp e  inner join  emp e2 on e.mgr = e2.empno

--  工资的级别

select * from salgrade;

select e.ename,e.sal,s.grade from  emp e,salgrade s

where  e.sal between  s.losal and s.hisal;

--  子查询

--  条件子查询

--  单列子查询

--  单列单行

select * from  emp where  sal = (select max(sal) from emp);

select * from emp where  deptno =

(select  deptno from emp where  ename ='SMITH');

--  单列  多行

select * from emp  where  job in(

select distinct job  from emp where  deptno = 20);

--- 多列子查询

select * from  emp where  (job,deptno) = (

select job,deptno from  emp where  ename = 'SMITH');

select * from emp where sal>(

select max(sal) from emp where  deptno = 30);

select * from  emp where  sal > all(

select sal from emp where  deptno = 30);

--  from 子句子查询

select * from (select  empno,ename,sal from  emp)

a where  a.sal = 100;

--  分页查询

select * from (

select e.*, rownum rn from emp e

order by empno desc) a where a.rn<11 and a.rn>5;

select * from (

select e.*, rownum rn from emp e  where rownum<=10

order by empno desc) a where a.rn>5;

--  索引  提高查询的效率

--  主键来讲  默认就有索引

--  单列索引

create index emp_tb_index_emp_name on emp_tb(emp_name)

--  多列索引

create index emp_tb_index_emp_name2 on emp_tb(emp_name,emp_sex)

--  索引是在数据库表使用的后期,用来对数据库查询的一个优化

--  大表:字段比较多, 数据比较

--  经常会被用在where 条件,  外键字段,

select * from emp_tb;

select index_name,table_name from  user_indexes

where  table_name='EMP_TB';

select * from  user_ind_columns where index_name='PK_EMP_TB_ID'

--  删除索引

drop  index  emp_tb_index_emp_name2

drop  index  pk_emp_tb_id

drop  primary key emp_tb;

--  视图

--  减少程序员所写代码

--  起到对象权限的分配作用

create view  emp_age_view as

select a.empno,a.ename,a.sal from (

select e.*, rownum rn from emp e  where rownum<=10

order by empno desc) a where a.rn>5;

select * from  emp_age_view;

--

drop  view  emp_age_view;

--  序列创建

create sequence emp_sequence

increment by 1----每次增加几个

minvalue 1----最小值为1

nomaxvalue----不限制最大值

start with 1----从1开始

cache 10----缓存

order;

--

select emp_sequence.nextval from dual;

select  emp_sequence.currval from dual;

select * from dual;

select * from dept_tb;

insert into  dept_tb values(emp_sequence.nextval,'教学部');

-- 触发器

--  前置触发 还有后置 触发

--  insert  update  delete

--  行级触发   列级触发

create or replace trigger dept_tb_insert

before insert on dept_tb

for each row

begin

select  emp_sequence.nextval into:New.dept_id from  dual;

end;

select  * from  emp_tb;

insert into emp_tb (emp_name,emp_sex,emp_sal)

values('刘能','男',5000)

insert into  dept_tb (dept_name) values('教学部');

select * from dept_tb;

以前写过的一些oracle语句的更多相关文章

  1. 53个Oracle语句优化规则详解(转)

    Oracle sql 性能优化调整  1. 选用适合的ORACLE优化器        ORACLE的优化器共有3种:a. RULE (基于规则)   b. COST (基于成本) c. CHOOSE ...

  2. Oracle语句中IN和=的区别有哪些?

    Oracle语句中IN和=的区别有: 1.首先应用范围不一样:in 可以理解为是范围内的选择:= 只有一个.例如: select sno, sname from t1 where sno in ('s ...

  3. [转载]T-SQL(Oracle)语句查询执行顺序

    原文链接:http://blog.sina.com.cn/s/blog_61c006ea0100mlgq.html sql语法的分析是从右到左,where子句中的条件书写顺序,基本上对sql性能没有影 ...

  4. 性能测试常用Oracle语句

    性能测试常用Oracle语句 显示数据库当前的连接数 select count(*) from v$process; 显示数据库最大连接数: select value from v$parameter ...

  5. oracle语句随笔

    oracle语句随笔 dmp数据的导入. ; --创建用户 GRANT CONNECT,RESOURCE,DBA TO memsspc; --赋值权限 --cmd 中导入命令 IMP memsspc@ ...

  6. Oracle语句优化1

    Oracle语句优化1 优化就是选择最有效的方法来执行SQL语句.Oracle优化器选择它认为最有效的     方法来执行SQL语句.         1. IS   NULL和IS   NOT   ...

  7. SQL点滴10—使用with语句来写一个稍微复杂sql语句,附加和子查询的性能对比

    原文:SQL点滴10-使用with语句来写一个稍微复杂sql语句,附加和子查询的性能对比 今天偶尔看到sql中也有with关键字,好歹也写了几年的sql语句,居然第一次接触,无知啊.看了一位博主的文章 ...

  8. oracle语句insert into select如何加后续插入条件

    oracle语句insert into select如何加后续插入条件 2014-01-21 10:48匿名  分类:其他编程语言 | 浏览 2746 次 oracle中有批量插入语句insert i ...

  9. Oracle 语句中“||”代表什么啊?

    Oracle 语句中“||”代表什么啊? Oracle 语句中“||”代表什么啊?跟ServerSQL中的字符串的连接符“+”是一个概念么? 1. 恩是的 是一个含义...select '1'||'2 ...

随机推荐

  1. leetcode@ [343] Integer Break (Math & Dynamic Programming)

    https://leetcode.com/problems/integer-break/ Given a positive integer n, break it into the sum of at ...

  2. 阿里云slb http https配置

  3. fx-experience-tools

    http://fxexperience.com/2012/03/announcing-fx-experience-tools/ I have some cool new stuff for you t ...

  4. 使用Cygwin通过ssh命令行来访问Windows8

    安装Cygwin可以参考<如何在Windows中通过Cygwin来使用Linux命令>. 在Win8下貌似有个bug,需要将cygwin\bin\mintty 修改为cygwin\bin\ ...

  5. Android问题-DelphiXE8安装后编译Android提示SDK无法更新问题(XE10也可以解决)

    资料来原:http://www.chenruixuan.com/archives/479.html (DelphiXE8 更新SDK)http://www.dfwlt.com/forum.php?mo ...

  6. 让UITableViewCell的分隔线宽度等于屏幕的宽度

    3种方法: 1.自定义cell: 1).取消系统的分隔线 2).添加一个高度为1,宽度为屏幕宽度的UIView作为cell的子视图,通过设置frame或者约束使这个UIView始终在cell的底部 3 ...

  7. 几个代码片段-计算程序运行时间+获得当前目录+生成MD5

    计算程序运行时间 long startTime = System.currentTimeMillis(); System.out.println("程序运行时间: " + (Sys ...

  8. C:移位运算符

    1在向右移位时,空出的位是由0填充,还是由符号位的副本填充? 如果被移位的对象是无符号数,那么空出的位将被0填充.如果被位移的对象是有符号数,那么C语言实现既可以用0填充空出的位,也可以用符号位的副本 ...

  9. [C语言 - 6] static & extern

    A. extern函数 一个c文件生成一个obj文件   外部函数:允许其他文件访问.调用的函数(默认函数为外部函数),不允许存在同名的外部函数   my.c //define a extern fu ...

  10. Castle IOC容器实践之FactorySupport Facility

    PDF版本下载:http://file.ddvip.com/2008_10/1223538519_ddvip_4853.rar示例代码下载:http://file.ddvip.com/2008_10/ ...