美文网首页
Oracle | 命令行操作大全

Oracle | 命令行操作大全

作者: Ada54 | 来源:发表于2019-02-28 17:05 被阅读0次

    1.  数据定义语言(DDL)

        (1)创建表和约束

        (2)根据结果集创建表

    2. 数据操纵语言(DML)

    2.1  SELECT 数据查询

        (1) 查看表空间

        (2)查看用户下所有的表

        (3)取前10条记录

        (4)查询中的算术运算

        (5)字符串连接操作符(||)

        (6)查询时间区间

    2.2  INSERT 数据插入

        (1)插入一条记录

        (2)插入一个数据集

    2.3  UPDATE 数据插入

        (1)更新一条记录

    2.4  DELETE 数据删除


    1.  数据定义语言(DDL)

    包括CREATE(创建)命令、ALTER(修改)命令、DROP(删除)命令

    (1) 创建表和约束

    创建表命令: CREATE TABLE

    创建约束命令:ALTER TABLE 表名 ADD CONSTRAINT 约束名 约束内容

    CREATE TABLE INFOS (

    STUID VARCHAR2(7) NOT NULL, --学号 学号=‘S’+班号+2位序号

    STUNAME VARCHAR2(10) NOT NULL, --姓名

    GENDER VARCHAR2(2) NOT NULL, --性别

    ENROLLDATE DATE, --入学时间  )

    /  ALTER TABLE INFOS ADD CONSTRAINT PK_INFOS PRIMARY KEY(STUID) --主键约束

    / ALTER TABLE INFOS ADD CONSTRAINT CK_INFOS_GENDER CHECK(GENDER = '男' OR GENDER = '女')  -- check约束

    / 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)

    /

    在Oracle代码中,“/”执行缓存区中的语句,由于缓冲区中只存储一条刚刚保存过语句,由于每条语句没有用分号结尾,只是保存在缓冲区,因此每条语句后面都有单独一行“/

    /  ALTER TABLE INFOS ADD CONSTRAINT PK_INFOS PRIMARY KEY(STUID) --创建主键

    ALTER TABLE SCORES ADD CONSTRAINT FK_SCORES_INFOS_STUID FOREIGN KEY(STUID) REFERENCES INFOS(STUID)  --创建外键

    (2)根据结果集创建表

    语法:CREATE TABLE 表名 AS SELECT语句

    代码演示:CREATE TABLE INFOS1 AS SELECT * FROM INFOS;

    如果只复制表结构,只需使查询的条件不成立(比如where 1=2),就不会查询从出任何数据,从而复制一个表结构

    2. 数据操纵语言(DML)

    包括INSERT(插入)命令、UPDATE(更新)命令、DELETE(删除)命令、SELECT … FOR UPDATE(查询)

    2.1  SELECT 数据查询

    SELECT 简单查询语法:

    SELECT *|列名|表达式 FROM 表名 WHERE 条件 ORDER BY 列名

    表达式可以是列名、函数、常数等组成的表达式

    (1) 查看表空间

    1)select default_tablespace from dba_users where username='TMS21'; 查看用户所属的表空间

    2)select * from  dba_tablespaces; 查看所有的表空间

    (2)查看用户下所有的表

    1)select * from all_tables where owner='TEST';TEST为用户名,用户名必须是大写

    2)select table_name from user_tables;   查看当前登录的用户的表

    3)select * from user_tables;   查看当前登录的用户的表

    4)select table_name,tablespace_name,temporary from user_tables where table_name like '%tb_name%' ;  # tb_name 用模糊表名代替

    (3)取前10条记录

     1) select * from tbname where rownum < 11;

     2) select * from (select * from tbname order by id desc ) where rownum<=10;

    (4)查询中的算术运算

    1)每名员工年终奖是2000元,请显示基本工资在2000元以上的员工的月工资,年总工资

    select ename,sal,(sal*12+2000) ysal from emp where sal>2000;

    (5)字符串连接操作符(||)

    1)在EMP表中,查询工资在2000元以上的姓名以及工作

    select (ENAME || ' is a ' || JOB) AS "Employee Details"  from EMP  where SAL>2000;

    (6)查询时间区间

    1)to_char() 函数

    SELECT * FROM testdatetime  WHERE to_char(列名,'yyyy-MM-dd') BETWEEN '2018-07-01' AND  '2019-03-01';

    2)to_date() 函数

    select * from 表名 bnm where bnm.date >= to_date('2016-03-04','yyyy-mm-dd') and bnm.date <= to_date('2016-03-27','yyyy-mm-dd')

    按照具体到秒数

    select * from 表名 bnm where bnm.date >= to_date('2016-04-01 10:01:01','yyyy-mm-dd hh:mi:ss')

    2.2  INSERT 数据插入

    语法:INSERT INTO 表名(列名1,列名2……) VALUES (值1,值2……)

    (1)插入一条记录

    INSERT INTO INFOS

    VALUES ( 's100104','阮小二','男',26,3,SYSDATE,default,'1001');

    获取时间,也可以用TO_DATE('2009-8-9 06:30:10',' YYYY-MM-DD HH24:MI:SS ')

    (2)插入一个数据集

    INSERT INTO INFOS2 SELECT * FROM INFOS;

    2.3  UPDATE 数据插入

    语法:UPDATE 表名 SET 列名1=值,列名2=值…… WHERE 条件

    (1)更新一条记录

    UPDATE INFOS SET CLASSNO='1002',STUADDRESS='山东莱芜' WHERE STUNAME='阮小二';

    2.4  DELETE 数据删除

    语法: DELETE FROM 表名 WHERE 条件

    DELETE命令是DML命令,删除后的数据可以通过日志文件恢复

    相关文章

      网友评论

          本文标题:Oracle | 命令行操作大全

          本文链接:https://www.haomeiwen.com/subject/gguxuqtx.html