程序员
DBA
一.什么是数据库
软件 = 数据仓库 + 管理软件
Database : 数据库
DBMS: DataBase Management System
Oracle
DB2(IBM) Sybase(sybase)
mysql(Oracle) sqlserver(MS)
sqlite(嵌入式数据库)
access
二.访问数据库
1.telnet远程登录到数据库服务器
C:>telent 192.168.0.26
openlab/open123
(这个步骤和数据库无关)
2.sqlplus连接数据库
sqlplus是数据库的命令行客户端工具
% sqlplus
数据库的帐号/密码: openlab/open123
SQL>
3. 表(table)
1)建表
--最长30个字符.
--数字,字符,日期
create table users_ning(
id number,
pwd char(4),
name varchar(20),
phone varchar(30),
email varchar(50)
);
number 数字类型
char / varchar 字符类型
varchar2
date 日期类型
2)插入数据
insert into users_ning
values(1001, '1234', 'liucs',
'13800000000',
'liucs@tarena.com.cn');
SQL语句: Structured Query Language
SQL>create table 建表
SQL>insert into...插入数据
SQL>select ...from... 查询
SQL>commit 提交
三.查询数据
1)准备数据
create table dept_ning1(
deptno number(2),
dname varchar2(20),
location varchar2(20)
);
insert into dept_ning1
values(10, 'developer', 'beijing');
insert into dept_ning1
values(20, 'finance', 'shanghai');
insert into dept_ning1
values(30, 'sales', 'guangzhou');
insert into dept_ning1
values(40, 'operation', 'tianjin');
commit;
select * from dept_ning;
create table emp_ning100(
empno number(4) primary key,
ename varchar2(20),
job varchar2(20),
salary number(7,2),
bonus number(7,2),
hiredate date default sysdate,
manager number(4),
deptno number(2)
);
insert into emp_ning100
values(1001, 'zhangwj', 'Manager',
10000, 2000, '12-MAR-10', 1005, 10);
--继续插入其他9条记录
insert into emp_ning100
values(1011, 'tom', null,
null, null, null, null, null);
--如果null值太多,可以简写为:
insert into emp_ning100
(empno, ename) values(1011,'tom');
commit;
--复制表
--将emp_ning100复制为emp_ning200
create table emp_ning200
as
select * from emp_ning100;
2)学习查询语句
--按薪水排序,由高到低
select * from emp_ning
order by salary desc;
--null值被视作最大.
--按入职时间排序
select ename, hiredate from emp_ning
order by hiredate
public Integer nvl(
Integer bonus,Integer value){
if (bonus == null)
return value;
else
return bonus;
}
--查询员工的月收入,处理null值
--如果薪水或奖金是null值,按0计算
select ename, salary, bonus,
nvl(salary, 0) + nvl(bonus, 0)
as month_sal
from emp_ning
order by salary desc;
select ename,job from emp_ning
where upper(job) = 'ANALYST';
lower(job) = 'analyst';
--in (list)
select ename, job
from emp_ning
where lower(job) in ('analyst',
'programmer', 'clerk');
--查找部门10或部门20的员工
select ename from emp_ning
where deptno in (10, 20);
--查找薪水在5000到8000之间的员工
--包括5000和8000.
select ename, salary
from emp_ning
where salary >= 5000
and salary <= 8000;
--[5000, 8000] 闭区间
select ename, salary
from emp_ning
where salary between 5000
and 8000;
--
#
空值:
select ename, salary
from emp_ning
order by salary desc;
select ename
from emp_ning
where salary is null;
select ename
from emp_ning
where salary is not null;
select count(*) from user_tables;
--所有名字中包含emp的表的个数
select count(*) from user_tables
where table_name like '%EMP%';
--查找书名里包含java的书
select book_name from books
where lower(book_name)
like '%java%';
select ename, salary,
salary * 0.12345678 as tax
from emp_ning;
round : 四舍五入
trunc : 截取
张三 6 5 7 8 6.5
李四 6 3 7 7 5.75 -> 6
5.2 -> 5
日期:
sysdate: 系统时间
'14-FEB-12' : oracle默认的日期格式
DD-MON-RR
now: 2012年
YY RR
95年 2095 1995
05年 2005 2005
select to_char(sysdate,
'yyyy-mm-dd hh24:mi:ss')
from dual;
select ename, hiredate,
to_char(hiredate, 'yyyy-mm-dd') h
from emp_ning;
小结:
1.DDL(Data Definition Language):
create / drop
2.DML(Data Manipulation language):
insert / update / delete
3.DQL(Data Query Language):
select
4.TCL(Transaction Control Language)
commit
--java程序员
SCJP: sun certification
java programmer
OCJP: Oracle ....
google: scjp 模拟题
--DBA
OCP: Oracle certification Professor
全国职称计算机考试速成过关系列套装:W .. 定价:¥133 优惠价:¥133.0 更多书籍 | |
全国职称计算机考试速成过关系列套装:W .. 定价:¥124 优惠价:¥124.0 更多书籍 |