一、Oracle基础数据类型:
数据类型:

  1. 创建数据表时,设计数据表的结构问题,也就是设计及确定数据表中各个列的数据类型,是数值、字符、日期还是图像等其他类型。
  2. 因为只有设计好数据表结构,系统才会在磁盘开辟相应的空间,用户才能向表中填写数据。 

4类:
   字符型:字符串
    char(最大2000), nchar(最大1000, 支持Unicode)--->固定长度的字符串。
    varchar(最大4000), nvarchar2(最大2000, 支持Unicode)--->可变长度的字符串。

   数字类型
    包括整数和小数
    number(有效数字, 总位数);
                  声明语法:NUMBER(p,s)

          • p表示精度,s表示小数点的位数
          • 可以存储整数、浮点数等数值类型,最高精度为38位。

例如:NUMBER(5,0) 最多可存储五位整数
                                NUMBER(5,2) 最多可存储999.99的浮点数
     flaot-->存储二进制类型的数据, 1-126位0.30103
     日期类型:时间
     date:取值范围:公元前4712年1月1号---公元9999年12月31号, 可以直接精确到秒
     timestamp(时间戳: 更精确的数据, 可以精确到毫秒)
   其它类型:大文本, 文件
     blob(binary LOB): 最大4G, 以二进制的形式来存放数据,可以存储较大的二进制对象,如:图形、视频剪辑和声音文件。
     clob(charcater LOB): 最大4G, 以字符串的形式存放,它能够存储大量字符数据。

  Oracle运算符和表达式

    表达式类似于java, 可以是常量, 可以是变量, 也可以是表中的一个字段
    算术运算符(+ - * /)
    比较运算符(> >= < <= = <>/!=)
    逻辑运算符(and or not)
    字符串连接符(||)

常用关键字:
    insert into----insert into  表名 values ();

    delete-----DELETE 表名 WHERE 列名 运算符 条件

    update----UPDATE 表名 SET 列名=值 WHERE 限制条件

    select---尽量不要写*

    where

    in

    like(%, _)---模糊查询,%表示0个或多个;_表示一个;

    order by----SELECT * FROM emp ORDER BY deptid DESC, ID DESC(排序,加上desc成倒序)

    group by--(group by 增强)-------结合分组函数使用 SELECT deptid FROM emp GROUP BY deptid

    having

    case...when...--------SELECT CASE E.SSEX WHEN 1 THEN '男' WHEN 0 THEN '女' ELSE '不详' END bb FROM EMP E;

    set

    distinct----去除一列中的重复;

    between...and(闭合区间, 即包括前面的数, 也包括后面的数)

    all-------SELECT * FROM emp e WHERE e.intime>=ALL(SELECT e1.intime FROM emp e1);

二、Oracle基本操作

1、创建表:

通过create table语句

语法结构如下:

create  table  table_name(

column_name datatype;

)

2、修改和删除表

  • 添加列:

语法结构:alter table 表名 add 新增列名 数据类型

如:alter table student add tel varchar2(11);

  • 修改列:

语法结构:alter table 表名 modify 列名 新数据类型;

如:alter table student modify tel number(11,0);

  • 删除列:

语法结构:alter table 表名 drop colunm 列名;

如:alter table student drop column tel;

  • 修改列名:

语法结构:alter table 表名 rename column 列名 to 新列名;

如:alter table student rename column sex to gender;

  • 修改表名:

语法结构:rename 表名 to 新表名

如:rename student to studentinfo;

 3、增删改查

DML基本操作:添加信息insert

查询信息selete

修改信息update

删除信息delete

添加信息:

语法结构:insert into 表名[(列1,列2,...,列n)] values(值1,值2,...,值n);

如:insert into student(sid,name,sex) values(2001,'张三','女');

insert into student(sid,name,sex,address,brithday) values(2001,'张三','女','北京',to_date('19900909','YYYYMMDD'));

insert into student values(2001,'张三','女','北京',to_date('19900909','YYYYMMDD'));

查询信息:

语法格式:selete *|column[...]  from 表名;

如:1、查询全体学生的学号和姓名

selete sid,name from student;

2、查询全体学生

selete * from student;

3、查询学号不等于20的学生 !=

selete * from student where sid!=20;

4、查询学号在20-30范围的学生 between and | in

