SQL 事务及实例演示
就是事务执行后,保证数据库的所有数据都从一个状态到另一个状态。用上面的例子,可以这样理解,你上半身进了火车、坐好了;你的
简介
事务,英文名称是transaction。是在对数据库进行管理操作过程中一个逻辑单位,由有限的操作序列构成。其实这个概念很好懂,简单理解就是:事务就是在使用数据库中的一个操作,由一些操作放到一起构成一个完整的事务。例如:坐火车。假如坐火车只有两个动作,买票,上车;这样的话坐火车就需要两个操作来完成,买票、上车,现在将买票、上车都定义到这个坐火车的操作里面。这样的话就方便了,想坐火车就直接调用坐火车操作就完成坐火车的操作了。这里的坐火车就是一个事务,这里还有一种情况就是买票成功了,但是没有赶上火车,这时候我就需要把票给退了,退票这个操作就称为回滚。
特性
那到底什么才是数据库事务呢?就产生了数据库事务的四个特性,,通过这四个特性我们更好的理解事务,也能够反过来来辨别什么样的操作是事务。
数据库事务的特性简单来说就是ACID。
A(Atomic)翻译为中文就是原子性
原子就是不可分割(在最初的时期是这么理解的)。所以可以理解到事务就是一个整体,一旦执行就是执行整个事务,要么就不执行。
C(Consistency)一致性
就是事务执行后,保证数据库的所有数据都从一个状态到另一个状态。用上面的例子,可以这样理解,你上半身进了火车、坐好了;你的脚也要上火车、放好了(有点慎得慌)。但是是这个道理。
I(Isolation)隔离行
就是事务之间在执行的时候互补干扰,这里会提到一个并发控制的概念。什么是并发控制呢?并发控制就是针对并发操作对数据操作异常的控制。举个例子,又是买火车票;小林和小李都去网上买票,还剩5张,他俩11:11同时去买同一张,这样两个事务同时访问这个火车票,同时将剩余张改为4.这时候实际上卖了2张,实际上剩了3张,而数据库中为4张,这就造成了数据的异常。怎么处理呢?有一个办法,就是当你处理这个对象的时候,将这个对象锁定(lock),当完成事务后解锁(unlock)。只有当对象的状态为unlock的状态时,才能够对这个对象进行访问。说了多了啊,简单扩展一下。嘿嘿
D(Durability),持久性
这个就更容易理解了。简单理解就是你的对数据库的操作一定是可以永久存在数据中的。
通过上述的讲解,我们简单了解了事务和事务的回滚以及事务的特性。下面我们通过另一个简单的小例子来从代码层面上感受一下事务,顺便熟悉泛型的使用。
环境:vs 2010 sql 2008
项目测试:通过事务来更新、添加数据
创建数据库代码
create database login
use login
create table login
(
username varchar(20),
userpwd varchar(20),
userlevel varchar(20),
)
界面
超级简单的界面,为了整体性,还是上传下,嘿嘿
客户端代码
private void btnExcuteSQLs_Click(object sender, EventArgs e)
{
List
string strone = "insert into login values('aaa','aaa','aaa')";
string strtwo = "update login set userlevel ='12' where username='cfl' ";
strsql.Add(strone);
strsql.Add(strtwo );
try
{
ExcuteSQLs(strsql);
}
catch (Exception ee )
{
MessageBox.Show(ee.Message);
throw new Exception(ee.Message );
//MessageBox.Show(ee.Message );
}
}
public void ExcuteSQLs(List
{
//建立连接数据库
SqlConnection conn = new SqlConnection("server=“ip”;database=login;uid=sa;pwd=123456;");
//打开数据库
conn.Open();
//建立执行数据操作命令对象
SqlCommand cmd = new SqlCommand();
//将数据库连接对象赋值给命令对象
cmd.Connection = conn;
//执行事务
SqlTransaction tx = conn.BeginTransaction();
//将事务赋值给命令对象
cmd.Transaction = tx;
try
{
//通过for循环遍历在泛型中的sql语句
for (int i = 0; i {
string strsql = SQLStringList[i].ToString();
//当字符串不为空,则执行
if (strsql.Length >1)
{
//传入将要执行的sql语句
cmd.CommandText = strsql;
//执行无参数化查询
cmd.ExecuteNonQuery();
}
}
//事务提交
tx.Commit();
}
catch (System .Data.SqlClient .SqlException e)
{
throw new Exception (e.Message );
}
}

핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

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

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

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

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

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

MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템으로, 주로 데이터를 신속하고 안정적으로 저장하고 검색하는 데 사용됩니다. 작업 원칙에는 클라이언트 요청, 쿼리 해상도, 쿼리 실행 및 반환 결과가 포함됩니다. 사용의 예로는 테이블 작성, 데이터 삽입 및 쿼리 및 조인 작업과 같은 고급 기능이 포함됩니다. 일반적인 오류에는 SQL 구문, 데이터 유형 및 권한이 포함되며 최적화 제안에는 인덱스 사용, 최적화 된 쿼리 및 테이블 분할이 포함됩니다.

Oracle에서 FOR 루프 루프는 커서를 동적으로 생성 할 수 있습니다. 단계는 다음과 같습니다. 1. 커서 유형을 정의합니다. 2. 루프를 만듭니다. 3. 커서를 동적으로 만듭니다. 4. 커서를 실행하십시오. 5. 커서를 닫습니다. 예 : 커서는 상위 10 명의 직원의 이름과 급여를 표시하기 위해주기별로 만들 수 있습니다.

MySQL은 성능, 신뢰성, 사용 편의성 및 커뮤니티 지원을 위해 선택됩니다. 1.MYSQL은 효율적인 데이터 저장 및 검색 기능을 제공하여 여러 데이터 유형 및 고급 쿼리 작업을 지원합니다. 2. 고객-서버 아키텍처 및 다중 스토리지 엔진을 채택하여 트랜잭션 및 쿼리 최적화를 지원합니다. 3. 사용하기 쉽고 다양한 운영 체제 및 프로그래밍 언어를 지원합니다. 4. 강력한 지역 사회 지원을 받고 풍부한 자원과 솔루션을 제공합니다.

Oracle Log 파일이 가득 차면 다음 솔루션을 채택 할 수 있습니다. 1) 오래된 로그 파일 청소; 2) 로그 파일 크기를 늘리십시오. 3) 로그 파일 그룹을 늘리십시오. 4) 자동 로그 관리를 설정합니다. 5) 데이터베이스를 다시 이용하십시오. 솔루션을 구현하기 전에 데이터 손실을 방지하기 위해 데이터베이스를 백업하는 것이 좋습니다.

