一.Oracle的支持数据类型
     1.字符串类型
         char  固定长度(定义时即已确定长度,空余位置被补全),最大长度255,如 name char(10),'中'会占用10个长度;
         varchar2 长度不固定,根据实际情况占用,空余被放弃,最大长度3999,如 name varchar2(10),'中'会占用2个长度;

2.数值类型
         number(3) 最大数据999
         number(3,2) 最大数据9.99

3.大数值类型
         long:最大长度2G,相当于mysql中的longtext;
         clob:最大长度4G;
         blob:最大长度4G

4.日期类型
         data:相当于mysql中的datatime,格式为yyyy-mm-dd hh:mi:ss;
         timestamp:时间戳,精度高,精确到小数点后9位;

二.DDL和DML
     --查看当前用户的权限
     SELECT * FROM session_privs;

--创建表空间和数据文件
     CREATE TABLESPACE qin_space DATAFILE 'c:\\qin.dbf' SIZE 5M AUTOEXTEND ON NEXT 1M;

--创建用户
     CREATE USER qin IDENTIFIED BY qin DEFAULT TABLESPACE qin_space;

--赋予权限 3个角色 dba resource connect
     GRANT DBA TO qin;

--创建表 t_student
     CREATE TABLE t_student(
            tid NUMBER(8),
            tname VARCHAR2(30) NOT NULL,
            telephone VARCHAR2(11),
            gender CHAR(1),
            birthday DATE,
           
            CONSTRAINT pk_tid PRIMARY KEY(tid),           --主键约束
            CONSTRAINT unique_column UNIQUE(telephone),   --唯一约束
            CONSTRAINT check_column CHECK(gender IN(0,1)) --检查约束
     )

--插入数据
     INSERT INTO t_student VALUES(1,'小潘','110000011','0',to_date('2017-09-16','yyyy-mm-dd'));
     SELECT * FROM t_student;

--创建orders表
     CREATE TABLE orders(
            o_id NUMBER(8) PRIMARY KEY,
            o_totalprice NUMBER(8,2)
     )

--插入数据
     INSERT INTO orders VALUES(1,1000);
     INSERT INTO orders VALUES(2,2000);
     SELECT * FROM orders;

--创建表orderdetail,设置与orders表的外键关联
     CREATE TABLE orderdetail(
            od_id NUMBER PRIMARY KEY,
            od_name VARCHAR2(30),
            o_id NUMBER(8),
            CONSTRAINT fk_o_id FOREIGN KEY(o_id) REFERENCES orders(o_id)
     );

--插入数据
     INSERT INTO orderdetail VALUES(1,'mouse',1);
     INSERT INTO orderdetail VALUES (2,'keyboard',2);
     SELECT * FROM orderdetail

--快速建表
     CREATE TABLE myemp AS SELECT * FROM SCOTT.emp;
     CREATE TABLE mydept AS SELECT * FROM SCOTT.dept;

--update  需求:给NEW YORK地区的部门员工加薪100元
     --查询NEW YORK地区的部门员工
     SELECT * FROM myemp WHERE deptno IN (SELECT deptno FROM mydept WHERE loc = 'NEW YORK');
     UPDATE myemp SET sal = sal+100 WHERE deptno IN (SELECT deptno FROM mydept WHERE loc = 'NEW YORK');

--修改表结构
     --t_student表加一列address
     ALTER TABLE t_student ADD( address VARCHAR2(30));
     --修改address字段的长度为200
     ALTER TABLE t_student modify(address varchar2(200));
     --删除address列
     ALTER TABLE t_student DROP COLUMN address;

三.delete和truncate区别
   delete只是删除了数据,truncate是摧毁了表然后重建
   delete语句会产生磁盘碎片,而truncate不会
   delete删除的数据可以找回的

四.Oracle的其它对象
     1.视图:
         视图是一个虚表,可以用来封装复杂的sql语句和隐藏敏感列;视图是原数据表的引用,操作视图会改变原表;
         语法:create view 视图名称 as sql查询语句

只读视图: with read only
         create view view_emp as select ename, empno, job, mgr from myemp with read only;

2.序列:
         独立于表之外的一个对象,主要用于主键自增
         语法:
         create sequence seq_test;
         select seq_test.nextval from dual;
         select seq_test.currval from dual;

序列的完整语法:
         create sequence seq_sequence
         increment by 2   --递增值 默认1
         start with 3     --起始值 默认1
         maxvalue 15      --最大值  默认 19个9
         minvalue 2       --最小值  默认1
         cycle            --循环  默认 nocycle
         cache 5          --缓存的数量  默认缓存20

3.索引
         创建索引可以提高查询效率
         语法格式:create index 索引名字 on 表名(列名)
         当数据量较小或数据经常被修改时,不建议创建索引.

4.同义词(synonym)
         优点:可以缩短访问对象的名称;
         语法:create [public] synonym 名称 for 对象;
         举例:
         create synonym e for scott.emp;
         select * from e;

五.数据导入导出(dos窗口下,不需要连接到oracl)
     1. 导出Scott用户下的所有对象
       exp 用户名/密码@IP:1521/orcl   file='位置\\想要保存的文件名称.dmp' owner=用户名

