1、查询表中所有数据

select * from 表名;  例:select * from stu;

2、查询的同时修改表中数据

select * from 表名  for update;  例:select * from stu for update;

3、往表中添加数据

insert into 表名(列1,列2...) values(值1,值2...);

例:insert into stu(id,name,age) values(1,'zhangsan',23);

注意:字符串类型要用单引号括起

   对于列中要求非空的属性,添加时必须添加,可以为空的数据可以不写上.

   列名和值要一一对应。

4、删除表中数据(删除某行数据)

delete from 表名 where 列名=值;    例:delete from stu where id=1;//删除id是1的那行数据

注意:删除时尽量使用唯一键进行删除,或者使用主键进行删除。

5、更改表中某行数据

update 表名 set 列名=值,列名=值...where 列名=值;  例:update stu set id=2,name='lisi';age=4 where id=1;  //把id为1的那行数据进行更改,可只更改部分数据

6、查询(重点,最常用的对数据库进行的操作就是查询)

在sql中,可以使用简单的运算符(+-%/);

 (1)、查询表中所有数据

  select * from 表名;  例:select * from stu;

(2)、查询表中指定列的数据

  select 列名 from 表名;  例:select name,age from stu;

(3)、查询表中指定行列的数据

  select 列名 from 表名 where 列名=值;  例:select name,age from stu where id=2;(查询id为2的数据的姓名和年龄)

(4)、查询十年后张三的年龄

  select name,age+10 from stu where name='zhangsan';

(5)、给age字段起别名

    给字段起别名是为了更好的对字段进行描述,也就是说起一个别名并不能随意起,要适用于这个字段的意思

    select name age+10 as ages from stu where name='zhangsan';(使用关键字as,通常情况下,这里的as可以省略)

    select name age+10 ages from stu where name='zhangsan';

    也可以给表起别名:select name from stu s;(给表stu起别名s,这里不能加as);

    注意:如果别名中间有空格,需要给别名加个双引号

    例:select age+10 "zhangsan age" from stu where id=1;

(6)、表格自定义的格式表现

  例:select '姓名:'||name,'年龄:'||age from stu;(使用了单引号)

(7)、对数据进行排序

  这里需要使用关键字order by,默认是升序的---->asc升序,如果以升序进行排列通常情况下asc省略。desc降序,不能省略

  例:select * from stu order by age asc;(对学生表按照年龄升序排列)

    select * from stu order by age desc;(对学生表按照年龄降序排列)

    select * from stu order by age desc,name desc;(对学生表按照年龄降序排列,年龄相同时按名字降序排列)

(8)、去除重复项(关键字:distinct)

  例:select distinct age from stu;(去除stu表中年龄相同的项,只保留一项)

  注意:这里的去除只能按照某一属性去除,不能同时按照两个或以上属性去除。
(9)、计算1+1等于几?

  select 1+1 from dual;(1+1信息会显示在dual表中)

  dual其实也是一张表,这一表是虚拟的,没有列和数据,当查询的时候会进行赋予列和数据,用于方便用户测试使用.

