/*3个默认用户*/
sys change_on install [as sysdba]
system manager
scott tiger
/*创建用户*/
create user 用户名 identified by 密码 defaul tablespace 表空间(Users) temporary tablespace 表空间(Temp) quota 整数 on 表空间(Users);--quota(限额) 临时表空间不能使用限额
/*修改密码*/
alter user scott identified by tiger;
/*删除用户*/
drop user 用户名 [cascade];--cascade表示删除用户所有对象
/*限制用户*/
alter user scott account unlock;--解锁scott
alter user scott identified by tiger;--解锁之后可能会要求你改密码
alter user 用户名 account lock;--用户加锁
alter user 用户名 password expire;--用户口令即刻失效
/*系统权限*/
/*赋予权限*/
grant create session to lisi;--创建会话
grant create table to lisi;--可以创建表
grant unlimited tablespace to lisi;--给表空间
grant connect to lisi;--连接至数据库, 并创建数据库对象
grant resource to lisi;--允许用户使用 数据库中的存储空间
grant create sequence to lisi;--在当前模式中创建 序列,此权限包含在CONNECT角色中
grant create session,create table,connect,resourse,create sequence to 数据库
/*撤销权限*/
revoke create session from lisi;
revoke create table from lisi;
revoke unlimited tablespace from lisi;
revoke create session,create table to 数据库
/*赋予公共权限*/
grant create session to public;
/*查找拥有的系统权限*/
select * from user_sys_privs;
/*赋予下一级用户修改所有表的权限*/
grant alter any table to lisi;
/*系统 权限传递*/
grant alter any table to lisi with admin option;--让李四拥有这个权限的管理员身份
/*创建表*/
CREATE TABLE martin.t_stu (
f_id char(3) NOT NULL Primary Key,
f_name char(8) NOT NULL ,
f_sex char(1) NOT NULL , f_birth date NULL , f_department char(5) NOT NULL
);
/*创建表*/
create table mytable (id int);
/*查看表结构*/
desc 表名
/*查看表拥有的约束*/
select table_name,constraint_name,constraint_type from user_constraints where table_name = 'bbsusers';
/*删除约束*/
alter table bbsusers drop constraint ck_bbsusers_ugender;
/*更新/修改*/
update t_score set score = null where sid = 09001;
/*删除表*/
drop table 表名;
/*表的截断(截断表是将表中所有记录删除,但保留表结构)*/
truncate table 表名 或者 Delete from 表名
/*插入一行*/
insert into 表名[列名] values (,,,);
/*自动增长*/
create sequence bbsusers_usid minvalue 1 start with 1 increment by 1 cache 300;
/*删除序列的方法:*/drop sequence 序列名(bbsusers_usid );
/*对象权限*/
/*赋予*/
grant select on mytab to lisi;--查询权限
grant update on mytab to lisi;--更新权限
grant all on mytab to lisi;--表的所有权限 插入、删除、更新和查询
/*撤销*/
revoke select on mytab from lisi;
revoke all on mytab from lisi;
/*删除表*/
drop user lisi cascade;
/*查找表格拥有的对象权限*/
select * from user_tab_privs;
/*对象权限传递*/
grant select on A to lisi with grant option;--将查询A的权限给lisi,同时让lisi拥有给别人角色
create role 角色名;--创建角色
grant 权限 to 角色名;--给角色赋权
grant 角色名 to 用户;--给用户赋予角色的权限
drop role 角色名;--删除角色
/*注:有些系统权限无法直接赋予角色*/
create table--只能给自己创建表 create any table--可以给任意一个用户创建表
alter any table--修改任意表 drop any table--删除任意表
/*没有的权限*/[alter table],[drop table]
/*表是属于某一用户的,角色不属于某一用户*/
/*查询A的权限*/
/*更新、添加 对象权限可以控制到列*/
grant update(name) on mytab to lisi;
grant insert(id) on mytab to lisi;
select * from user_col_privs;
/*注:查询和删除不能控制到列,至少操作一行*/
ddl dml dcl
/*数据库的三种验证机制*/
/*操作系统验证*/ sysdba,sysoper
/*密码文件验证*/ sysdba,sysoper
/*数据库验证*/
/*linux 下Oracle的启动过程*/
lsnrctl start
sqlplus sys/oracle as sysdba
startup
/*windows下Oracle的启动过程*/
lsnrctl start
oradim -starup -sid orcl
/*忘记Oracle的SYS用户密码*/
/*找到Oracle的安装目录,删除这个文件,删除之前最好备份一下D:\oracle\product\10.2.0\db_1\database\PWDorcl.ora
在cmd下输入 orapwd file=D:\oracle\product\10.2.0\db_1\database\PWDorcl.ora password=oracle entries=10 force=y/n
entries:指定能创建多少个特权用户,force:是否强制覆盖原来的密码
目录要一致,文件名必须要完全一致*/
/*利用现有的表创建表 语法:*/
CREATE TABLE <new_table_name> AS SELECT column_names FROM <old_table_name>;
/*联接查询 查询出每天销售情况:销售日期、零件名称、价格以及零件的供应商及其所处城市*/
select seldate,f_pname,f_price,f_supname,f_supaddr from t_sells SE,t_supplier SU,t_part PA where SE.f_sid=SU.f_sid and SE.f_pid=PA.f_pid;
/*无条件联接(cross join)*/
select * from t_product cross join t_supplier; 也可以:select * from t_part,t_supplier;
/*条件联接(join)-[ inner ] join
例如我们可以联接t_part表和t_sells表以创建显示零件销售情况的结果集,在内联接中,结果集内不包含没有销售记录的零件,也不包含没有零件名的销售记录。*/
select f_pid,seldate,f_pname from t_product join t_sells on t_product.f_pid=t_sells.proid;
/*也可以:*/ select f_pid,seldate,f_pname from t_product,t_sells where t_product.f_pid=t_sells.proid;