2.  导入到用户qin中
       imp 用户名/密码@IP:1521/orcl   file='位置\\已有的想要导入的文件名称.dmp' full=y

Orcal笔记3-DDL-DML的更多相关文章

  1. DDL DML DCL SQL

    https://dev.mysql.com/doc/refman/5.7/en/glossary.html#glos_ddl SQL The Structured Query Language tha ...

  2. Hive数据据类型 DDL DML

    Hive的基本数据类型 DDL DML: 基本数据类型 对于Hive而言String类型相当于数据库的varchar类型,该类型是一个可变的字符串,不过它不能声明其中最多能存储多少个字符,理论上它可以 ...

  3. ORA-38301:can not perform DDL/DML over objects in Recycle Bin

    一个智障操作,drop一个用户,下面的东西比较多,删得比较慢,然后shell突然关了. 就导致了,删不掉,又不能创建新的用户.出版本要得比较急,就先创建新的用户测试去了. 今天要弄个东西,又想起这个事 ...

  4. MySQL中的DDL,DML

    MySQL中的DDL,DMLDDL:数据定义语言:    CREATE,ALTER,DROP        DB组件:数据库.表.索引.视图.用户.存储过程.存储函数.触发器.事件调度器等    CR ...

  5. SQL语言:DDL,DML,DCL,DQL,TCL

    DDL(Data Definition Language)数据库定义语言 statements are used to define the database structure or schema. ...

  6. Oracle 之——子查询 DDL DML 集合 及其他数据对象

    Oracle 学习笔记(二) 知识概要: 1.子查询 2.集合操作 3.DML语句操作 4.其他数据库对象 1.子查询 查询工资比SCOTT高的员工信息 1  select * 2  from emp ...

  7. Oracle SQL: DDL DML DCL TCL

    Data Definition Language 自带commit,与表结构有关(数据字典)(会等待对象锁) Data Manipulation Language (数据文件相关变化有关,会产生锁)不 ...

  8. DDL/DML是什么?

    DDL:(Data Definition Language)数据库定义语言 它是定义数据库的语言, 里面包含: CREATE ALTER DROP TRUNCATE COMMENT RENAME DM ...

  9. ddl dml dcl

    DCL数据控制语言 创建临时表空间 create temporary tablespace user_temp tempfile 'E:/oracle/product/10.1.0/oradata/o ...

  10. oracle中DDL DML指什么?

    DDL create table 创建表 alter table 修改表 drop table 删除表 truncate table 删除表中所有行 create index 创建索引 drop in ...

随机推荐

  1. CentOS下安装配置SVN服务器并自动同步到web目录

    一.安装 yum install subversion测试是否安装成功 /usr/bin/svnserve --version如提示以下内容,说明已安装成功 svnserve,版本 1.6.11 (r ...

  2. P4449 于神之怒加强版

    \(\color{#0066ff}{ 题目描述 }\) 给定n,m,k,计算 \(\sum_{i=1}^n \sum_{j=1}^m \mathrm{gcd}(i,j)^k\) 对1000000007 ...

  3. EF core 学习 执行原生sql语句 之ExecuteReader 和ExecuteScalar

    通过ef core 源码分析 Microsoft.EntityFrameworkCore.Storage.RelationalCommandExtensions类中有相应的方法 为此得到相应的结果: ...

  4. Android点击事件(click button)的四种写法

    在学习android开发和测试的时候发现不同的人对于click事件的写法是不一样的,上网查了一下,发现有四种写法,于是想比较一下四种方法的不同 第一种方法:匿名内部类 代码: package com. ...

  5. Python条件与循环

    1.条件语句: 形式: if 判断语句 : 执行语句1elif 判断语句2: 执行语句2elif 判断语句3: 执行语句3#...else: 执行语句4    占位符 pass 2.循环语句 1.wh ...

  6. Codeforces-Salem and Sticks(枚举+思维)

    Salem gave you nn sticks with integer positive lengths a1,a2,-,ana1,a2,-,an. For every stick, you ca ...

  7. Go语言学习包(1)之bufio包

    参考网址: https://blog.csdn.net/wangshubo1989/article/details/70177928

  8. vue(1)安装

    1.安装node.js(https://nodejs.org/en/),我安装的是 v10.15.1 1).在nodejs安装路径下,新建node_global和node_cache两个文件夹 2). ...

  9. 读书笔记:编程小白的第一本python入门书

    书名:编程小白的第一本python入门书 作者:侯爵 出版社/出处:图灵社区 年份:2016年 封面: 感想: 本书短小精悍,精华部分在于给编程小白打了鸡血的同时输出了一种“高效学习法的思想”. 个人 ...

  10. Office 2016 word无法粘贴(Ctrl + V)

    最近下载了一个 Office 2016 专业版 使用,发现 word 无法使用 Ctrl + V 粘贴东西,由于经常需要复制粘贴东西,无法粘贴影响很大 查了很多资料,尝试过很多的方法,终于发现问题的所 ...