Oracle View는 Expitility : Oracle 데이터베이스에 로그인하여 내보낼 수 있습니다. 뷰 이름 및 내보내기 디렉토리를 지정하여 EXP 유틸리티를 시작하십시오. 대상 모드, 파일 형식 및 테이블 스페이스를 포함한 내보내기 매개 변수를 입력하십시오. 내보내기를 시작하십시오. IMPDP 유틸리티를 사용하여 내보내기를 확인하십시오.

Centos 시스템에서 Hadoop 분산 파일 시스템 (HDF)을 구축하려면 여러 단계가 필요합니다. 이 기사는 간단한 구성 안내서를 제공합니다. 1. 초기 단계에서 JDK를 설치할 준비 : 모든 노드에 JavadevelopmentKit (JDK)을 설치하면 버전이 Hadoop과 호환되어야합니다. 설치 패키지는 Oracle 공식 웹 사이트에서 다운로드 할 수 있습니다. 환경 변수 구성 : /etc /프로파일 파일 편집, Java 및 Hadoop 설정 설정 시스템에서 JDK 및 Hadoop의 설치 경로를 찾을 수 있습니다. 2. 보안 구성 : SSH 비밀번호가없는 로그인 SSH 키 : 각 노드에서 ssh-keygen 명령을 사용하십시오.

Oracle은 데이터베이스 회사 일뿐 만 아니라 클라우드 컴퓨팅 및 ERP 시스템의 리더이기도합니다. 1. Oracle은 데이터베이스에서 클라우드 서비스 및 ERP 시스템에 이르기까지 포괄적 인 솔루션을 제공합니다. 2. OracleCloud는 AWS와 Azure에 도전하여 IAA, PAAS 및 SAAS 서비스를 제공합니다. 3. E-BusinessSuite 및 FusionApplications와 같은 Oracle의 ERP 시스템은 기업이 운영을 최적화하는 데 도움이됩니다.

MySQL은 웹 응용 프로그램 및 컨텐츠 관리 시스템에 적합하며 오픈 소스, 고성능 및 사용 편의성에 인기가 있습니다. 1) PostgreSQL과 비교하여 MySQL은 간단한 쿼리 및 높은 동시 읽기 작업에서 더 잘 수행합니다. 2) Oracle과 비교할 때 MySQL은 오픈 소스와 저렴한 비용으로 인해 중소 기업에서 더 인기가 있습니다. 3) Microsoft SQL Server와 비교하여 MySQL은 크로스 플랫폼 응용 프로그램에 더 적합합니다. 4) MongoDB와 달리 MySQL은 구조화 된 데이터 및 트랜잭션 처리에 더 적합합니다.
