ORACLE笔记

发布 2021-05-11 22:20:28 阅读 3339

第一章 sql plus常用命令。

建立连接 connect scott/tiger;

修改密码;d:\c,sqkl;

4. set 环境变量值。

set linesize 100;

set pagesize 100;

创建和管理表。

orcle的数据类型:varchar2(size)可变长的字符串,number(p,s)可变长的数值数据,date日期,long 可变长字符数据最大2g,raw可变长二进制数据类型最大4kb,long raw可变长二进制数据,最大2gb,clob 字符数据最大4gb,bfile 存储外部文件的二进制数据最大4gb,rowid 行地址,orcle数据表的命名规则:必须以字母开头,必须在 1–30 个字符之间,必须只能包含 a–z, a–z, 0–9, _和 #,必须不能和用户定义的其他对象重名,必须不能是oracle 的保留字。

表的创建。创建空表 create table stu(

sid varchar2(8) primary key,name varchar2(20) not null,age number(3),addr varchar2(40)

拷贝一张表的全部信息。

create table newtablename

as select * from existtablename;

只拷贝已存在表的结构,不拷贝表的内容。

create table emp2 as select * from emp where 1=2;

修改表。添加新列(给emp2表增加新列)

alter table emp2 add(remark varchar2(100));

更改现有列的数据类型和字段宽度(修改remark列宽为节)

alter table emp2 modify(remark varchar2(200));

更改列名(更改emp2表中remark列名为email)

alter table emp2 rename column remark to email;

删除表中现有列(删除emp2表中的email列)

alter table emp2 drop column email;

添加或删除完整性约束条(将emp1表中的empno列设置为主键)

alter table emp1 add constraint pk_emp2 primary key(empno);

删除主键或唯一键约束(删除emp2表中的主键约束)

alter table emp2 drop constraint pk_emp2;

重命名表将(emp2表的表名修改为newemp;)rename emp2 to newemp;

删除表(删除emp2表)drop table emp2;

添加数据。insert into tablename(field1,field2,…)values(val1,val2, …

注意:插入null和日期型字段。

修改数据。update tablename set field1=val1,field2=val2,… where子句];注意:置空值。

删除数据。1. delete from tablename [where子句]; 注意:where子句中的空值判断。

2 truncate table tablename;

两种方法的区别:delete删除,需要写日志和回滚段,能恢复。

truncate删除,不写日志和回滚段,不能恢复,但速度快。

第三章表及数据操作。

表相关操作。

查看用户定义的表。

select table_name from user_tables ;

查看用户定义的各种数据库对象。

select object_name,object_type from user_objects ;

查看用户定义的表, 视图, 同义词和序列。

select * from user_catalog ;

插入数据。向表中插入日期型值。

1) sysdate 记录当前系统的日期和时间。

2) to_date()函数。to_date('1982-01-01','yyyy-mm-dd')

3.事务。以第一个 dml 语句的执行作为开始。

以下面的其中之一作为结束:

commit 或 rollback 语句。

ddl 或 dcl 语句(自动提交)

用户会话正常结束。

系统异常终了。

commit和rollback语句的优点。

1)确保数据完整性。

2)数据改变被提交之前预览。

3)将逻辑上相关的操作分组。

回滚到保留点。

使用 s**epoint 语句在当前事务中创建保存点。

使用 rollback to s**epoint 语句回滚到创建的保存点。

所有员工工资涨10%

update emp set sal=sal*1.1;

更新 7369号员工的工作和工资使其与 7876号员工相同。

update emp set (job,sal)=(select job,sal from emp where empno=7876)where deptno=7369;

把smith的部门号更新为70。

update emp set deptno = 70 where ename=‘smith’

删除部门名为sales的员工信息。

delete from emp where deptno=(select deptno from dept where dname='sales')

删除comm为空的员工信息。

delete from emp where comm is null;

commit;

删除部门号为10的部门。

delete from dept where deptno=10;

第四章简单查询。

* from emp where deptno in(10,20);

2.%代表任意多个字符,_代表一个字符

3.使用 order by 子句排序。

asc: 升序默认。

desc: 降序。

查询smith的薪水、工作、所在部门。

select sal,job,deptno from emp1 where ename='smith';

如何显示工资高于3000的员工。

select *from emp where sal>3000;

如何查找2024年以**职的员工。

select *from emp1 where hiredate>to_date('1982-01-01','yyyy-mm-dd');

如何显示工资在2000到2500之间的员工。

select *from emp where sal between 200 and 2500

注:字符和日期要包含在单引号中,字符大小写敏感。

如何显示每个雇员的年薪。

select ename 年龄, sal*12 年薪 from emp1;

如何显示部门号为10和20 的员工信息。

select *from emp1 where deptno in(10,20);

4.员工名字按小(大)写方式显示。

select lower(ename),upper(ename) from emp;

显示名字正好为5个字符的员工姓名。

select ename from emp where length(ename)=5;

显示所有员工姓名的前三个字符。

select substr(ename,1,3) from emp;

以首字母小写的方式显示员工姓名。

select lower(substr(ename,1,1))|substr(ename,2,length(ename)) from emp;

如何显示首字母是s 的员工姓名、工资。

select ename,sal from emp where ename like 's%';

如何显示第三个字符为大写o的员工姓名和工资。

select ename,sal from emp where ename like '_o%';

查找工资高于1000或者岗位是manager,同时名字首字母为j 的员工信息。

select * from emp where (sal>1000 or job = manager') and ename like 'j%';

按工资从低到高的形式显示雇员信息。

select * from emp order by sal;

按部门升序、工资降序排序。

select *from emp1 order by deptno,sal desc;

按年薪升序排序。

select *from emp1 order by sal*12 desc;

round函数。

select round(45.923,2),round(45.923,0),round(145.923,-2) from dual;

显示在1个月为30天的情况下,所有员工的日薪,忽略余数。

select round(sal/30) 日薪 from emp1;

trim(leading/trailing/both ‘子串’ from ‘字符串或列’)

---把子串从字符串或列的头/尾/两端删除,如缺省则默认为从两端删除。

sql> select trim(leading 's' from 'services services') from dual; 结果:ervices services

5.数值函数

select round(45.923,2),round(45.923,0),round(145.923,-2) from dual;结果:45.92 46 100

trunc(45.926, 2)截断 mod(1600, 300)求余floor(45.926)向下去整 ceil(45.926) 向上去整。

6.日期类型。

sysdate:取系统日期函数。

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...