cmd--
sqlplus "sys/a(密码) as sysdba"
sqlplus/nolog
isqlplusctl start
connect sys/a as sysdba 连接sys sys以sysdba的身份
alter user scott account unlock; 解锁用户
startup (mount 同时启动控制文件..不启动数据文件) (nomount 启动实例..不启动控制文件) 启动(实例--控制文件--数据文件)
alter database open 非归档改为归档
shutdown (immediate 迫使当前用户完成操作后断开连接) (transactional 恢复数据文件) (abort 强行关闭数据库/实例)关闭数据库
exit 退出
help index 帮助文档
SELECT * From dept where deptno=&tt 查找为tt的dept(替代变量)
L(IST) 查看缓存区
C(HANGE) /fron/from
/ 执行缓存区命令
DEL(ETE) 4 删除缓冲区第4行
DEL 2 3 删除从第二行-第三行
a from dept 在缓存区加入"fron dept"
SAVE d:\a\test.txt 将缓存区命令存至路径下文件
@d:\a\text.txt 执行路径下的命令..把命令放至缓存区
get d:\a\test.txt 获取路径下的信息..不执行
edit 打开缓存区(默认为txt)
COL(UMN) deptno HEADING "编号" 将deptno改为"编号"
COL dname FORMAT a10 HEADING "部门名称" 更改标签.以10个字符形式输出
COL deptno FORMAT 999,999,999 以整型输出
TTITLE/BTITLE 设置主题(页眉页角)
TTITLE CENTER "我的标题" SKIP 1-
LEFT"测试报表" RIGHT "页" -
FORMAT 999 SQL.PNO SKIP 2(空两行) 设置主题
TTITLE OFF 关闭主题
desc(ribe) dept 检查dept下面有什么字段
? change 查找change命令
BREAK ON pub 使put重复的只显示一个
COMP COUNT LABEL "计数" OF books_name ON pub 以pub计数多少条记录
SPOOL d:\a\a.txt 再执行语句..
SPOOL off 将格式化输出的结果保存到文件中
connect scott/tiger
CREATE TABLE abc(a varchar2(10),b char(10));
ALTER TABLE abc ADD c number;
DROP TABLE abc; 删除
ALTER TABLE abc DROP COLUMN c; 将表的C字段删除
connect tt/tt11
SELECT * FROM scott.dept; 查找scott下面的表
conn scott/tiger
GRANT SELECT ON dept TO tt; 给tt用户授权管理所属的表
conn tt/tt11
SELECT * FROM scott.dept;
conn scott/tiger
REVOKE SELECT ON dept FROM tt; 将tt用户管理所属表的授权收回
SELECT * FROM abc; 查找abc表
INSERT INTO abc(a,b) VALUES('abc','xy'); 向表里插入数据
INSERT INTO abc VALUES ('bcd','123'); 所付字段和字内容要相同
SELECT * FROM abc;
UPDATE abc SET b='ttt'; 把表中b所有值都改成ttt
UPDATE abc SET b='YYY' WHERE a='abc'; 将a=abc的b改为YYY
DELETE FROM abc; 将表清空
DELETE FROM abc WHERE a='abc'; 将a=abc的数据删除
SELECT LENGTH('ABCDEF') FROM dual; 查找字符数
SELECT LENGTHB('ABC好EF') FROM dual; 查找字节数
SELECT LENGTH(LTRIM(' ABC好EF')) FROM dual; 查找字符数(去掉前面空格)
SELECT LENGTH(RTRIM('ABC好EF ')) FROM dual; 查找字符数(去掉后面空格)
SELECT LENGTH(TRIM(' ABC好EF ')) FROM dual; 查找字符数(去掉前后空格)
DESC aa
UPDATE aa SET a3='aa';
SELECT * FROM aa; 查询aa表
SELECT LENGTH(A2),LENGTH(A3) FROM aa; 查找aa表里的A2 A3长度
SELECT SUBSTR('abcdefg',2,3) FROM dual; 从第二个字符开始取..取三个
SELECT SUBSTR('abcdeft',LENGTH('abcdefg') - 3 + 1,3) FROM dual; 从倒数第三个开始取..取三个
用户授权
SELECT user FROM dual; 查询角色
CONN test/test1234 登陆
GRANT SELECT ON scott.dept to test; 让test可以选择scott的部门表
CONN test/test1234
SELECT * FROM scott.dept; 查找scott下的部门表
CONN / as sysdba
ALTER USER test DEFAULT TABLESPACE tt ; 把tt作为test的默认表空间
ALTER USER test IDENTIFIED BY test11; 将test密码改为test11
ALTER USER test ACCOUNT LOCK ; 将test锁定
ALTER USER test ACCOUNT UNLOCK; 将test解锁
CREATE USER qqq IDENTIFIED BY qqq123; 创建qqq 密码qqq123
GRANT CONNECT TO qqq; 把connect权限授予qqq
CONN test/test11
SELECT * FROM scott.dept;
GRANT SELECT ON scott.dept TO qqq; 无法通过(无权限)
CONN / as sysdba
GRANT SELECT ON scott.dept TO test WITH GRANT OPTION 对象授权..将scott.dept的"SELECT ON"权限授予test
CONN test/test11
GRANT SELECT ON scott.dept TO qqq; 成功
CONN qqq/qqq123
SELECT * FROM scott.dept;
GRANT ALL ON scott.dept TO test WITH GRANT OPTION; 授予test所有权限
GRANT EXECUTE ON tt.proc01 TO test; 授权
CONN test/test11
CREATE USER abc IDENTIFIED BY abc 无权限..失败..
CONN / as sysdba
GRANT CREATE USER TO test;
CONN test/test11
CREATE USER abc IDENTIFIED BY abc 创建成功
DROP USER abc; 删除用户(失败..无权限)
CONN / as sysdba
GRANT DROP USER TO test;
CONN test/test11
DROP USER abc; 删除用户(成功)
CONN / as sysdba
GRANT CREATE USER to test;
CONN test/test11
GRANT CREATE USER TO qqq; 失败
CONN / as sysdba
GRANT CREATE USER TO test WITH GRANT OPTION; 对象授权..将管理权限授予并且授予授予其他用户管理的管理权限
GRANT CREATE USER TO test WITH ADMIN OPTION; 系统授权
CONN test/test111
GRANT CREATE USER TO qqq; 成功
CONN qqq/qqq123
CREATE USER ty IDENTIFIED BY ty; 成功
CONN / as sysdba
REVOKE SELECT ON scott.dept FROM test; 将test用户对于scott.dept的"SELECT"权限收回
REVOKE CREATE USER FROM test; 收回"CREATE"权限
角色授权
CREATE ROLE myrole; 创建角色
GRANT SELECT ON tt.emp TO myrole; 将tt.emp的"SELECT"权限授权于myrole
GRANT SELECT ON tt.deptment TO myrole;
connect test/test11
SELECT * FROM tt.emp; 失败(无权限)
CONN / as sysdba
GRANT myrole TO test; 将test成为myrole的成员
CONN test/test11
SELECT * FROM tt.emp; 成功(有权限)
CONN qqq/qqq123
SELECT * FROM tt.emp; 失败(无权限)
CONN / as sysdba
GRANT myrole TO qqq;
CONN qqq/qqq123
SELECT * FROM tt.emp; 成功
表空间的管理
SELECT user FROM dual; 查看当前用户
CREATE TABLESPACE tabs DATAFILE 'E:\oracle\oradata\test\tabs.dbf' SIZE 10M ; 创建一个表空间..名字为tabs..路径..大小
ALTER USER test DEFAULT TABLESPACE tabs; 将tabs设定为用户test的默认表空间
CONN test/test11
CONN / as sysdba
GRANT UNLIMITER TABLESPACE ,DBA TO test; 将TABLESPACE&DBA的权限授予test
CONN test/test11
CREATE TABLE tre(t char(10),re number); 创建表(放于用户默认表空间)
CREATE TABLE ty(t char(10),y varchar2(10)) TABLESPACE tt ; 将表放于tt的表空间当中
上课
set Oracle_sid=mydb <==> conn sys/a@mydb
conn sys/a <==>
show parameter spfile; 查找配置文件路径
create pfile='mypfile.ora' from spfile; 建立pfile(pfile为文件全名) \修改参数
create spfile='myspfile.ora' from pfile='mypfile'; 建立spfile /
show paramter; 显示所有参数
ALTER SESSION SET nls_date_format='YYYY-MM-DD'; 将格式该为(动态参数) 当前会话
ALTER SYSTEM 所有会话
CREATE TABLE t1( 建表1
f1 integer,
f2 varchar2(20),
);
ALTER TABLE t1 add primary key(f1); 增加主键
CREATE TABLE t2( 建表2
f1 integer,
f2 integer,
);
ALTER TABLE t2 add primary key(f1); 增加主键
ALTER TABLE t2 add constraint fr foreign key(f2) references t1(f1); 增加外键