存储过程
以前做《机房收费系统》时,和数据库连接的T—SQL程序都保存在本地,通过一段时间对数据库的学习后了解到数据库中的存储过程也可以完成相同的操作,且其创建的T—SQL程序保存在SQL Server中。它在服务器端对数据库中的数据进行处理,并将结果返回到客户端。
以前做《机房收费系统》时,和数据库连接的T—SQL程序都保存在本地,通过一段时间对数据库的学习后了解到数据库中的存储过程也可以完成相同的操作,且其创建的T—SQL程序保存在SQL Server中。它在服务器端对数据库中的数据进行处理,并将结果返回到客户端。这样就避免了从客户端多次连接并访问数据库的操作,从而提高客户端的工作效率。
1.存储过程的使用
存储过程是集中存储在SQLServer中的SQL语句和流程控制语句的预编译集合,用以实现某种任务(增删改查等)。任何一组Transact——SQL语句构成的代码块,都可以作为存储过程保存起来。
1)创建:
Create procedure存储过程名[;编号]
[{@参数数据类型}[varying][=默认值][output]][,…n]
With
{recompile|encryption|recompile,encryption}]
As
SQL语句[…n]
参数说明:
存储过程名对于数据库及其所有者必须唯一。创建局部临时存储过程时,可在存储过程名前加一个#号,创建全局临时存储过程则可加两个#,用以简单区分。
编号:可选整数,用来对同名的存储过程分组,以便用一条drop procedure语句即可将同组的存储过程一起删除
@参数:过程中的参数,每个过程的参数仅用于该过程本身。默认情况下,参数只能代替常量。
output:表明参数时返回值。使用output参数可将信息返回给调用过程。
recompile:表明不保存该存储过程的执行计划,该存储过程将在运行时重新编译。
encryption:对存储过程进行加密,即不能修改该存储过程中的SQL语句。
2)执行
使用excute语句执行存储过程,语法格式为:
[[exec[ute]]
{[@返回状态=]{存储过程名|@存储过程名变量}}
[[@参数名称=]{值|@变量[output]|[default]}]
[,…n]
[With recompile]
(Ps:SQL中的EXEC命令有两个用法:执行一个存储过程,或者执行一个动态批次。批次是一个内容为SQL语句的字符串)
3)查看和修改存储过程
比较简单一点的就是在企业管理器中对存储过程右击进行相应操作,再者就是用alter procedure语句修改和sp_rename进行重命名,删除时用dropprocedure语句即可
2.优缺点
在本文的开头已经提到存储过程的功能是可以由其它程序替代的,那么一个数据库是否有必要设计存储过程呢?
1)优点
a.安全性:可以防止SQL注入式攻击,可设定只有某些用户具有对存储过程的使用权
b.提高性能:存储过程只在创建时进行编译,一般SQL语句每执行一次就编译一次,所以存储过程允许程序更快地执行
c.减少网络流量:存储过程的代码直接存储在数据库中,可以减少SQL语句从客户端到服务器端的传输量
d.存储过程可以减少客户端代码的重复,且其可重复使用,从而减少数据库开发人员的工作量
2)缺点
a.移植问题:由于存储过程将应用程序绑定到了SQL Server,因此使用存储过程封装的业务逻辑将限制应用程序的可移植性。
b.重新编译问题:后端代码是运行前编译的,如果带有引用关系的对象发生改变,受影响的存储过程需要重新编译。
3.实例
以机房收费系统的数据库为例,在数据库表中查找指定的卡号并为该卡的金额增加10元。创建存储过程
Create procedure addCash_proc --创建一个存储过程,名为addCash_proc @CardNo integer --声明一个参数 with encryption --对存储过程进行加密 as begin --查找到相应卡号的金额并加上10 update Student_Info set cash=cash+10 where CardNo =@CardNo end
执行语句如下
Exec addCash_proc @CardNo='2'
程序执行后卡号为2的金额增加10元。
小结:
存储过程非常便捷,一般熟悉了SQL语句就可以很容易的掌握存储过程的使用,但是如果大量使用可能会给系统维护带来麻烦。在实际应用中,有的人偏好于使用存储过程有的人则尽量避免,在此要考虑好是让数据库服务器负担更多的运算量还是交给客户端,权衡存储过程带来的利与弊再酌情使用。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











iPhone의 기본 지도는 Apple의 독점 위치 정보 제공업체인 지도입니다. 지도가 점점 좋아지고 있지만 미국 이외의 지역에서는 잘 작동하지 않습니다. Google 지도와 비교하면 아무것도 제공할 수 없습니다. 이 기사에서는 Google 지도를 사용하여 iPhone의 기본 지도로 만드는 실행 가능한 단계에 대해 설명합니다. iPhone에서 Google 지도를 기본 지도로 설정하는 방법 Google 지도를 휴대전화의 기본 지도 앱으로 설정하는 것은 생각보다 쉽습니다. 아래 단계를 따르십시오. – 전제 조건 단계 – 휴대폰에 Gmail이 설치되어 있어야 합니다. 1단계 – AppStore를 엽니다. 2단계 – “Gmail”을 검색하세요. 3단계 - Gmail 앱 옆을 클릭하세요.

