第一章 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...