ORACLE数据库的SQL基本操作

Posted 亦一2019

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORACLE数据库的SQL基本操作相关的知识,希望对你有一定的参考价值。

      作为一个代码小白,最近一个月在开始学习python语言,这一学习路上经历了一场听完学习视频,看完老师敲的代码,自己上手写,一团乱麻。。。

最尴尬的时刻就是赶在年前公司重新面试打分,问到了数据库,发现SQL这块也挺重要,工作中经常用到,发现太久未系统整理数据库知识,趁此机会整理如下

      首先,ORACLE数据库(Oracle Database)是一款关系数据库管理系统,它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好,使用方便、功能强,适用于各类大、中、小、微机环境。

一般自行建立好表空间,用户,表,表索引,初始化数据(插入表数据)

后台执行初始化数据(初始化数据的量一般偏大)

 

 再者就开始介绍工作中常用到的在一个用户下的所属表里的SQL查询语句的基本操作吧(增,删,查,改)

1.增

原有一张表table名 websites

 

 

1.1 没有指定要插入数据的列名的形式新增行数据

原有4行数据,现在需要添加两行新数据(没有指定要插入数据的列名形式),此时我们就要使用 insert into ...value 需要列出插入行的每一列数据

使用如下SQL:

INSERT INTO websites values

(\'5\', \'Facebook\', \'https://www.facebook.com/\', \'3\', \'USA\'),

(\'6\', \'百度\',\'https://www.baidu.com/\',\'4\',\'CN\');

 

执行完结果如下:

 

1.2 在指定的列插入新的行数据

原有6条数据,现需要插入一个新行,但是只在 "name"、"url" 和 "country" 列插入数据(id 字段会自动更新)

使用如下SQL:

INSERT INTO Websites (name, url, country)
VALUES (\'stackoverflow\', \'http://stackoverflow.com/\', \'IND\');

 

执行完结果如下:(id 字段已自动更新)

小结 在原表 插入数据的语法如下

无需指定要插入数据的列名,只需提供被插入的值即可:
INSERT INTO table_name VALUES (value1,value2,value3,...);

需要指定列名及被插入的值:

INSERT INTO table_name (column1,column2,column3,...)VALUES (value1,value2,value3,...);

 

2.改

 原表 websites,现在需要把 "菜鸟教程" 的 alexa 排名更新为 5100,country 改为 USA

 使用SQL如下:

 UPDATE Websites SET alexa=\'5100\', country=\'USA\' 

 WHERE name=\'菜鸟教程\';

 

 执行完结果如下:(只对菜鸟教程行做了更新)

 如若未用where条件语句做限制更新,将会更改表中的全部行数据

 执行没有 WHERE 子句的 UPDATE 要慎重,再慎重

小结   UPDATE 语句用于更新表中已存在的记录,语法如下:
UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;

 

3.查 -----常用重点

 1.1 查询表中的所有列

  select * from websites;

 1.2 查询表中指定的列

  select w.name,w.url,w.country from websites w;  (w可用作websites表的别名,在很多张表的时候方便作区分)

 

 

  1.3 查询表中去重后的列-----distinct

   SELECT DISTINCT w.country FROM Websites w;

 1.4 查询表中符合条件的数据行-----where条件查询,文本字段,数值字段,运算符,like模糊查询

  SELECT * FROM Websites WHERE country=\'CN\';  (根据文本字段查询时,文本字段必须带单引号)

 

  SELECT * FROM Websites WHERE id=1; (根据数值字段查询时,请不要带单引号)

常用运算

运算符 描述
= 等于
<>,!= 不等于
< 小于
> 大于
<= 小于等于
>= 大于等于
between 在某个范围内
and 并且
or 或者
like 搜索某种模式
in  指定针对某个列的多个可能值

 

 

 

 

 

 

 

 

 

 

 

 

SELECT * FROM Websites WHERE id>2 and id <6;

 

SELECT * FROM Websites WHERE url like \'%www%\';  查询包含www的所有内容

 

 SELECT * FROM Websites WHERE name  like \'F%\';  模糊查询信息为F开头的数据 

 

SELECT * FROM Websites WHERE COUNTRY  like \'%s_\';  模糊查询在倒数第二位是S的所有数据

 

 小结  模糊匹配经常与通配符一起使用,通配符的表示方法如下

  • % 表示多个字值,_ 下划线表示一个字符;
  •  M% : 为能配符,正则表达式,表示的意思为模糊查询信息为 M 开头的。
  •  %M% : 表示查询包含M的所有内容。
  •  %M_ : 表示查询以M在倒数第二位的所有内容。

 1.5 查询符合表中数据并排序-----order by

   SELECT * FROM Websites ORDER BY alexa;    查询根据alexa排名的该表数据,默认升序排列ASC

 SELECT * FROM Websites ORDER BY alexa desc;   根据alexa排名的降序desc,查询该表数据

 

 SELECT * FROM Websites ORDER BY country,alexa;

 ORDER BY 多列的时候,先按照第一个country排序,在按照第二个alexa排序

 先将country值这一列排序,同为CN的排前面,同属USA的排后面;

 然后在同属CN的这些多行数据中,再根据alexa值的大小排列

 

 

1.6 查询多表-----左连接(最常用),右连接,内连接,全连接

在下章节详细记录

以上是关于ORACLE数据库的SQL基本操作的主要内容,如果未能解决你的问题,请参考以下文章

如何查询oracle数据库的操作记录

oracle 游标操作 怎么判断SQL语句是不是查出数据

sql2008如何连接操作oracle

Oracle数据类型,DDLDMLDCLTCL语言,SQL操作符,SQL函数

oracle数据库建立临时表,sql语句

Oracle数据库SQL优化