Oracle基础巩固
来源:互联网 发布:sql多对多连接查询 编辑:程序博客网 时间:2024/04/29 11:46
Oracle基础巩固
Oracle中,一般不会轻易在一个服务器上创建多个数据库,在一个数据库中,不同的项目由不同的用户访问,每一个用户拥有自身创建的数据库对象,因此用户的概念在Oracle中非常重要。Oracle的用户可以用CREATE USER命令来创建。其语法是:
语法结构:
创建用户:CREATE USER 用户名 IDENTIFIED BY 口令 [ACCOUNT LOCK|UNLOCK]
语法解析:
LOCK|UNLOCK创建用户时是否锁定,默认为锁定状态。锁定的用户无法正常的登录进行数据库操作。
代码演示:创建用户SQL> CREATE USER jerry
2 IDENTIFIED BY tom
3 ACCOUNT UNLOCK;
注释:Oracle在SQL*Plus中的命令以分号(;)结尾,代表命令完毕并执行,系统同时会把该命令保存在缓存中,缓存中只保存最近执行过的命令,如果重新执行缓存中的命令,直接使用左斜杠符号(/)。如果命令不以分号结尾,该命令只是写入缓存保存起来,但并不执行。尽管用户成功创建,但是还不能正常的登录Oracle数据库系统,因为该用户还没有任何权限。如果用户能够正常登录,至少需要CREATE SESSION系统权限。
在Oracle开发中,客户端把SQL语句发送给服务器,服务器对SQL语句进行编译、执行,把执行的结果返回给客户端。Oracle SQL语句由如下命令组成:
Ø 数据定义语言(DDL),包括CREATE(创建)命令、ALTER(修改)命令、DROP(删除)命令等。
Ø 数据操纵语言(DML),包括INSERT(插入)命令、UPDATE(更新)命令、DELETE(删除)命令、SELECT …FOR UPDATE(查询)等。
Ø 数据查询语言(DQL),包括基本查询语句、Order By子句、Group By子句等。
Ø 事务控制语言(TCL),包括COMMIT(提交)命令、SAVEPOINT(保存点)命令、ROLLBACK(回滚)命令。
Ø 数据控制语言(DCL),GRANT(授权)命令、REVOKE(撤销)命令。
Oracle的查询中,必须使用“select列…from 表”的完整语法,当查询单行函数的时候,from后面使用DUAL表,dual表在系统中只有一行一列,该表在输出单行函数时为了select…from的语法完整性而使用。
创建表和约束:Oracle创建表同SQL Server一样,使用CREATE TABLE命令来完成。创建约束则使用如下命令:
语法格式:ALTERTABLE命令ALTER TABLE表名ADD CONSTRAINT约束名约束内容。
注意:在Oracle中default是一个值,而SQL Server中default是一个约束,因此Oracle的default设置可以在建表的时候创建。
代码演示:Oracle创建表和约束CREATE TABLE INFOS
(
STU_ID VARCHAR2(7) NOT NULL, --学号 学号=‘S’+班号+2位序号
STU_NAME VARCHAR2(10) NOT NULL, --姓名
GENDER VARCHAR2(2) NOT NULL, --性别
AGE NUMBER(2) NOT NULL, --年龄
SEAT NUMBER(2) NOT NULL, --座号
ENROLLDATE DATE, --入学时间
STU_ADDRESS VARCHAR2(50) DEFAULT '地址不详', --住址
CLASSNO VARCHAR2(4) NOT NULL --班号 班号=学期序号+班级序号
)
/ ①
ALTER TABLE INFOS ADD CONSTRAINT PK_INFOS PRIMARY KEY(STU_ID) ②
/
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_STU_NAME UNIQUE(STU_NAME)⑦
/
代码解析:
① 在Oracle代码中,“/”执行缓存区中的语句,由于缓冲区中只存储一条刚刚保存过语句,由于每条语句没有用分号结尾,只是保存在缓冲区,因此每条语句后面都有单独一行“/”。
② 创建一个主键约束。
③ 与④⑤⑥⑦一起创建各种check约束。其中⑦是唯一约束,表示该列值是唯一的,列中的值不能重复。
- Oracle基础巩固
- 巩固基础
- 基础巩固...
- PHP-基础(基础巩固)
- 需要巩固进一步基础
- Java基础巩固
- C语言基础巩固
- c++ 基础巩固
- php&mysql基础巩固
- 安卓基础巩固
- java基础巩固
- java-基础巩固 1
- java-基础巩固 2
- java-基础巩固 3
- Java重点基础巩固
- Java基础巩固
- PTA-基础巩固2
- java基础巩固----集合
- Flappy Andrew 4.0! 隆重登场!——不仅仅是山寨。
- 飞凌OK210开发板UBoot移植步骤
- 最少操作次数
- 关于Servlet的生命周期
- 面向对象的分析
- Oracle基础巩固
- 【LeetCode】Unique Binary Search Trees给定节点数二叉树数量
- select,poll,epoll,iocp
- VC++编程技巧集
- MySQL第二天早上第一次连接超时报错,解决方法com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:
- 数据库三范式简介
- GCC编译动态和静态链接库
- 使用 ibatis 处理复杂对象数据关系的实例
- 一个小技巧改变DOS难看的外部