分类:
2005-12-20 21:49:59
用户登录
察看所有表空间
Select * from v$tablespace;
删除表空间 但是表空间文件依然存放在磁盘上
Drop tablespace spacename;
如果表空间非空需要加参数来删除
SQL> drop tablespace ruiqing2 INCLUDING CONTENTS;
当用户默认的表空间被删除了,用户的操作会提示错误,找不到表空间.
创建表空间
>Create tablespace ruiqing
2 datafile ‘D:oracleoradataworld uiqing.dbf’
3 size
创建用户
>create user rqz
2 identified by "world"
3 default tablespace ruiqing;
给用户授权
给用户登录权限
>grant connect to rqz;
授权用户无限制使用默认的表空间
>grant unlimited tablespace to rqz;
授权用户察看所有表
>grant select any table to rqz;
授权用户使用系统资源
>grant resource to rqz;
修改用户属性 , 这里给用户更改了表空间, 用户对原本表空间的授权在更改的表空间相同
SQL> alter user rqz
2 identified by "123"
3 default tablespace ruiqing2
4 ;
用户自己可以更改密码, 但是不能更改默认表空间,需要用system用户
察看表空间中所有的表
>select * from tab;
使用rqz用户来登录操作ruiqing表空间
创建表
SQL> create table temp(
2 tmpno number(5),
3 tmpname char(10),
4 tmpjob varchar(20));
察看表中的内容
SQL> select * from temp;
向表中插入数据
SQL> insert into temp
2 values (002,'df','programmer');
注意 不是value,而是values,对于字符要用单引号
删除表
SQL>drop table temp;
删除用户 , 删除用户时同时会删除由用户创建的表 system用户才有权利删除用户
Drop user rqz;
临时表 dual
SQL> select 999*999 from dual;
查询系统时间
SQL> select sysdate from dual;
改变时间显示格式
SQL> alter session
2 set nls_date_format='dd-mm-yyyy hh24:mi:ss';
SQL语句
数据类型
char定长字符类型
number 数值(位数,小数点后的位数)
varchar2 varchar 变长字符类型
date 时间类型
察看表的结构
SQL> desc temp;
char 与 varchar2的区别
SQL> insert into temp
2 values (003,'rui','rui');
SQL> select length(tmpname),length(tmpjob) from temp where
2 tmpno=3;
LENGTH(TMPNAME) LENGTH(TMPJOB)
--------------- --------------
10 3
修改表结构
给表增加一列
SQL> alter table temp
2 add time date;
修改表中列的数据类型
比如修改字符长度 定长或者变长
SQL> alter table temp
2 modify tmpname varchar2(20)
3 ;
删除表中的列
SQL> alter table temp
2 drop column time
3 ;
查询: 使用scott/tiger用户试验
更改屏幕输出
SQL> set linesize 100
SQL> set pagesize 24
使用子查询
SQL> select max(sal) from emp; 但是这条语句只显示最高的工资数,而不显示其他信息 使用子查询
SQL> select * from emp
2 where sal = (select max(sal) from emp);
使用别名
SQL> select sal as 薪水 , ename 名字 from emp;
SQL> select empno 编号, ename 姓名, sal 工资 from emp;
注意 输入中文的时候 标点符号 必须使用英文标点符号
使用函数
SQL> select sal 基本工资,comm 奖金,sal+nvl(comm,0) as 实际薪水 from emp;
nvl 可以带一个或两个参数 两个参数时 第二个参数表示把空值转换成0
SQL> select sal 基本工资,comm 奖金,sal+nvl2(comm,1,0) as 实际薪水 from emp;
nvl2 可以带三个参数 comm. 非空则转换为1 空值则转换为0
使用between
SQL> select * from emp where sal between 1000 and 2000;
模糊匹配like
对查询结果分组
就像查询有多少组 枚举类型 ,并可以统计每组有多少记录
SQL> select job from emp group by job;
SQL> select job,count(job) from emp group by job;
使用分组和子查询进行归类排序
SQL> select * from emp
2 where job in (select job from emp group by job);
对分组后的数据进行过滤having
对分组后的数据进行取舍 不使用where而是用having
如查询人数少于4的工作
SQL> select job from emp
2 group by job
3 having count(job)<4;
排序 order by
工资由少到多排序
SQL> select * from emp
2 order by sal;
由多到少则加上参数desc , 默认参数是asc 从小到大排序
SQL> select * from emp order by sal asc;
SQL> select * from emp order by sal desc;
使用伪列 rownum
SQL> select rownum,empno,ename,sal from emp;
显示前5行
SQL> select * from emp where rownum<6;
无法使用rownum显示后N列
物理地址 rowid
SQL> select rowid,ename,sal from emp;
多表查询
SQL>select * from emp,dept where emp.deptno=dept.deptno;
显示有重复
SQL> select dept.deptno,emp.ename,emp.sal from emp,dept
2 where emp.deptno=dept.deptno;