---------------oracle 入门
打开服务器
net start oracleserviceORCL
打开监听器
lsnrctl start
关闭服务器
net stop oracleserviceORCL
关闭监听器
lsnrctl stop
-----------------------------
1.创建表
Create table 表名
(字段名 数据类型)
2.修改表中列的数据类型
Alter table 表名
modify(字段名 数据类型)
提示:清空表后才能修改
3.增加表字段
Alter table 表名
add(字段名 数据类型)
4.删除表字段
Alter table 表名
drop(字段名 数据类型)
5.创建表并复制另一张表结构和数据
Create table 表名 as
select * from table 表名
6.插入另一张的数据到自己表中
insert into 表名 (可选字段名)
select * from 表名
提示:插入表中字段要和查询表字段类型一致,*代表所有字段,如果只要部分字段,保证要插入表字段和查询字段个数,数据类型一致
------------------------------
创建表空间
create tablespace stusys
datafile 'd:/oracle/stusys.dbf'
size 50m
autoextend on;
创建用户
create user wangwei identified by wangwei
default tablespace stusys
temporary tablespace temp;
授权
grant connect to wangwei;
grant resource to wangwei;
用新用户登录
conn wangwei/wangwei
创建表
学生表中有一个外键关联班级表
create table classlist(
claid char(6) primary key,
opdate date,
manager char(8)
);
create table students(
stuid int primary key,
stuname char(8),
claid char(8) references classlist
);
------------------------------
oracle的数据类型
数值型:number(<p>,<s>)
字符型:char(size)、varchar2(size)、varchar()
日期型:date
查询当前时间select sysdate from dual;
格式化当前时间alter session set nls_date_format='yyyy-mm-dd';
大对象类型:blob、clob、bfile、raw、long
空类型:null
null不等于''空
特殊类型:rowid urowid
SQL中的字符
SQL查询语句
数据定义语言ddl(create、drop、alter)
drop table ##
alter talbe student add(address varchar2(50));
alter talbe student modify(address varchar2(60));
alter talbe student drop(address);
----
数据操作语言dml(select、insert、update、delete)
------------------------------------------- ----------------------------------------------------------------
create table emp
(
empno int primary key,
ename varchar(10),
job varchar(10),
sal varchar(20),
deptno varchar(10)
);
insert into emp values(222,'李四','22222,'22222','222222');
insert into emp values(333,'王五','333','3333','111');
create table dept
(
deptno int primary key,
dname varchar(20),
job varchar(10),
sal varchar(20)
);
insert into dept values(111,'张三','软件开发','1000');
内连接--两个表只要存在不匹配就不显示
SQL> select empno,ename,emp.deptno,dname
2 from emp join dept on emp.deptno = dept.deptno
3 order by deptno;
EMPNO ENAME DEPTNO DNAME
---------- ---------- ---------- --------------------
333 王五 111 张三
另一种方式
SQL> select empno,ename,emp.deptno,dname
2 from emp,dept where emp.deptno = dept.deptno
3 order by deptno;
EMPNO ENAME DEPTNO DNAME
---------- ---------- ---------------------------
333 王五 111 张三
左连接--连接的两个表以左边为主,如果左表对右表存在空匹配会显示记录,空匹配字段为NULL,
右表对左表存在空匹配,这样不显示记录
SQL> select empno,ename,d.deptno,dname
2 from emp e left join dept d
3 on e.deptno = d.deptno;
EMPNO ENAME DEPTNO DNAME
---------- ---------- ---------- --------------------
222 lisi
333 王五 111 张三
右连接--连接的两个表以右表为主,和左连接相反
SQL> select empno,ename,d.deptno,dname
2 from emp e right join dept d
3 on e.deptno = d.deptno;
EMPNO ENAME DEPTNO DNAME
---------- ---------- ---------- --------------------
333 王五 111 张三
全连接--下面两个是一样的
SQL> select * from emp full join dept
2 on emp.deptno = dept.deptno;
------
SQL> select * from emp full outer join dept
2 on emp.deptno = dept.deptno;
EMPNO ENAME JOB SAL DEPTNO DEPTNO DNAME
---------- ---------- ---------- -------------------- ---------- ---------- ---------
222 lisi .net开发 200 20000
333 王五 333 3333 111 111 张三
-------------------------------------
连接查询
笛卡儿连接
相等连接
不等连接
自我连接
----------------------------------------
数据控制语言dcl
grant 系统权限 to 用户名
connect基本连接、resource资源使用、dba数据库管理
grant 对象权限名||all on 对象名 to 用户名(把所有权限赋给用户)
revoke回收权限
revoke 对象权限名 on 对象名 to 用户名
---
事务控制语言(tcl)
原子性、一致性、隔离性、持久性(ACID)
commit、rollback、savepoint
savepoint p2;
savepoint p3;
rollback to p2;
commit;
---
伪表及伪列
DUL表 伪表
ROWID 记录每个数据行在硬盘上位置的唯一标识
ROWNUM 标识查询结果集中记录序号
LEVEL 查询数据所对应的层次
select rowid,rownum,level from 表名 where
---
集合运算
并集 UNION select * from a union select * from b;
有重复记录的并集 UNION ALL
交集 intersect
剪集/割集 minus