一、SQL语句概述
(1)SQL全程是“结构化查询语言(Structured Query Language)”。
SQL是大多数主流数据库系统採用的标准查询语言。
(2)SQL语句的优势:语言结构简单、功能强大、简单易学。
(3)在进行SQL开发是为了更easy的訪问关系数据库,所以SQL可以运行以下几种操作:
①从数据库中查询数据
②向数据库中插入数据
③从数据库中删除数据
④创建和操作数据库对象(如用户、索引、触发器等)
⑤控制对数据库的訪问
⑥更新数据
(4)注意:SQL不是程序设计语言。
它仅仅是提供输入、检索、更改、删除和显示存储在数据库中的数据的语句。
(5)假设以后在使用SQL语句出现错误信息,能够进入http://ora-code.com站点查询信息。就是假设报错信息ORA-XXXXXX。当中XXXXXX是一串数字。可能三位可能五位,所以一旦出现这样的错误信息。能够登录上面站点查询。
二、SQL分类(重点)
(1)数据定义语言(DDL)。如:create,drop,rename…(一旦运行成功,基本不可能恢复原样,没有回旋余地,比方现有A表。将其改名,假设运行成功,无法改变。无法恢复原样)
(2)数据操作语言(DML),如:insert,update,delete…(数据能够回滚)
比方如今登录数据库用户是sys,用例如以下命令查询t表,其内没有数据信息,例如以下图:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >
如今给t表加入数据:
然后查询t表。发现里面有刚才加入的数据:
如今又一次开一个cmd窗体,用新用户lisi登录。查询t表,发现其内没有刚才加入的数据,例如以下图:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >
在原sys登录的cmd窗体内继续写commit命令,例如以下图:
然后再去lisi登录的cmd窗体查询t表,发现有新加入的数据。例如以下图:
【总结】假设用DML操作数据后。必须commit,才干保证真正存到数据库内。
(3)数据控制语言(DCL),如:grant,Revoke…
(4)查询语言,如:select…
(5)事务控制语言(Transaction Control,TC)。如:commit,rollback,savepoint…
三、SQL*PLUS概述
1.SQL*PLUS定义,它是一个由ORACLE开发的、能够运行SQL语句的环境,它也是提供了一种连接数据库的直接运行方式。
2.SQL*PLUS特征
它是一个client应用工具。如命令行SQL*PLUS、Oracle中的SQL*PLUS
或iSQL*PLUS他们都能够与数据库管理系统直接通信。
3.假设出现以下界面,就是SQL*PLUS环境。例如以下图:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >
四、显示表结构语法格式:desc表名
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >
五、查看缓存中SQL语句的语法格式:l(或者list)
比如,假设先输入select*fromall_users;后回车。会看到全部用户,然后这条命令被存入SQL*PLUS缓存,假设这时候输入l,会出现上一条命令信息,例如以下图:
【注意】将来SQL语句会写非常长。所以须要换行写,例如以下图:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >
方法是输入完第一行后回车,接着输入第二行,假设输入分号则表示结束,这时候若用l查询上一条语句,也可查询到,例如以下图:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >
图中*表示定位在当前行。
六、将缓存中的SQL语句又一次执行一次,格式为:/(或者r)
这事实上是一个快捷操作。
假设写/后回车。则直接执行缓存中的SQL语句。假设写r回车。则先列出缓存中的SQL语句再执行该语句。
七、n命令的使用
假设写的SQL语句出错,能够是使用“n”。这个“n”的意思是设置sql*plus中当前行,“n”就是一个详细的值(如:1,2,3…)。
语法格式:n
比如。写个1回车。则定位到缓存SQL命令中的第1行,写个2回车。则定位到缓存SQL中的第2行
八、删除命令
假设要删除某行。能够使用del命令。
语法格式del n
输入del 2后将缓存中第2行代码删除
九、加入命令
假设如今某一行后面加入一些sql语句,能够使用a(append)。
语法格式:a
比如:先用list查看缓存区命令,然后用a加入命令
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >
发现两个命令靠一起了,即student和where连一起了。所以在使用a命令往缓存区加入命令时候敲两个回车,当中第一个回车是a命令必须带的回车,第二个回车是作为新代码的开头被加入到缓存区,例如以下图:
问:假设缓存区有3行SQL命令,须要在第二行加入命令。怎样操作?
答:先list命令将缓存区命令列举出来,然后用n命令,即输入2定位到第2行,然后用a命令在该行后面加入新命令。然后再用list查看一下新命令,最后执行。全步骤例如以下图:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >
十、改动命令
假设要改动sql缓存中的语句。能够使用c(change)命令。
语法格式:c /被改动内容/新内容
(c后面有两个空格)
比如。可用c命令做到部分删除的效果。例如以下图:
先list出缓存区全部命令,然后用n命令定位到第2行,然后用c命令将’%s%’之后命令删除,仅仅要c /or 1=1/就可以,也就是将须要删除的部分替换为空白。注意c后面两个回车。