oracle 学习


     SQL*Plus命令工具

   

    1. 该工具是 Oracle 系统默认安装下,自带的一个客户端工具。 用户明输入:sys、system 即可登录。

    2.接下来需要输入口令:即是在安装的时候设置的口令和密码;

    3.然后开始连接该客户端的工具:conn system as sysdba;

    连接到 Oracle 服务器的命令是:
      conn 用户名/密码 as 连接身份@服务器连接字符串

  说明:
    1. 连接身份:表示该用户连接后拥有的权限。

      sysdba: 即数据库管理员,权限包括:打开数据库服务器、关闭数据库服务器、备份数据库、恢复数据库、日志归档、会话限制、管理功能、创建数据库。
                       sys 用户必须用 sysdba 身份才能登录,system 用户可以用普通身份登录。
     sysyoper:即数据库操作员,权限包括:打开数据库服务器、关闭数据库服务器、备份数据库、恢复数据库、日志归档、会话限制。
     normal:   即普通用户,权限只有查询某些数据表的数据。默认的身份是 normal用户。


  4. Oracle 启动和关闭

     OracleService 启动后,就可以对数据库进行管理了,Oracle 的启动和关闭是最基本的命
令,在 SQL*Plus 中,启动 Oracle 必须是 sys 用户,命令格式是:

      启动:startup open;

    关闭:shutdown immediate


5. Oracle 用户和权限
Oracle 中,一般不会轻易在一个服务器上创建多个数据库,在一个数据库中,不同的项
目由不同的用户访问,每一个用户拥有自身创建的数据库对象,因此用户的概念在 Oracle
中非常重要。Oracle 的用户可以用 CREATE USER 命令来创建。其语法是:

语法结构:创建用户
CREATE USER 用户名 IDENTIFIED BY 口令 [ACCOUNT LOCK|UNLOCK]

语法解析:
LOCK|UNLOCK 创建用户时是否锁定,默认为锁定状态。锁定的用户无法正常的登录进行数据库操作。


创建用户(Oracle中是大写的):create user mahui identidied by root;

语法结构:授权
GRANT角色|权限 TO 用户(角色)

给用户授权:grant  connect  to mahui;

语法结构:其他操作
//回收权限
REVOKE 角色|权限 FROM 用户(角色)
//修改用户的密码
ALTER USER 用户名 IDENTIFIED BY  新密码
//修改用户处于锁定(非锁定)状态
ALTER USER 用户名 ACCOUNT LOCK|UNLOCK


回收权限:revoke connect from mahui;

修改用户的密码:alter  user mahui identitied by 1234;

alter user mahui account unlock;

3. 创建表和约束
Oracle 创建表同 SQL Server 一样,使用 CREATE TABLE 命令来完成。创建约束则使用如下
  命令: 语法格式:ALTER TABLE 命令
ALTER TABLE 表名 ADD CONSTRAINT 约束名 约束内容。
  

不论创建表还是约束,与 SQL Server 基本相同,注意:在 Oracle 中 default 是一个值,
而 SQL Server 中 default 是一个约束,因此 Oracle 的 default 设置可以在建表的时候创建。

代码演示:Oracle 创建表和约束
CREATE TABLE INFOS
(
STUID VARCHAR2(7) NOT NULL, --学号 学号=‘S’+班号+2位序号
STUNAME VARCHAR2(10) NOT NULL, --姓名
GENDER VARCHAR2(2) NOT NULL, --性别
AGE NUMBER(2) NOT NULL, --年龄
SEAT NUMBER(2) NOT NULL, --座号
ENROLLDATE DATE, --入学时间
STUADDRESS VARCHAR2(50) DEFAULT '地址不详', --住址
CLASSNO VARCHAR2(4) NOT NULL --班号 班号=学期序号+班级序号
)
/ ①
ALTER TABLE INFOS ADD CONSTRAINT PK_INFOS PRIMARY KEY(STUID) ②
/
ALTER TABLE INFOS ADD CONSTRAINT CK_INFOS_GENDER
CHECK(GENDER = '男' OR GENDER = '女') ③
/
ALTER TABLE INFOS ADD CONSTRAINT CK_INFOS_SEAT
CHECK(SEAT >=0 AND SEAT <=50) ④
/
ALTER TABLE INFOS ADD CONSTRAINT CK_INFOS_AGE
CHECK(AGE >=0 AND AGE<=100) ⑤
/
ALTER TABLE INFOS ADD CONSTRAINT CK_INFOS_CLASSNO
CHECK((CLASSNO >='1001' AND CLASSNO<='1999') OR
(CLASSNO >='2001' AND CLASSNO<='2999')) ⑥
/

ALTER TABLE INFOS ADD CONSTRAINTS UN_STUNAME UNIQUE(STUNAME) ⑦
/

代码解析:
① 在 Oracle 代码中,“/”执行缓存区中的语句,由于缓冲区中只存储一条刚刚保存过
语句,由于每条语句没有用分号结尾,只是保存在缓冲区,因此每条语句后面都有
单独一行“/”。
② 创建一个主键约束。
③ 与 ④ ⑤ ⑥ ⑦一起创建各种 check 约束。其中⑦是唯一约束,表示该列值是唯一
的,列中的值不能重复。


Oracle 中可以把查询的结果根据结果集中的表结构和数据形成一张新表。
语法结构:根据结果集创建表
CREATE TABLE 表名 AS SELECT 语句
代码演示:根据结果集创建表
SQL> CREATE TABLE INFOS1 AS SELECT * FROM INFOS;
TABLE CREATED


在 Oracle 中,一个 INSERT 命令可以把一个结果集一次性插入到一张表中。使用的语句
是:INSERT INTO 表 SELECT 子句,如下示例:
代码演示:INSERT 向表中插入一个结果集
SQL> INSERT INTO INFOS2 SELECT * FROM INFOS;

TRUNCATE
在数据库操作中, TRUNCATE 命令(是一个 DDL 命令)可以把表中的所有数据一次性
全部删除,语法是:
语法结构:TRUNCATE
TRUNCATE TABLE 表名
TRUNCATE 和 DELETE 都能把表中的数据全部删除,他们的区别是:
1. TRUNCATE 是 DDL 命令,删除的数据不能恢复;DELETE 命令是 DML 命令,删除后
的数据可以通过日志文件恢复。
2. 如果一个表中数据记录很多,TRUNCATE 相对 DELETE 速度快。
由于 TRUNCATE 命令比较危险,因此在实际开发中,TRUNCATE 命令慎用。

 消除重复行
在 Oracle 查询中结果中,可能出现若干行相同的情况,那么可以使用 DISTINCT 消除重
复行。具体的用法如示例:





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值