selete name from student where sid>=20 and sid<=30;

selete name from student where sid between 20 and sid 30;

selete name from student where sid in (20,30);

5、模糊查询,查询以s开头的学生姓名 xx%

selete name from student where name like 'S%';

查询姓名含有S的学生

selete name from student where name like '%S%';

说明:与like搭配用,'s%'中的字母区分大小写。

6、占位查询,查询名字为5个字母,并且第二位是的学生姓名

selete name from student where name like '_o____';

7、not 与not null,查询没有学号|有学号的学生

selete * from student where sid is null|not null;

8、查询学生的出生日期

selete * from student where birthday between  '10-1月-90' and '10-12月-90';

9、查询学生信息

selete sid,name,sex,to_char(date,'yyyy-mm-dd hh24:mm:ss')  as 入职时间 from student;

10、查询系统时间

selete sysdate from sys.dual;

11、任意字段与null都为null  null+1000=null

selete sid+1000,name,sex from student;

12、nvl()函数设置null为0,nvl(sid,0)

selete nvl(sid,0)+1000,name,sex from student;

13、|| 每个字段可以通过||进行拼接

selete sid,name,sid||'---'||sex from student;

14、查询学生不重复的地址 去重复distinct

selete distinct address from student;

15、按学号升序查询 order by asc升序(默认隐藏)/desc降序

selete * from student order by sid asc

修改信息:

语法格式:update table

set column=value[column=values,...]

[where condition];

如:update student set tel='123' where sid=2001;

update student set address='北京朝阳';

删除信息:

语法格式:delete from table[where condition];

如:delete from student;

delete from student where sid=2001;

  • delete命令(数据操作语言DML)

格式:delete 表名;

如:删除学生表  delete student;

注意:1、用delete删除表,只是删除表中的数据,表结构不会被删除。

2、虽然是删除整个表的数据,但是删除过程是系统一行一行地删,效率比truncate低。

3、delete删除是不释放空间的,删除后数据库容量大小不变。

4、delete 语句每次删除一行,并在事务日志中为所删除的每行记录一项。所以可以对delete操作进行Rollback回滚数据信息。

  •  truncate命令(数据定义语言DDL)也叫截断表

格式:truncate  table 表名;

如:删除学生表  truncate table student;

注意:1、用truncate删除表,只是删除表中数据,表结构不会被删除,删除内容、释放空间但不删除定义,还可以新增元素。

2、删除整 个表的数据时,删除过程是系统一次性进行删除数据,效率比较高。

3、truncate删除会释放空间,不会触动任何delete触发器。

4、Rollback无效。

5、truncate 将重新设置高水平线和所有的索引。在对整个表和索引进行完全浏览时,经过 truncate 操作后的表比Delete操作后的表要快得多。

6、不能清空父表。

truncate与delete比较:


1、truncate table 在功能上与不带 WHERE 子句的 delete语句相同,二者均删除表中的全部行。

2、 truncate 比 delete速度快,且使用的系统和事务日志资源少。

3、当表被清空后表和表的索引讲重新设置成初始大小,而delete则不能。

  • drop命令(数据定义语言DDL)

格式:drop table 表名

如:删除学生表   drop table student

注意:1、用drop删除表数据,不但会删除表中数据,也会将表结构删除。

2、自动提交,Rollback无效,不会触动触发器,会将空间释放出来。

4、复制表

可以从其他用户,选用已存在的表。

如:scott中的dept表,拖拽到右侧显示栏,弹出框选择单个语句,显示2-7行,再添加1行,就能将此表dept中所有信息复制到本地表depts中。

 create table depts as
SELECT
deptno,
dname,
loc
FROM
scott.dept;

