Oracle——DDL常见操作

本文详细讲解了Oracle数据库的基础概念,如用户、表空间和数据隔离,演示了如何查看当前用户、切换用户,进行简单查询,包括字符串连接、算术运算和模糊查询。此外,还介绍了字段类型、数据库语言(DML、DDL、DCL)和常用单行函数。表管理部分涵盖了创建、修改、删除表以及数据复制的方法。

目录

Oracle基本概念:

查看当前数据库连接的用户:

用户的切换:

Oracle简单查询:

字段类型:

数据库语言:

单行函数:

表管理:

Oracle基本概念:

  1. Oracle数据库:是一个文件系统,是物理概念;
  2. 实例:在Oracle的数据库中可以有多个实例,通常我们只用一个实例;
  3. 用户:一个实例下有多个用户;
  4. 表空间:一个实例下有多个表空间,表空间是逻辑概念,用来存储数据,一个表空间对应着一个或多个物理存储文件(.dbf和.ora);
  5. 用户和表空间的关系:一个用户有一个默认的表空间,一个表空间可以为多个用户作为默认表空间,用户和用户之间的数据是隔离,数据不会混;
  6. Oracle数据库源:
    driver:oracle.jdbc.OracleDriver;
    url:     jdbc:oracle:thin:@localhost:1521:orcl;
    username:xxxxxx;
    password:xxxxxx.
  7. Oracle中用户的概念相当于MySQL中database的概念.

查看当前数据库连接的用户:

show user

用户的切换:

conn 用户名/密码 [as sysdba ]

Oracle简单查询:

  1. 字符串连接使用'||':
    select '员工编号是'|| empno || '姓名是' ename || '的工作是' job from emp;
  2. sql支持四则运算:
    select ename,sal*12 from emp;
  3. 非空和空的限制:
    为空:列名 is null;
    不为空:列名 is not null.
  4. 模糊查询:
    '%':可以匹配任意长度的内容;
    '_'可以匹配一个长度的内容.

字段类型:

  1. 1.Number(4):最大长度为4位的数值类型;
  2. Varchar2(10):最大长度为10的字符串,varchar2用于存储可变长度的字符串,varchar2把所有字符都占两字节处理(一般情况下),varchar只对汉字和全角等字符占两字节,数字,英文字符等都是一个字节,varchar2把空串等同于null处理,而varchar仍按照空串处理,建议在Oracle中使用varchar2;
  3. Number(7,2):数值类型整数位占5位,小数位占2位,一共7位;
  4. Date:时间类型.

数据库语言:

  1. DML(数据库操作语言):其语句包括动词INSERT,UPDATE和DELETE,它们分别用于添加,修改和删除表中的行,也称为动作查询语言;
  2. DDL(数据库定义语言):其语句包括动词CREATE和DROP,在数据库中创建新表或删除表(CREATE TABLE 或 DROP TABLE);为表加入索引等,DDL包括许多与数据库目录中获得数据有关的保留字,它也是动作查询的一部分;
  3. DCL(数据库控制语言):通过GRANT或REVOKE获得许可,确定单个用户和用户组对数据库对象的访问,某些ROBMS可用GRANT或REVOKE控制对表单个列的访问.

单行函数:

  1. 把小写的字符转换成大写的字符:
    select upper('ccc') from dual
  2. 把大写的字符转换成小写的字符:
    select lower ('ccc') from dual
  3. 把首字母大写:
    select initcap ('ccc') from dual
  4. 字符串的可以使用concat:
    select concat('hello','world') from dual
  5. 字符串的截取,使用substr,第一个参数是源字符串,第二个参数是开始索引,第三个参数是结束的索引,开始的索引使用1和0效果相同:
    select substr('hello',1,3) from dual
  6. 获取字符串的长度:
    select length('ccc') from dual
  7. 字符串替换:第一个参数是源字符,第二个参数被替换的字符,第三个是替换字符串:
    select replace('hello','l','x') from dual

表管理:

  • 删除表
drop table 表名
  • 修改表名
1.alter table 旧表名 rename to 新表名
2.rename 旧表名 to 新表名
  •  复制表结构

create table 新表名 as select * from 旧表名 where 1=2
  • 复制表数据
1.表结构一样
insert into 新表名 select * from 旧表名
2.表结构不一样
insert into 新表名(column1,column2...) select (column1,column2...) from 旧表名
  • 复制表结构和表数据
create table 新表名 as select * from 旧表名
  • 添加列
alter table 表名 add 列名 类型
  • 修改列
1.修改列定义
alter table 表名 modify 列名 类型
2.修改列名
alter table 表名 rename column 旧列名 to 新列名
  • 删除列
alter table 表名 drop column 列名

### Oracle 数据库中的 DDL 语句概述 在 Oracle 数据库中,DDL(Data Definition Language)语句主要用于创建、修改和删除数据库对象,如表、索引、视图、约束等。以下是关于如何使用 DDL 语句的具体示例及其功能说明。 --- #### 创建表 (CREATE TABLE) 通过 `CREATE TABLE` 语句可以定义一个新的数据表并指定其列名、数据类型和其他属性。例如: ```sql CREATE TABLE employees ( employee_id NUMBER(6) PRIMARY KEY, first_name VARCHAR2(50), last_name VARCHAR2(50) NOT NULL, email VARCHAR2(100) UNIQUE, hire_date DATE DEFAULT SYSDATE, salary NUMBER(8, 2) ); ``` 上述代码片段展示了如何创建一个名为 `employees` 的表,并为其定义了几种类型的字段以及一些常见的约束条件[^1]。 --- #### 修改现有表结构 (ALTER TABLE) 当需要调整已存在的表时,可利用 `ALTER TABLE` 命令添加新列、更改已有列或者增加/移除某些约束条件。下面是一些典型操作的例子: - **向表中新增一列** ```sql ALTER TABLE employees ADD department_id NUMBER; ``` - **重命名某列名称** ```sql ALTER TABLE employees RENAME COLUMN department TO deptartment_newname; ``` - **设置默认值给特定列** ```sql ALTER TABLE employees MODIFY salary NUMBER(9, 2) DEFAULT 5000; ``` 这些命令允许灵活地更新现有的表格设计以满足新的业务需求。 --- #### 删除整个表 (DROP TABLE) 如果不再需要某个表,则可以通过简单的 `DROP TABLE` 操作将其彻底清除掉连同里面所有的记录一起消失不见: ```sql DROP TABLE employees CASCADE CONSTRAINTS; ``` 这里附加了选项 `CASCADE CONSTRAINTS`, 它的作用是用来自动处理那些依赖于被删去实体上的外键关系等问题. 需要注意的是,在执行任何 DDL 类型的操作之前都应该考虑到它们会对当前事务状态造成的影响——因为每次成功完成这样的变更之后都会触发一次隐含提交行为从而无法再回滚先前未保存的变化[^2]. --- #### 复制表结构而不复制数据 有时候我们只想获取源表的设计蓝图而不是实际内容项本身;这时就可以采用如下技巧实现仅拷贝架构的目的: ```sql CREATE TABLE new_employees AS SELECT * FROM employees WHERE 1=2; ``` 在这个例子当中由于WHERE子句里的逻辑表达永远为假所以最终得到的结果集为空集合因此也就实现了单纯迁移框架的效果[^3]. --- ### 总结 综上所述,Oracle 中的 DDL 提供了一套强大且丰富的工具帮助开发者高效构建与维护复杂的关系型数据库环境。无论是初期规划阶段还是后期优化改进过程中都离不开这类基础建设性的语法支持. ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值