Orcal笔记三-DDL-DML

1.Oracle的扶助数据类型
     一.字符串类型
         char 
固定长度(定义时即已鲜明长度,空余地点被补全),最大尺寸25五,如 name
char(10),’中’会占用11个长度;
         varchar2 长度不固定,依据实况占用,空余被放任,最大尺寸399九,如
name varchar二(10),’中’会占用三个长度;

    二.数值类型
         number(三) 最大数额99九
         number(3,2) 最大数量九.9玖

    3.大数值类型
         long:最大尺寸2G,相当于mysql中的longtext;
         clob:最大尺寸肆G;
         blob:最大尺寸四G

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

二.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;

    –赋予权力 一个角色 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 P景逸SUVIMA奥迪Q5Y KEY(tid),           –主键约束
            CONSTRAINT unique_column UNIQUE(telephone),   –唯1约束
            CONSTRAINT check_column CHECK(gender IN(0,一)) –检查约束
     )

    –插入数据
     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 YO福睿斯K地区的部门职员和工人加薪拾0元
     –查询NEW YO奥迪Q5K地区的单位职工
     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.序列:
         独立于表之外的1个对象,首要用以主键自增
         语法:
         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;

5.数量导入导出(dos窗口下,不需求一连到oracl)
     一. 导出斯科特用户下的装有指标
       exp 用户名/密码@IP:1521/orcl  
file=’位置\\想要保存的文件名称.dmp’ owner=用户名

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

相关文章