Oracle 基本操作--数据类型、修改和删除表、增删改查和复制表的更多相关文章

  1. GZFramwork数据库层《二》单据表增删改查(自动生成单据号码)

    运行效果: 使用代码生成器(GZCodeGenerate)生成tb_EmpLeave的Model 生成器源代码下载地址: https://github.com/GarsonZhang/GZCodeGe ...

  2. GZFramwork数据库层《一》普通表增删改查

    运行结果:     使用代码生成器(GZCodeGenerate)生成tb_MyUser的Model 生成器源代码下载地址: https://github.com/GarsonZhang/GZCode ...

  3. Vc数据库编程基础MySql数据库的表增删改查数据

    Vc数据库编程基础MySql数据库的表增删改查数据 一丶表操作命令 1.查看表中所有数据 select * from 表名 2.为表中所有的字段添加数据 insert into 表名( 字段1,字段2 ...

  4. Django框架(九)—— 单表增删改查,在Python脚本中调用Django环境

    目录 单表增删改查,在Python脚本中调用Django环境 一.数据库连接配置 二.orm创建表和字段 三.单表增删改查 1.增加数据 2.删除数据 3.修改数据 4.查询数据 四.在Python脚 ...

  5. GZFramwork数据库层《四》单据主从表增删改查

    同GZFramwork数据库层<三>普通主从表增删改查 不同之处在于:实例 修改为: 直接上效果: 本系列项目源码下载地址:https://github.com/GarsonZhang/G ...

  6. GZFramwork数据库层《三》普通主从表增删改查

    运行结果: 使用代码生成器(GZCodeGenerate)生成tb_Cusomer和tb_CusomerDetail的Model 生成器源代码下载地址: https://github.com/Gars ...

  7. Django框架(八)--单表增删改查,在Python脚本中调用Django环境

    一.数据库连接配置 如果连接的是pycharm默认的Sqlite,不用改动,使用默认配置即可 如果连接mysql,需要在配置文件中的setting中进行配置: 将DATABASES={} 更新为 DA ...

  8. TESTUSERB 仅能对TESTUSERA 用户下的某些表增删改查、有些表仅能对某些列update,查询TESTUSERB 用户权限,获取批量赋予语句。

    TESTUSERB 仅能对TESTUSERA 用户下的某些表增删改查.有些表仅能对某些列update,查询TESTUSERB 用户权限,获取批量赋予语句. select 'grant '|| PRIV ...

  9. SSH框架下的多表增删改查

    下载地址:SSH框架下的多表增删改查 点击进入码云Git下载 点击进入CSDN下载 项目结构: 项目代码就不全部贴出来了,只贴下核心代码.需要项目的自己可以去下载. package com.atgui ...

随机推荐

  1. Java String 函数常用操作 & format() 格式化输出,代码详解

    package _String_; import java.util.*; import java.math.*; import java.lang.*; public class _Strings ...

  2. 无法获取未定义或 null 引用的属性“contentWindow”

    在iframe 中有时候 这样使用contentWindow 会报   无法获取未定义或 null 引用的属性“contentWindow”   这种情况 我是在IE中遇到 其他浏览器一切正常. pa ...

  3. Python 爬取 猫眼 top100 电影例子

    一个Python 爬取猫眼top100的小栗子 import json import requests import re from multiprocessing import Pool #//进程 ...

  4. 在阿里云服务器上搭建xampp遇到的问题

    参考文章:http://blog.csdn.net/hel12he/article/details/49781813 http://www.laozuo.org/8178.html http://bl ...

  5. MySQL数据库自动备份

    1.vi /home/wangcn/auto_log.sh#!/bin/bash #Shell Command For Backup MySQL Database Everyday Automatic ...

  6. 学Hadoop还是Spark好?

    JS 相信看这篇文章的你们,都和我一样对Hadoop和Apache Spark的选择有一定的疑惑,今天查了不少资料,我们就来谈谈这两种 平台的比较与选择吧,看看对于工作和发展,到底哪个更好. 一.Ha ...

  7. 人脸识别最新开发经验demo分享

    本来打算做个C#版demo,但没用成功,基于虹软的免费人脸识别技术 过程如下: 1. 传入一张单人脸照片: 2.调用检测人脸函数ASFDetectFaces,成功返回人脸信息的指针: 3.使用 Mar ...

  8. Codeforces E - Connected Components?

    E - Connected Components? 思路: 补图bfs,将未访问的点存进set里 代码: #include<bits/stdc++.h> using namespace s ...

  9. Codeforces Gym - 101102B - The Little Match Girl

    B. The Little Match Girl time limit per test 1 second memory limit per test 256 megabytes input stan ...

  10. echart 圆滑初始化化

    圆滑:主题下载对应主题js引入后注入对应名称参数方可使用主题 初始化:tab点击的时候初始化图表涉及到tab切换到的需要延迟加载否则默认宽度为100px 1.创建macarons.js文件 2.页面添 ...