Oracle(三)老师

比如你要先查找一个 HR 用户下面的所有表..

1、首先我们要确定这个表是否存在.

我们知道 所有用户是在 dba_ 的范围之内.. 然后我们能想出 是 dba_users 里包含用户

2、查看 dba_users 的结构  desc dba_users

3、可以看到 有个 username 。。我们可以根据这个 username='HR'是否存在..如果存在说明有这个用户

4、连接 该用户  conn hr/hr

5、 如果用户锁定或密码不正确 我们要进行解锁 或修改密码

 alter user hr account unlock; 解锁

 alter user hr account identified by 密码; 修改密码;

6、连接后 我们要查询 当前用户的 范围 所以 要用到 user_  这个范围

7、这里我们知道是要查表 肯定是 tables  所以 查询的事 user_tables

8、查询所有表 先查询 表结构  desc user_tables 然后查询

 

 

查询其他用户的表..

select * from 用户名.表名;

创建备份表  create table 表名 as select * from 要备份表名;

(如果 select 后面加条件就是 查到什么 复制什么)

复制的过程也可以改名..

---------------------

删除表中所有记录

truncate table 表名; 删除速度快

在使用sqlserver 中删除所有表记录后ID 可以从1 开始插入

在Mysql                删除表中所有记录后ID 也是从1开始

Oracle 中不管用

如果想复制一个空的表 (只有结构)create table 表名 as select * from 被复制表名 where 1=2;(就是写个不成立的条件);

插入结果集

insert into 表名(字段列表) select (字段列表) from 用户。表名.  俩字段列表必须一致

 

 

如果想从服务器 拷贝

设置一个  映射  link 然后 在 复制表后面加@link名

(

create database link 名称 connect  to 用户名 identified by 密码 using 主机字符串

select * from emp@ 名称;

)

1、从服务器向本机拷贝表

或者 copy from scott/tiger@stu create emp using select * from emp;

copy from 用户名/密码@主机字符串 create 表名 using 查询语句;

2、从本机向服务器拷贝表

copy to 用户名/密码@主机字符串 create 表名 using 查询语句

3、从一台服务器到令一台服务器拷贝

copy from 用户名/密码@主机字符串  to 用户名/密码@主机字符串 create 表名 using查询语句

事物:Transaction(set autocommit on)

commit 提交

rollback 回滚

只存储 insert uodate delete 三个语句(事物缓存中只存储的)

事物提交方式

两种: 显示提交 commit;

             隐试提交 DLL(create alter drop) 正常退出、正常关闭数据库

事物回滚方式

两种 显示回滚 rollback

        隐式回滚 执行非法操作(如断电等 或者强制关闭)

--------------------------------

理解: set autocommit off

1、后 执行 insert update delete 然后使用各 rollback 后 所有之前的insert uodate delete都没效

2、如果 执行 insert uodate delete 后执行 commit  然后再执行rollback 就没有任何反应

3、 设置 savepoint 名  设置保存点(也就是游戏存档) rollback 保存点名 执行到这一点后 清楚后面所有点 和命令

SQL
DDL:create alter drop
DML:insert update delete select
DCL:grant revoke
TCL:commit rollback savepoint

-------------------------------------老师笔记------------------------------------------------------------

复习
数据字典:存储各种元数据的表叫数据字典(查看系统中各种信息的表叫做数据字典表)

dictionary字典
ALL_
USER_
DBA_

DBA_USERS
DBA_TABLES
DBA_SEQUNECES

USER_SEQUENCES
USER_TABLES

ALL_TABLES
ALL_SEQUNECES
ALL_VIEWS
ALL_INDEXES


用户scott/tiger 测试用户
alter user 用户名 account unlock;/lock;
alter user 用户名 identified by 新密码;

表操作
数据类型
 
           数值     字符串    日期        图片    大文本
Oracle   number     varchar2  date        blob     clob  CharacterLargeObject
Mysql      int       varchar  date        blob     text  
Sqlserver  int       varchar  datetime    image    text

 

增删改查
insert into
delete from
update set
select from


desc


设置的环境变量
set pause on|off
set linesize n
set pagesize n

练习:
查看数据库中是否有hr用户
如果有查看HR用户下一共有多少张表(进入到HR用户查看)

 


--删除表中全部记录
truncate table 表名;  --删除速度快
在使用SQLSERVER中 删除表中所有记录后ID可以从1开始插入
在Mysql中         删除表中所有记录后ID可以从1开始插入

 

练习:
 从SCOTT用户复制一张表到system用户(EMP表 要求只有表的结构,没有表的数据)
 提示:不可以使用删除语句
 
 插入一个结果集
 insert into  表名(字段列表) 查询语句
 
 
 dblink
 create database link 名称 connect to 用户名 identified by 密码 using '主机字符串'
 create database link stulink connect to scott identified by tiger using 'stu';
 使用
 select * from
emp@stulink;
 delete from
emp@stulink;
 
 
copy拷贝 服务器直接拷贝表
1 从服务器往本机拷贝表
copy from 用户名/密码@主机字符串 create 表名 using 查询语句
2 从本机向服务器拷贝表
copy to 用户名/密码@主机字符串 create 表名 using 查询语句
3 从一台服务器到另外一台服务器拷贝
copy from 用户名/密码@主机字符串 to 用户名/密码@主机字符串 create 表名 using 查询

事务:Transaction
commit 提交
rollback 回滚

事务缓存中只存储:insert update delete 语句

事务提交方式
两种:显式提交 commit
      隐式<input type="password" 提交 DDL 正常退出正常关闭数据库等。>
事务的回滚方式
两种:显式回滚 rollback
      隐式回滚 执行非法操作

设置自动提交:set autocommit on|off

SQL
DDL:create alter drop
DML:insert update delete select
DCL:grant revoke
TCL:commit rollback savepoint

 

你可能感兴趣的:(数据结构,oracle,游戏,mysql,Tcl)