`

中级SQL与数据库的连接方式

阅读更多

                                                                        中级SQL与数据库的连接方式

1.视图

       出于安全考虑我们有时需要向用户隐藏特定的数据,或在逻辑层上让用户跟直观的看到想要的数据我们可以使用视图。它是一个逻辑商店概念,能对数据进行更好的封装。

        视图可以看作是逻辑层上的表,它在需要的时候才被创建(将数据从关系中查询出来)。它可以在某种程度上替代关系,sql同样可以基于视图使用。

        视图的创建:create view 视图名 as select语句             这就是把查询的结果创建层一个视图(逻辑上的表)

        如果视图会随关系中元组的改变而导致select结果改变,从而引起视图的改变那么这个视图就是物化的,它的结果会存放在数据库中。保持物化视图一直在最新状态的过程称为物化视图维护或简称视图维护。由于视图是逻辑层上的,我们一般不允许对视图进行修改(像插入操作可能会违反非空约束)。

视图、关系、表的区别:关系是一种规范化了的表(关系中每一个属性值都是不可分解的。关系中不允许出现相同的元组(没有重复元组)。由于关系是一个集合,因此不考虑元组间的顺序,即没有行序。元组中,属性在理论上也是无序的,但在使用时按习惯考虑列的顺序。),视图是在关系上建立的逻辑层上的表。

2.索引

        当需要查询打来那个的记录时,我们可以在关系的属性上创建索引,它是一种数据结构能够方便我们的查询。如果查询能够从索引中获益,那么sql查询会自动使用索引。

索引分为聚集索引(主索引)和非聚集性索引(辅助索引)

创建索引:create index 索引名 on 关系名(属性);


3.完整性约束约束(防止破坏数据的一致性)

nou null:非空约束      unique:候选码约束(即没有两个元组能在该约束中的元组取值完全相同)  check(P):子句(条件)约束   参照完整性约束:foreign/primary key

4.授权

         给用户对数据库操作的权限(有增删改查四中权限)

         授权:grant <权限> on 关系名/视图名 to 用户        收回权限:revoke <权限> on 关系名/视图名 from 用户

5.函数和过程

          函数和过程允许“业务逻辑”作为存储过程记录在数据库中,并在数据库内执行,尽管这样的业务逻辑能够写成程序设计语言过程并完全存储在数据库以外。但把它们定义成数据库中的存储过程有一下优点:允许多个应用访问这些过程,当业务逻辑改变时只需修改一次就行,代码可以调用存储过程而不是直接更新数据库(封装)。

         函数有返回值,过程没有返回值。创建语法:created function/procedure name(参数)

6.触发器(trigger)

         当对数据库作修改时,它自动别执行。设置触发器机制,必须满足两个要求:

          指明什么条件下执行触发器。分为引起触发器被检索的事件,和一个触发器执行要满足的条件

          指明触发器执行是的动作

           触发器通常不能执行数据库以外的更新,我们必须通过关系内部记录的更改,来引起系统外部进程(周期性扫描该记录)对外部数据进行更新。

         创建一个触发器:

                creat trigger 触发器名 before update/insert/delete of 属性 on 关系名

                         referencing old row as orow,new row as nrow

                          for each row

                          when

                                 //引发触发器的条件                           begin atomic

                                  //触发器的操作

                          end;

        触发器默认在创建时是有效的,但可以通过使用 alter trigger trigger_name disable设为无效。而且触发器的错误可能会引起另一个触发器,甚至是一个无线的触发器链,所以当有其他候选方法时我们应尽量避免使用触发器

 

 

7.事物

         事物是访问并可能更新数据项的一个程序执行单元。通常由高级数据操纵语言(SQL)或编程语言(C++,java)通过JDBC或ODBC嵌入式访问书写的用户程序的执行引起的。它由查询或更新语句的序列组成,sql标准规定当一条sql语句被执行时,就隐式的开始了一个事物。提交当前事物(commit)和回滚当前事物(rollback)将结束一个事物

事物的性质:

原子性:事物的所有操作在数据库中要么全部正确反映出来,要么完全不反映;

一致性:在没有其他事物并发执行的情况下保持数据库的一致性(数据不能凭空增加或删除);

隔离性:某一时刻只有一个事物在执行。尽管事物可以并发但只是在一段时间内看起来有多个事物同时执行,它们有先后顺序。

持久性:一个事物成功完成后,它对数据库的改变是持久的,即使出现系统故障。


9、通过JDBC连接数据库的方式
  
JDBC-ODBC bridge driver方式可以访问一个ODBC数据源,但每台客户端计算机需要安装并配置ODBC驱动程序。
   Native-API partly Java driver
方式将JDBC调用转换成特定数据库API的调用,该方式要求每台客户端计算机安装特定数据库的驱动程序。
   JDBC-Net pure Java driver
方式将JDBC调用转换为独立于数据库的中间件厂商的专有数据库访问协议,然后由其负责与数据库的连接活动。
   Native-protocol pure Java driver
方式将JDBC调用转换为数据库直接使用的标准网络协议(例如HTTP等)。这种方式不需要安装客户端软件,客户端计算机可以直接与数据库服务器进行数据交流活动。 

分享到:
评论

相关推荐

    怎么使用C语言连接SQL数据库

    怎么使用C语言连接SQL数据库,适合初级学习者和中级学习者。

    SQL进阶教程 随书sql代码

    本书是《SQL基础教程》作者MICK为志在向中级进阶的数据库工程师编写的一本SQL技能提升指南。全书可分为两部分,第一部分介绍了SQL语言不同寻常的使用技巧,带领读者从SQL常见技术,比如CASE表达式、自连接、HAVING...

    Mysql数据库之常用sql语句进阶与总结

    本文实例讲述了Mysql数据库之常用sql语句。分享给大家供大家参考,具体如下: 前面讲述了Mysql sql基本语句。这里继续总结一下SQL语句的进阶内容。 SQL语句进阶 1.查询字段: ————查询所有字段 select * from...

    《JDBC API数据库编程实材作教材》[PDF]

    这是一本关于JDBC API数据库编程的书,主要介绍Java程序设计基础、 SQL基础知识、JDBC(Java数据库连接)应用、接口和类,以及如何在JSP和Servlet中使用JDBC,并以完整的实例程序说明 JDBC API(应用程序编程接口)...

    【3.16数据库作业7】SQL练习4 – SELECT(连接查询、嵌套查询)

    ①:连接查询—-中级 1.等值与非等值连接查询 2.自身连接 3.外连接 4.多表连接 ②:嵌套查询—-高级 相关子查询 不相关子查询 1.带有IN谓词的子查询 2.带有比较运算符的子查询 3.带有ANY(SOME)或ALL谓词的子查询 4...

    Java学习指南(8) MySQL数据库与JDBC框架

    一、课程简介『Java学习指南系列』的第8篇教程 ,介绍MySQL数据库的安装使用,常见SQL语句,以及使用JDBC进行数据库开发的技术。 二、主要内容? * MySQL的安装和使用 * 常用SQL语句,增删改查操作 * 高级SQL查询,多...

    数据库系统概念复习总结.pdf

    3.2.2 基本模式定义 3.3 sql查询的基本结构 3.3.1 单关系查询 3.3.2 多关系查询 3.3.3 ⾃然连接 3.4 附加基本运算 3.5 集合运算 3.6 空值 3.7 聚集函数 3.8 嵌套⼦查询, 第四章、中级SQL 4.1 连接表达式 4.2 视图 ...

    基于Java+Swing+MySQL旅游信息管理系统(源代码)

    数据库连接:学习如何使用Java与MySQL数据库建立连接,执行SQL查询和更新操作。 阅读建议: 先学习Java编程基础,包括语法、面向对象编程和异常处理 掌握Swing用户界面设计,了解如何创建GUI元素 学习MySQL数据库...

    DBA需要的技能

    java(掌握)包括jdbc thin,oci等4类不同的连接方式,性能设置,一些中间件的知识 了解一些就够了 5. oracle performance tuning(范围很广) ocp performance book 下tom的书《Wrox - Expert one-on-one ...

    新编ASP.NET从入门到精通(1DVD)(双色印刷)源码

    第3篇为数据库应用篇,主要介绍数据库管理系统SQL Server 2005、SQL语言速成、数据库网站实例、使用网站后台数据库、常用数据库控件详解、常用信息处理技术及数据库连接管理;第4篇为精通篇,主要介绍ASP.NET 网站...

    2个G的java实例源码以及开源项目源码

    2个G的java实例源码以及开源项目源码,源码难易程度分为初级、中级、高级等,详情看源码列表,需要的... zip Java 数据库连接池 BoneCPjar Java 注册表操作类 jared . tgz Java 转 C ++代码工具J2C. jar OAuth 实现...

    Oracle DBA突击帮你赢得一份DBA职位(完全高清版)1

    第5章至第9章是中级篇,专门讨论性能调整,包括性能优化原理、Oracle性能调整发展历程、AWR、ASH、ADDM、Auto SQL Tunning等最新的助手工具,并通过大量实例展示技术的综合应用。第10章至第13章是高级篇,主要面向...

    点点餐饮网上订餐网站源码

    3、数据库连接字符串在webconfig配置文件中修改。 六、郑重声明 1、本程序主要用于学习交流之用,请在合法范围之内合理使用。 2、如需用于商业途径,请向版权所有开发商申请合法使用授权。 3、官方点点餐饮:...

    仿点点餐饮网上订餐网站源码_V1.2

    3、数据库连接字符串在webconfig配置文件中修改。 六、郑重声明 1、本程序主要用于学习交流之用,请在合法范围之内合理使用。 2、如需用于商业途径,请向版权所有开发商申请合法使用授权。 3、官方点点餐饮:...

    PHP实战:对象,设计,敏捷(PHP in Action :Objects, Design, Agility )

    19 数据库的连接,抽象,和配置 (Database connection, abstraction, and configuration) Part 4: 数据库和基础建设 (Databases and infrastructure) 20 对象和SQL (Objects and SQL) 21 数据类的设计 (Data ...

    亮剑.NET深入体验与实战精要3

    15.5.2 及时地关闭数据库连接 563 15.5.3 跟踪监视SQL Server当前链接池状态 564 15.5.4 善用数据库的存储过程 567 15.5.5 SqlDataRead和Dataset的选择 567 15.5.6 ExecuteNonQuery和 ExecuteScalar的选择 568 15.5....

    亮剑.NET深入体验与实战精要2

    15.5.2 及时地关闭数据库连接 563 15.5.3 跟踪监视SQL Server当前链接池状态 564 15.5.4 善用数据库的存储过程 567 15.5.5 SqlDataRead和Dataset的选择 567 15.5.6 ExecuteNonQuery和 ExecuteScalar的选择 568 15.5....

    Class-Query:简易班级查询

    该脚本进一步使用mysqli方法连接到数据库,下面有一些用法示例。 主要特征 使用Mysqli(更高的安全性) 分页记录。 没有SQL注入。 函数和类都有很好的记录。 使用类查询的查询既简单又实用。 可以使用$ q&gt; ...

    java源码包---java 源码 大量 实例

     Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。  部分源代码摘录:  ftpClient = new FtpClient(); //实例化FtpClient对象  String serverAddr=jtfServer.getText(); //得到服务器地址  ...

    JAVA上百实例源码以及开源项目源代码

     Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。  部分源代码摘录:  ftpClient = new FtpClient(); //实例化FtpClient对象  String serverAddr=jtfServer.getText(); //得到服务器地址  ...

Global site tag (gtag.js) - Google Analytics