HQL과 SQL은 Hibernate 프레임워크에서 비교됩니다. HQL(1. 객체 지향 구문, 2. 데이터베이스 독립적 쿼리, 3. 유형 안전성), SQL은 데이터베이스를 직접 운영합니다(1. 데이터베이스 독립적 표준, 2. 복잡한 실행 파일) 쿼리 및 데이터 조작).

휴대폰에 시계 앱이 없나요? 날짜와 시간은 iPhone의 상태 표시줄에 계속 표시됩니다. 그러나 시계 앱이 없으면 세계 시계, 스톱워치, 알람 시계 및 기타 여러 기능을 사용할 수 없습니다. 따라서 누락된 시계 앱을 수정하는 것이 해야 할 일 목록의 맨 위에 있어야 합니다. 이러한 솔루션은 이 문제를 해결하는 데 도움이 될 수 있습니다. 수정 1 - 시계 앱 배치 실수로 홈 화면에서 시계 앱을 제거한 경우 시계 앱을 다시 제자리에 배치할 수 있습니다. 1단계 – iPhone을 잠금 해제하고 앱 라이브러리 페이지에 도달할 때까지 왼쪽으로 스와이프합니다. 2단계 – 다음으로 검색창에 “시계”를 검색하세요. 3단계 – 검색 결과 아래에 “시계”가 표시되면 길게 누르고

앱을 사용하려고 할 때 "카메라 및 마이크에 대한 접근을 허용할 수 없습니다"라는 메시지가 표시됩니까? 일반적으로 필요에 따라 특정 사람에게 카메라 및 마이크 권한을 부여합니다. 단, 권한을 거부할 경우 카메라와 마이크가 작동하지 않으며 대신 이런 오류 메시지가 표시됩니다. 이 문제를 해결하는 것은 매우 기본적이며 1~2분 안에 완료할 수 있습니다. 수정 1 – 카메라, 마이크 권한 제공 설정에서 직접 필요한 카메라 및 마이크 권한을 제공할 수 있습니다. 1단계 - 설정 탭으로 이동합니다. 2단계 – 개인 정보 보호 및 보안 패널을 엽니다. 3단계 - 거기에서 "카메라" 권한을 켭니다. 4단계 - 내부에서 휴대폰 카메라에 대한 권한을 요청한 앱 목록을 찾을 수 있습니다. 5단계 - 지정된 앱의 "카메라"를 엽니다.

Hibernate 다형성 매핑은 상속된 클래스를 데이터베이스에 매핑할 수 있으며 다음 매핑 유형을 제공합니다. Join-subclass: 상위 클래스의 모든 열을 포함하여 하위 클래스에 대한 별도의 테이블을 생성합니다. 클래스별 테이블: 하위 클래스별 열만 포함하는 하위 클래스에 대한 별도의 테이블을 만듭니다. Union-subclass: Joined-subclass와 유사하지만 상위 클래스 테이블이 모든 하위 클래스 열을 통합합니다.

Apple의 최신 iOS18, iPadOS18 및 macOS Sequoia 시스템 릴리스에는 사진 애플리케이션에 중요한 기능이 추가되었습니다. 이 기능은 사용자가 다양한 이유로 손실되거나 손상된 사진과 비디오를 쉽게 복구할 수 있도록 설계되었습니다. 새로운 기능에는 사진 앱의 도구 섹션에 '복구됨'이라는 앨범이 도입되었습니다. 이 앨범은 사용자가 기기에 사진 라이브러리에 포함되지 않은 사진이나 비디오를 가지고 있을 때 자동으로 나타납니다. "복구된" 앨범의 출현은 데이터베이스 손상으로 인해 손실된 사진과 비디오, 사진 라이브러리에 올바르게 저장되지 않은 카메라 응용 프로그램 또는 사진 라이브러리를 관리하는 타사 응용 프로그램에 대한 솔루션을 제공합니다. 사용자는 몇 가지 간단한 단계만 거치면 됩니다.

PHP에서 데이터베이스 연결 오류를 처리하려면 다음 단계를 사용할 수 있습니다. mysqli_connect_errno()를 사용하여 오류 코드를 얻습니다. 오류 메시지를 얻으려면 mysqli_connect_error()를 사용하십시오. 이러한 오류 메시지를 캡처하고 기록하면 데이터베이스 연결 문제를 쉽게 식별하고 해결할 수 있어 애플리케이션이 원활하게 실행될 수 있습니다.

MySQLi를 사용하여 PHP에서 데이터베이스 연결을 설정하는 방법: MySQLi 확장 포함(require_once) 연결 함수 생성(functionconnect_to_db) 연결 함수 호출($conn=connect_to_db()) 쿼리 실행($result=$conn->query()) 닫기 연결( $conn->close())
