`

中级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语言进行数据库连接与简单查询操作,帮助读者更好地理解这一过程。 #### 一、C语言连接SQL数据库概述 在本节中,我们将探讨如何编写一个简单的C程序来连接到SQL数据库,并执行基本的查询...

    数据库中级SQL Server学习资料

    中级SQL Server的学习通常包括以下关键知识点: 1. **SQL查询语言**:这是SQL Server的核心,包括SELECT语句,用于从表中检索数据;INSERT,UPDATE和DELETE用于插入、修改和删除数据。学习如何使用JOIN操作连接多个...

    完全手册VC# 2005+sql server数据库与网络开发.rar

    《完全手册VC# 2005+sql server数据库与网络开发》是针对中级开发者的一份详尽教程,旨在帮助那些已经具备一定编程基础的人深入理解VC# 2005(Visual C# 2005)和SQL Server数据库在实际网络应用中的综合运用。...

    SQL 连接小工具

    标题“SQL 连接小工具”指的是一个专为简化SQL数据库连接而设计的应用程序,它允许用户无需编写SQL命令即可与数据库进行交互。这个工具可能是为初级或中级数据库管理员以及开发人员设计的,旨在提高工作效率并降低...

    中级-数据库系统工程师.rar

    中级数据库系统工程师这一主题涵盖了广泛的数据管理与存储技术,包括但不限于关系型数据库、SQL语言、数据库设计、数据库性能优化、备份恢复策略以及安全性管理。在这个领域,一个中级数据库系统工程师应具备扎实的...

    易语言API利用sql操作Access数据库源码

    `OpenDatabase`函数用于打开数据库连接,`ExecuteSQL`则用于执行SQL命令,而`CloseDatabase`用于关闭数据库连接。API函数通常需要特定的参数,如数据库路径、SQL语句等。 在描述中提到的“资源作者:@易语言自学网...

    数据库系统教学课件:第7讲-中级SQL.ppt

    【中级SQL】主要涵盖数据库系统中的表连接、视图以及事务管理等核心概念。以下是详细的解释: 1. **表连接**: 表连接是将两个或更多表的数据结合在一起的过程,主要有以下几种方式: - **等值连接/自然连接...

    数据库6版讲稿第四章----中级SQL.ppt

    【数据库6版讲稿第四章——中级SQL】主要讲解了SQL语言中关于连接表达式和视图的概念,以及完整性约束。以下将详细阐述这些知识点。 首先,连接表达式是SQL中用于合并两个或多个关系(表格)的重要工具。连接操作...

    SQL数据库常用语言

    3. 中级SQL: - 聚合函数:COUNT、SUM、AVG、MIN和MAX等聚合函数用于对一组数据进行计算,如统计记录数量、求和、平均值等。 - 分组和排序:GROUP BY和ORDER BY语句分别用于根据一个或多个字段对数据进行分组和...

    网络数据库实验2的sql查询

    这些 SQL 查询涵盖了数据库操作的基本元素,包括数据选择、条件过滤、排序、聚合、连接、子查询等,对于理解 SQL 语言的使用和数据库管理具有重要意义。通过这样的实验,学生能够掌握 SQL 查询的实用技巧,并将其...

    数据库系统教学课件:第7讲中级SQL.pptx

    【中级SQL】主要涵盖以下几个知识点: 1. **表间连接方式**:SQL支持四种基本的连接类型:内连接(INNER JOIN)、左外连接(LEFT JOIN)、右外连接(RIGHT JOIN)和全外连接(FULL OUTER JOIN)。这些连接方法用于...

    sql入门高级,SQL教程,数据库教程

    #### 三、中级SQL ##### 3.1 WHERE子句 - **基本语法**:`SELECT column_name(s) FROM table_name WHERE condition;` - **功能**:用于过滤结果集,只返回满足条件的记录。 - **示例**:`SELECT * FROM Users WHERE...

    SQL数据库语法详细应用

    3. 中级SQL: - 更新数据:`UPDATE`语句用于修改已有记录。 - 删除数据:`DELETE FROM`语句用于移除表中的记录。 - 聚合函数:如COUNT、SUM、AVG、MAX和MIN,用于对一组数据进行计算。 - 分组和排序:`GROUP BY`用于...

    基于C++和数据库SQL server开发的商品销售管理系统(含有源程序)

    6. **连接池管理**:为了提高系统性能,通常会采用数据库连接池技术,预先创建并维护一定数量的数据库连接,避免频繁地创建和销毁连接,从而降低系统开销。 7. **事务处理**:在涉及多个操作的业务逻辑中,如商品...

    中级数据库系统工程师2012上半年下午试题.doc

    综上所述,中级数据库系统工程师的考试内容涵盖数据库设计原理、数据流图分析、SQL语言的使用以及数据库查询优化等方面,要求考生具备扎实的理论基础和实践操作能力。在实际工作中,这些知识将帮助设计和管理高效、...

    SQL进阶教程 随书sql代码

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

    SQL入门与高级使用篇

    中级 SQL 涉及到复杂的查询、连接表、子查询等概念。 2. 高级 SQL 高级 SQL 涉及到索引、视图、存储过程等概念。 SQL best practice 1. 不要在你的站点上试图用 Microsoft Access 代替 Microsoft SQL Server。 ...

    SQL初/中级教程(pdf)

    #### 二、中级SQL **2.1 建立索引** - **2.1.1 聚簇索引和非聚簇索引** - **聚簇索引**:按照索引顺序物理地存储表中的数据。 - **非聚簇索引**:独立于数据行存储的索引。 - **2.1.2 索引属性** - **UNIQUE约束*...

    软考中级-《数据库系统工程师》15-21年真题、考试说明

    《数据库系统工程师》是软考中级的一项重要资格认证,它主要测试考生在数据库设计、管理、优化和应用开发等方面的能力。这个压缩包文件包含了从2015年至2021年的历年真题,这对于备考者来说是极其宝贵的参考资料。...

Global site tag (gtag.js) - Google Analytics