oracle数据库常用命令。
sqlplus scott/tiger as sysdba :将scott账户当作dba登录进来。
alter user scott account unlock; 用户解锁。
-账户解锁
1. conn / as sysdba
2. alter user scott account unlock;
3. alter user scott identified by tiger;
-数据类型。
1. binary_integer: 整数,主要用来计数而不是用来表示字段类型。
2. number: 数字类型。
3. char定长字符串
4. varchar2: 变长字符串。
5. date日期。
6 long长字符串,最长2gb
7 boolean: 布尔,可取true false null
number:
number ( precision, scale)
precision表示数字中的有效位。如果没有指定precision的话,oracle将使用38作为精度。
scale表示数字小数点右边的位数,scale默认设置为0.
p是精度,s是刻度。
精度代表所要存的位数,s是指小数点后保留几位。
例如存储1234567.89序定义number(9,2)
char和varchar2 的区别。
char的长度是固定的,而varchar2的长度是可以变化的, 比如,存储字符串“abc",对于char (20),表示你存储的字符将占20个字节(包括17个空字符),而同样的varchar2 (20)则只占用3个字节的长度,20只是最大值,当你存储的字符小于20时,按实际长度存储。 char的效率比varchar2的效率稍高。
-数据库的启动。
sqlplus / as sysdba
shutdown immediate
sql> startup nomount
sql> alter database mount
sql> alter database open
1. 在dos窗口中rman target / nocatalog
2. 关闭数据库shutdown immediate
3. 启动数据库到第二阶段:startup mount
4. 启动数据库到第三阶段:alter database open
-创建表空间。
create tablespace ts1 datafile 'c:\'size 10m;
-新建用户并授权。
1. 新建用户并制定密码 create user user1 identified by abc;
2. 指定用户所在的表空间 alter user user1 default tablespace ts1;
3. 授予连接和资源的权限 grant connect,resource to user1;
显示当前用户show user;
授予最大权限grant connect,dba to user1;
-备份数据库。
-远程连接数据库。
sqlplus sim/sim@orclclcsky101
sim/sim用户名/密码。
orclclcsky101: 配置的监听。
-oracle默认表。
desc 表名 :查看表结构。
·desc emp 员工表
desc dept 部门表。
desc salgrade 薪水等级表。
desc dual 空表,一般用于计算,例如:select 2*3 from dual;
scott账户的默认表。
emp:员工表。
empno(员工编号)
ename(员工姓名)
job(职位)
mgr(经理人编号)
hiredate(入职时间)
sal(薪水。
comm(津贴)
deptno(部门编号)
dept:部门表。
salgrade:等级表。
select语句。
-数学表达式。
select ename,sal*12 from emp; 薪水*12,年薪。
select ename,sal*12 year_sal from emp; 起别名。
select ename,sal*12 "year_sal" from emp; 加双引号保持字段的大小写原型。
select ename,sal*12+comm from emp; 所有人的年薪,薪水*12+津贴。
-sysdate
select sysdate from dual; 当前系统时间。
-字符串连接符 ||
sql> select sal||'ksks' from emp; |字符串连接符,字符串用单引号引起。
sal||'ksks'
800ksks
1600ksks
1250ksks
2975ksks
1250ksks
2850ksks
2450ksks
3000ksks
5000ksks
1500ksks
1100ksks
-去掉重复信息 distinct
·select distinct deptno from emp; 去掉deptno字段的重复信息。
·select distinct deptno,job from emp; 去掉deptno,job组合的重复的信息。
-过滤条件 where
·数**算符:< not and or in
·select * from emp where deptno=10; deptno(部门)等于10的员工信息。
·select ename,deptno from emp where deptno<>10; 部门不等于10的员工姓名和部门。
·select ename,sal from emp where sal>=800 and sal<=1500; 薪水大于等于800并且小于等于1500
·select ename,sal from emp where sal>1000 and deptno=10; 薪水》10并且部门=10的。
select ename,sal from emp where sal>1000 or deptno=10; 薪水》10or部门=10的都取出来。
-空值处理 null
·select ename,sal from emp where comm is null; 奖金为空的员工的姓名和工资。
·select ename,sal from emp where comm is not null; 奖金不为空的员工的姓名和工资。
·select ename,sal from emp where sal in (800,1500,3000); 薪水是的人的的姓名和薪水。
·巧妙使用函数nvl()
select ename,sal*12+nvl(comm,0) from emp;
如果comm是空值,则用0代替,如果不是null,则就是comm的值。
-模糊查询 like
·%:通配一个或多个字母、 _通配一个字母、 \转义字符。
·select ename from emp where ename like '%a%';姓名中带’a’的人。
·select ename from emp where ename like '_a%';姓名中第二个字母是a的人。
·select ename from emp where ename like '%查询姓名中带%的人,·select ename from emp where ename like '%escape '$作为转义字符,查询出姓名中带%的人。
-排序 order by asc/desc
·select * from dept order by deptno desc;将部门表按照部门编号降序排列。
·select ename,sal from emp order by sal asc;员工表按照薪水升序排列。
select ename,sal from emp where deptno<>10 order by sal asc;
部门不等于10的员工按照薪水升序排列。
select ename,sal,deptno from emp order by deptno asc,sal desc;
先按照部门编号升序排序,在部门编号相同的情况下再按照薪水降序排序。
select ename,sal*12 from emp
where
ename not like '_a%' and sal>100
order by empno desc;
取出来emp的名字、年薪,名字的第二个字母不包含a并且薪水大于100按照员工编号降序排列。
-函数。|-lower(e):转换成小写 substr(字段,n,m)将字段从n开始截取,截取到m(包含第m和第n)
|-ascii(a):求a的ascii码 chr(97):将ascii转换为字符。
-round(m,s):四舍五入到s位。
select lower(ename) from emp; 将ename转换为小写。
select ename from emp where lower(ename) like '_a%';查询小写的姓名包含a的数据。
select substr(ename,1,3) from emp;将姓名从第一个开始截取,截取到第三个(包含第一个)
select ascii('a') from dual; 求a的ascii码。
select chr(97) from dual; 将ascii转换为字符,本条语句结果为a
select round(23.567) from dual; 四舍五入到个位。结果为24
select round(23.567,2) from dual; 四舍五入到小数点后两位,结果为23.57
select round(23.567,-1) from dual; 四舍五入到小数点前1位,结果为20
-to_char(字段a,格式);将字段a转换为想要的格式显示出来。
select to_char(sal,'$99,999.9999') from emp;
oracle笔记
1 查看表的结构 desc tabledescription 2 set timing on 打开操作表的时间记录。3 消除重复行 distinct 4 大小写不区分的是列名,而不是里面的数据。1 可以对某一列直接进行加减乘除。两列相加。2 如果有一列为null,所得结果也为空。使用nvl函数处理n...
Oracle笔记
第1页1.oracle 的使用 1.1.sqlplus 的命令 初始化表的位置 set nls lang american 设置编码才可以使用下面脚本 cd oracle home rdbms cd demo 我们目前使用的是oralce 9i 9201 版本 select from v versi...
oracle笔记
clear 清屏。col title for a20 设置title的字符最多有20个。oracle介绍。rdbsrdb 基本的存储结构是,二维表。表头。行。列。字段。sql的分类 dsl 关键字 select dml 操作 insert delete update ddl 定义 create dr...