(10)、查询当前Oracle登录用户

  select user from dual;(用户信息会显示在dual表中)

 7、利用where关键字进行查询(这里都以teacher表为例,该表有id,name,age,description hire_date等列,其中id列是主键)

  (1)、= 关键符号

    select * from teacher where id=2;  //查找id等于2的那行

  (2)、大于>、小于<、大于等于>=、小于等于<=和!=不等于;

    select * from teacher where id>2;  //查找id大于2的数据;

    select * from teacher where id<5;  //查找id小于5的数据;

    select * from teacher where id>=2;  //查找id大于等于2的数据;

    select * from teacher where id<=2;  //查找id小于等于2的数据;

    select * from teacher where id!=2;  //查找id不等于2的数据;

  (3)、between and是包含两边的极限数据(闭区间)

    select * from teacher where id between 2 and 10;  //查找id在2和10之间的数据(包括2和10);

  (4)、or关键字(或者)

    select * from teacher where id=2 or id=5;  //查找id等于2或者id等于5的。

  (5)、and关键字(和)

    select * from teacher where name='zhangsan' and age=32;  //查找名字等于张三并且年龄32的数据(人);

  (6)、in、not in关键字(主要的作用:批量操作)

    select * from teacher where id in(1,5,10);  //查找id是1、5、10的数据

    select * from teacher where id not in(1,5,10);  //查找除了id是1、5、10的数据 

  (7)、is null(过滤出来所有为null的数据)

    select * from teacher where description is null;  //查找所有description属性是null的数据

  (8)、 is not null (过滤出来所有不为null的数据)

    select * from teacher where description is not null;  //查找所有description属性不是null的数据

  (9)、模糊查询(使用关键字like和not like)not like 和like刚好相反

    like一般情况下要和%结合起来用,%其实一个占位符(代表多位),如果把%写在前面,匹配以a结尾的所有名字,反之匹配以a开头的所有名字
    如果所需要查询的字段前后都加上%,只要包含该查询字段就全部查找出来

    例:select * from teacher where like name like '%a';  //匹配所有以a字符结尾的name属性。

      select * from teacher where like name like 'a%';  //匹配所有以a字符开头的name属性。

      select * from teacher where like name like '%a%';  //匹配所有包含a字符的name属性。

      _下划线也是占位符,不过它只代表1位,就是代表了任意一个字符

      以_a%进行模糊查询的时候,会匹配以第二位为'a'的字符串

      select * from teacher where like name '_a%';

      另一个关键字escape, 

      匹配规则:使用escape的时候会,如果_写在需要查询字段的前面,oracle会自动把_转移为任意一个字符
      只有把下划线写在需要查询字段的后面,才能使用escape关键字去掉多余字段,只保留下划线。
      如果'%_x%',使用escape关键字时,会连同下划线一起去除。

      例:select * from teacher where name like '%x_d%' escape 'x';  //查询以_开头的数据

        select * from teacher where name like '%/_d% escape '/';  //查询以_开头的数据

      例:搜索以“QA_”开头的数据 :

      select * from teacher where name like 'QA_%'

      结果为:QA_OFFICER_1,QA_OFFICER_2,QA112

      不符合,必须把下划线转义

      select * from teacher where name like 'QA/_%' escape '/';

      结果为:QA_OFFICER_1,QA_OFFICER_2    

      补充:

      SQL中escape的用法

      使用 ESCAPE 关键字定义转义符。 在模式中,当转义符置于通配符之前时,该通配符就解释为普通字符。

      例如,要搜索在任意位置包含字符串 5% 的字符串: WHERE ColumnA LIKE '%5/%%' ESCAPE '/' 

      前后两个%作为通配符使用,中间的%经过ESCAPE 转义,作为普通字符使用

