当前位置:文档之家› oracle笔记

oracle笔记

--------------------------------------------------------
课程介绍:
oracle数据库:mysql db2 sqlserver mongo(nosql)

JDBC:java操作数据库的技术

HTML js

Servlet:

Jsp

服务器:tomcat (jboss)


oracle的安装:
注意事项:
①安装默认路径,路径中不能包含中文
②记住密码
调试:
cmd --- services.msc --打开服务
启动以下3个服务
OracleJobSchedulerXE
OracleServiceXE
OracleXETNSListener
给hr用户解锁:
管理---数据库用户--管理用户-->给hr用户状态解锁:改密码


sql语句
查询
//employees;--表名

查询表结构
desc employees;

select .... from 表名
②按列查询表信息
select employee_id,first_name,salary from employees;

查询所有列信息
select * from employees;
④排序查询
select employee_id,first_name,hire_date from employees order by hire_date;升序
降序
select employee_id,first_name,hire_date from employees order by hire_date desc;

条件查询:select ... from 表 where 条件
⑤:等值查询
查询工资(salary)是9000的所有员工的信息
select * from employees where salary = 9000;
查询名字(first_name)是“Peter” 的所有信息
select * from employees where first_name='Peter';(字符串的查询条件是需要加 '')
//字符串查询,区分大小写
⑥:字符串的拼接 ||
select first_name ||' '|| last_name from employees;
查询姓名叫***的人的具体信息??
select * from employees where first_name || ' ' || last_name = 'Ellen Abel'
⑦范围查询
查询工资大于9000 所有员工的员工号,姓名,工资;
select employee_id,first_name||' '||last_name,salary from employees where salary >9000;

查询 工资是 5000 ~ 9000之间的所有人的信息 (and 与 必须全部满足)
select * from employees where salary >5000 and salary<9000;

select * from employees where salary between 5000 and 9000;(去范围的闭区间)

查询部门编号是 90 100 110 120 的所有员工信息 (or 或 满足一个即可)
select * from employees where department_id=90 or department_id = 100 or department_id = 110 or department_id = 120;

select * from employees where department_id in (90,100,110,120);
⑧模糊查询
查询姓名中包含 Ste 的 员工信息 like
select * from employees where first_name || ' ' || last_name like '%Ste%';

_ 站位1个字符
% 站位 0~n个字符


修改数据库密码:
cmd---sqlplus /nolog ---- conn sys as sysdba --- 不输入口令 直接回车
----alter user 用户名 identified by 新密码


哑表:dual 为了维护sql语句的完整性
查询当前系统时间
select sysdate from dual;

函数:
length 求长度
查询所有员工的姓名的长度 员工号,工资
select employee_id,salar

y,length(first_name || last_name) from employees;

给列取别名:
select employee_id 员工编号,salary 工资,length(first_name || last_name) 姓名长度 from employees;

concat
concat(str1,str2)连接两个字符串 ||
select concat(first_name,last_name) from employees;

substr
查询90号部门所有员工的姓名简称(前三个字符)
select substr(first_name||last_name,1,3) from employees where department_id = 90;

查询名字以Ste开头的员工的信息
select * from employees where first_name like 'Ste%';

select * from employees where substr(first_name,1,3) = 'Ste';
upper--将字符串转换成大写
查询名字以Ste开头的员工的信息 忽略大小写
select * from employees where upper(first_name) like 'STE%';

lower--将字符串转换成小写
select * from employees where lower(first_name) like 'ste%';



分组 group by

avg--求平均值
查询所有人的平均工资
select avg(salary) 平均工资 from employees;

求各个部门的平均工资:
select avg(salary) 平均工资,department_id from employees group by department_id;

sum--求总和
求该公司一个月,员工工资支出
select sum(salary) from employees;

求各个部门的总工资l
select sum(salary) 工资总和,department_id from employees group by department_id;
min--求最小值
求各个部门中最小工资;
select min(salary) 最小工资,department_id from employees group by department_id;
max--求最大值
求各个部门中最大工资;
select max(salary) 最大工资,department_id from employees group by department_id;

having
求90号部门的平均工资
select avg(salary) 平均工资,department_id from employees group by department_id having department_id = 90;


sql格式: select 列 from 表 where ... group by ... having ...
-----------------------------------------------------------------------------
建表:
数据类型:
number---数字
number(n)整数
number(n,m)
varchar2---字符串
date---日期类型
char--字符类型

建表:
create table 表名(
列名 数据类型 [约束],
...,
列名 数据类型 [约束]
);
例子:
person表{id,username,passwd,sex,birth,salary}

sql:
create table person(
id number(10) primary key,//主键:唯一标识一条数据的
username varchar2(50),
passwd varchar2(50),
sex char(1),
birth date,
salary number(10,2)
);
添加数据:insert
insert into 表(列1,列2,列3...) values(值1,值2,值3,....);

insert into person(id,username,passwd,sex,birth,salary) values(1,'王宇希','22222','y','11-1月-2000',222.22);
insert into person(id,username,passwd,sex,birth,salary) values(2,'王宇希','22222','y','11-1月-2014',222.22);

修改数据 update

update 表 set 列 = 新值 where 条件
update person set birth='9-9月-1999' where id = 1;

删除数据 delete
delete from 表 where 条件
delete from person where id = 2;
----------------------------------------------------------------------
create table shop_users(
username varchar2(100),
password varchar2(100),
name varchar2(50),
zip number(6),
address varchar2(40)
);
===============================================================
事物:
create table user(
id number(10) primary key,
username varchar2(200)
);


概念:数据库会为每一个用户维护一个回滚段(缓冲区)


insert ....
update ....
delete ....
执行后面必须加上 commit;


事物的应用:

create table t_account(
id number(10) primary key,
username varchar2(50),
balance number(6,2)
);

模拟操作:--转账

事物:一组不可分割的sql操作
(要么都执行,要么都不执行)

update t_account set balance = 0 where id = 1;

update t_account set balance = 10000 where id = 2;

commit;
======================================================================
JDBC
准备工作:
班级管理系统

create table person(
id number(10) primary key,
stuName varchar2(500),
salary number(10,2),
birth date,
address varchar2(1000)
);




相关主题
文本预览
相关文档 最新文档