- 尽量说的通俗易懂,尽量表述的细致全面
Oracle是关系型数据库
-
结构化查询语言
,可以让我们访问和处理数据库。 -
数据库是载体,最终都要回归于业务和具体需求,在21世纪,数据是有巨大价值的。
-
你追求的不仅仅是技术,更是梦想,世界因你在改变!
-
TABLE:SD_GSS
, 数据如下YEAR NO 1992 2 1992 3 1992 4 2017 5 2017 6 2017 7 -
SELECT TOP
返回结果集指定行数
SELECT YEAR,NO
FROM SD_GSS
WHERE
YEAR=1992
AND
ROWNUM <3;
-
上面解读:这是一条简单的查询语句,年份为1992共计有3条,后边又加上了返回行数为3的限制
-
结果如下
YEAR NO 1992 2 1992 3 -
SQL LIKE 操作符
返回结果集制定行数 -
LIKE
下的条件可以搜索制定模式数据,也就是模糊查询,大体有三种写法
SELECT YEAR,NO
FROM SD_GSS
WHERE
YEAR LIKE '19%'
SELECT YEAR,NO
FROM SD_GSS
WHERE
YEAR LIKE '92%'
SELECT YEAR,NO
FROM SD_GSS
WHERE
YEAR LIKE '%99%'
-
上面解读:第一条是模糊'1992'尾部字符'92',第二条是模糊'1992'首部字符'19',第二条是模糊'1992'首尾字符这样实际中查询范围更广。
-
工作中编程不建议使用LIKE ,效率低下,浪费系统开销
-
以上三个结果相同,如下
YEAR NO 1992 2 1992 3 1992 4 -
SQL LEFT JOIN,RIGHT JOIN
两个表中有交集,可以用JOIN连在一起 -
UNOIN,UNION ALL
查询数据,组合在一起,多个SELECT
中间用UNION ALL
,最后一个用UNION
,两个SELECT
用UNION
-
需要注意的是,
UNION
在一起的,字段需一致,以下SQL
是不行的
SELECT YEAR,NO
FROM SD_GSS
WHERE
YEAR ='1992'
UNION
SELECT YEAR
FROM SD_GSS
WHERE
YEAR ='2017'
INSERT INTO
简单的就是插入- 设计到深入的还有锁表和性能开销,虽然那大都是DBA的事情,但励志成为技术大牛的你,不能不懂。
INSERT INTO
可以指定字段插入,也可以全表插入
INSERT INTO
SD_GSS(YEAR)
VALUES('1992')
INSERT INTO
SD_GSS
SELECT *FROM
SD_GSS_BAK --此处SD_GSS_BAK为SD_GSS的备份表,结构完全一致
最后一个INSERT INTO
遇错小技巧
- 如果遇到以下报错,英文加上经验,报的是数据库唯一性,栏位肯定上了数据唯一性。
ORA-00001: unique constraint (JOAN.SYS_C0099024) violated
- 这时插入大量数据失败,一先
ROLLBCK
回滚,让插入数据动作还原,以防锁表。 - 然后,可以先从备份表中减去母表中数据。再做插入,用
MINUS
做减法
INSERT INTO SD_GSS (SELECT *FROM SD_GSS_BAK MINUS SELECT *FROM SD_GSS) --实际工作中SQL可能很长很复杂
感激
写的比较简单,一切事物发展都有其底层,打好基础。感谢您能在百忙中阅读我的文稿,如有思想交际,不胜荣幸。推荐两个学习网站。
remark
- 越是抽离出来的技术点,越是受用,实际结合点多。写的不好,还请多包涵,其实,通过一段时间工作,你理解这结构化的查询语言,入门包括深入理解内部机制是很快的。重在查资料和针对性的自我感悟。
关于作者
var runoob = {
nickName : "墨客码",
site : "http://www.cnblogs.com/gss0525/"
desc : "本菜鸟做.net后台开发,热衷分享技术,认为不错的,给个赞,不足还望提出宝贵经验,谢谢"
}