8、Oracle中的函数

  (1)、lower(转换为小写)

    select lower(name) from teacher;  //把name数据转换成小写

   (2)、upper(转换为大写)

    select upper(name) from teacher;  //把name数据转换成大写

   (3)、initcap(首字母开头大写)

    select initcap(name) from teacher;  //把name属性数据首字母转换成大写

    select initcap('oracle') from dual;  //把字符串oracle首字母转换成大写

   (4)、length:获取字符串的长度
    select length(name) from teacher where id =1;

   (5)、replace:有三个参数第一个参数:列名(字段);第二个参数:需要替换字段中的某一个字符;第三参数:替换的字符

    select replace(name,'z','Q') from teacher where id =1;

   (6)、substr:和Java的subString差不多

    substr有两个参数:第一个参数:列名,第二个参数:从哪一位开始截取(包含最后一位截取的数):name,要截取:subtr('name',2);--->得到的是ame

    select substr(name,3) from teacher where id=2;

    如果第二个参数为负数的话,就倒着从最后一位开始往前截取

    select substr('zhangsan',-3) from dual;  //运行结果为san;    

    subtr:有三个参数:第一个参数:列名,第二个参数:从哪一位开始截取(闭区间),第三个参数:截取到多少位,截多少长度(会从第二个参数的截取位置往后开始进行截取)
    oracle中,截取的位置会从0或者1起始(0和1的位置是一样的;   

    select substr('zhangsan',0,5) from teacher where id = 1;
    select substr('zhangsan',1,5) from teacher where id = 1;

   (7)、ceil(向上取整)

    select ceil(12345.1) from dual;

   (8)、floor(向下取整)

    select floor(12345.1) from dual;

   (9)、round(四舍五入)   

    select round('12345.1') from dual;
    select round('12345.7') from dual;
    select round('12845.6', -3) from dual;

    select round('12845.6', 3) from dual;

   (10)、trunc:截断:会取整数,第二个参数:保留的小数位

    如果没有小数,并且第二个参数为正数:就原样显示,不会加上.00

    select trunc(123456.235243) from dual;

    select trunc(123456.235243,2) from dual;

    如果没有小数,并且第二个参数为负数:会把整数位从后往前写为0

    select trunc('123456', -3) from dual;

   (11)、concat:拼接字符串----->可代替||

    select concat('zhang','san') from dual;

    select concat('姓名是:',name) from teacher;

9、Oracle中的时间函数

  (1)、获取当前的时间:sysdate

    select sysdate from dual;

  (2)、时间-时间,查询的是指定日期距离某个日期的天数

    select sysdate-hire_date from teacher;  //查询某天距离当前日期的天数

  (3)、add_months:对指定日期月份进行加减计算

    select add_months(sysdate,3) from dual;

     select add_months(sysdate,-3) from dual;

   (4)、months_between:指定日期距离当前日期的月份    

     select hire_date, sysdate, months_between(sysdate, hire_date) from teacher;

   (5)、next_day:查询出指定日期和指定星期几的日期:只能往后不能往前

      select next_day(sysdate, '星期一') from dual;

   (6)、last_day:查询出当月的最后一天,查询当月有多少天

      select last_day(sysdate) from dual;
      select t.hire_date, last_day(hire_date) from teacher t;

   (7)、日期字符串转换函数,可在在日期型,字符串型和number型之间互转

    to_date('2017-12-4 16:12:34','yyyy-MM-dd hh24:mi:ss');  可以把日期字符串转换成日期型 

    to_date()函数可以将字符串转换为日期类型

    to_date(char) //按缺省格式进行解析

    to_date(char,‘format_model’) //按模式串指定的格式进行解析

    to_char()函数可以将日期型数值转换为字符串形式

    to_char(date) //缺省转换为'dd-mon-yy'格式

    to_char(date,‘format_model’) //转换为模式串指定的格式

    to_char(date,'yyyy');  //取到某个日期的年份

    to_char(date,'MM');  //取到某个日期的月份

    to_number(日期字符串);  //可以把日期字符串转换成number型。

    注意:缺省的日期格式是DD-MON-YY

    

针对Oracle数据库表中的数据的常见操作的更多相关文章

  1. oracle数据库表中,插入数据的时候如何产生一个 字母+数字 编号?

    Oracle 语句中“||”代表什么啊? oracle数据库表中,插入数据的时候如何产生一个 字母+数字 编号? 排序的话,用order by来处理即可.比如:cola123a234b999b335s ...

  2. Oracle 数据库表中已有重复数据添加唯一键(唯一约束)

    Oracle 数据库表中已有重复数据添加唯一键(唯一约束) 问题描述 以 demo 举例,模拟真实场景. 表 TEST_TABLE 有如下字段和数据:id 是主键,code 没有设置键和索引 ID C ...

  3. 在oracle数据库表中没有添加rowid字段为什么会出现?

    rowid 是 oracle 数据库表中的伪列, rowid 首先是一种数据类型,它唯一标识一条记录物理位置, 基于64位编码的18个字符显示.因为 rowid 是伪列, 所以并未真的存储在表中,但可 ...

  4. EF Core中,通过实体类向SQL Server数据库表中插入数据后,实体对象是如何得到数据库表中的默认值的

    我们使用EF Core的实体类向SQL Server数据库表中插入数据后,如果数据库表中有自增列或默认值列,那么EF Core的实体对象也会返回插入到数据库表中的默认值. 下面我们通过例子来展示,EF ...

  5. MySQL 两个数据库表中合并数据

    两个数据库表中合并数据 如果有  t1  和 t2 两个数据库表格,它们两个对应的字段是相同的.如何将 t2 的数据插入到t1中去呢? insert into t1 select * from t2 ...

  6. Oracle数据库表空间与数据文件的关系描述正确的是( )

    Oracle数据库表空间与数据文件的关系描述正确的是( ) A.一个表空间只能对应一个数据文件 B.一个表空间可以对应多个数据文件 C.一个数据文件可以对应多个表空间 D.表空间与数据文件没任何对应关 ...

  7. SQL语句的使用,SELECT - 从数据库表中获取数据 UPDATE - 更新数据库表中的数据 DELETE - 从数据库表中删除数据 INSERT INTO - 向数据库表中插入数据

    SQL DML 和 DDL 可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL). SQL (结构化查询语言)是用于执行查询的语法. 但是 SQL 语言也包含用于更新. ...

  8. 使用sqlldr命令导入资料到Oracle数据库表中的示例说明

    CSV: Comma-Separated Values(逗号分隔值)的缩写,是以逗号分隔字段的多行文本文件   sqlldr 是sql*loader的缩写,此工具在安装完整版的Oracle客户端后就有 ...

  9. 在向"带有自增字段的数据库表"中插入数据时,自定义"该自增字段"的数据

    在设计数据库表的时候,经常会使用自增主键或其他自增字段.比如: DB_UserGroups表中GroupID为该表主键,并为自增字段. 但在将某字段设置自增后,想在插入数据时,人为指定自增字段的数据内 ...

随机推荐

  1. mysql5.6源码自动安装脚本

    将脚本与源码安装包放在同一目录下,执行脚本即可(执行脚本会使用yum安装依赖包) 安装完成之后,既可以使用mysql -uroot -p登录   脚本内容如下: [root@mysql src]# c ...

  2. js快速去除数组重复项

    function unique1(arr) { var tmp = new Array(); tmp.push(arr[0]); for(var i=0;i<arr.length;i++) { ...

  3. Reverse Integer 2015年6月23日

    题目: Reverse digits of an integer. Example1: x = , return Example2: x = -, return - 思路:递归 解答: / test ...

  4. MSICE界面和功能分析

    一.首页 ICE实现的这种界面样式,有可能使用WCF实现的,但是MFC来模仿也是可行的. 包括配置界面,和右下角的细节. 首页的主要功能只有3个,分别为图片拼接.视频拼接和打开拼接文件. 二.输入拼接 ...

  5. JS Event事件流(冒泡机制、捕获机制、事件绑定)

    1.事件流 事件流:从页面中接收事件的顺序.也就是说当一个事件产生时,这个事件的传播过程,就是事件流. IE的事件流 IE中的事件流叫事件冒泡:事件冒泡:事件开始时由最具体的元素接收,然后逐级向上传播 ...

  6. 跟着刚哥深入学maven

    前言:目前所有的项目都在使用maven,可是一直没有时间去整理学习,这两天正好有时间,好好的整理一下. 一.为什么使用Maven这样的构建工具[why] ① 一个项目就是一个工程 如果项目非常庞大,就 ...

  7. js背景自适应,学到了

    最近在做一个项目,要求实现背景自适应,何为背景自适应呢? 1.如果背景图高度不够,背景height是100%,background-size就应该是 100% auto 2.如果背景图宽度不够,背景w ...

  8. 【WPF】用三角形网格构建三维图形

    虽然WPF只能支持部分三维模型,不过从应用功能开发的角度看,也已经够用了(非游戏开发).WPF 的三维图形,说得简单一点,也就两种而已. 1.把二维对象放到三维空间中,这个应该较为好办,像 Image ...

  9. JAVAEE学习——struts2_01:简介、搭建、架构、配置、action类详解和练习:客户列表

    一.struts2是什么 1.概念 2.struts2使用优势以及历史 二.搭建struts2框架 1.导包 (解压缩)struts2-blank.war就会看到 2.书写Action类 public ...

  10. [github项目]基于百度地图二次开发实现的车辆监管(包含车辆定位、车辆图片和方向控制,电子围栏,图形绘制等功能)前端实现(不包含后端实现)

    前言:基于百度地图javascript版本开发,百度地图中所用的key已承诺仅用于测试,不用于商业用途 注:本文所有代码可以到github上进行下载,github地址:http://map.eguid ...