MySQL 강의 3: DDL 데이터 정의문
무료 학습 권장 사항: mysql 비디오 튜토리얼
Article Directory
- 1. DDL 데이터 정의 문
- 2. 데이터 유형
-
- 2.1 정수
- 2.2 십진수
- 2.3 문자 유형
- 2.4 날짜 유형
- 2. 6가지 주요 제약 조건
- 4. ID 열
- 5. 계단식 삭제 및 공백
1. DDL 데이터 정의문
도서관 관리
생성: 데이터베이스 생성 [존재하지 않는 경우] 라이브러리 이름;
수정: 라이브러리 이름을 수정해야 하는 경우 폴더를 직접 수정하세요.
삭제: DROP DATABASE IF EXISTS 라이브러리 이름;
create database [if not exists] 库名;
修改:若需要修改库名,直接修改文件夹
删除:DROP DATABASE IF EXISTS 库名;
表的管理
创建
create table IF NOT EXISTS 表名(
列名 列的类型[长度、约束],
列名 列的类型[长度、约束],
列名 列的类型[长度、约束],
...
)
修改alter table 表名 add|drop|modify|change column 列名 [列类型 约束];
删除drop table 表名;
【库的管理】# 创建库CREATE DATABASE IF NOT EXISTS books;# 修改库的字符集ALTER DATABASE books CHARACTER SET gbk;# 删除库DROP DATABASE IF EXISTS books;【表的管理】# 1.创建表CREATE TABLE IF NOT EXISTS book( id INT, bName VARCHAR(20), authorID INT, publishDate DATETIME);DESC book;CREATE TABLE author( id INT, au_name VARCHAR(20), nation VARCHAR(10));DESC author;# 2.修改表# 修改列名ALTER TABLE book CHANGE COLUMN publishDate pubDate DATETIME;# 修改列的类型或约束ALTER TABLE book MODIFY COLUMN pubdate TIMESTAMP;# 添加新列ALTER TABLE author ADD COLUMN annual DOUBLE; # 添加新列作为第一个字段ALTER TABLE author ADD COLUMN newT1 INT FIRST;# 添加新列在指定的列后ALTER TABLE author ADD COLUMN newT2 INT AFTER newT1;# 删除列ALTER TABLE author DROP COLUMN annual;# 修改表名ALTER TABLE author RENAME TO book_author;# 3.表的删除DROP TABLE IF EXISTS book_author;SHOW TABLES;# 4.表的复制INSERT INTO author VALUES(1,'小樱','日本'),(2,'悟空','中国'),(3,'绿巨人','美国'),(4,'哪吒','中国');# 仅复制表的结构CREATE TABLE author2 LIKE author;# 复制表的结构+数据CREATE TABLE author3 SELECT * FROM author;# 只复制部分数据CREATE TABLE author4 SELECT id,au_name FROM author WHERE nation='中国';# 仅复制某些字段CREATE TABLE author5 SELECT id,au_name FROM author WHERE 1=2;
二、数据类型
2.1 整型
整数类型 | 别名 | 字节 | 无符号范围 | 有符号范围 |
---|---|---|---|---|
Tinint | 微整型 | 1 | 0~255 | -128~127 |
Smallin | 小整型 | 2 | 0~65535 | -32768~32767 |
Mediumint | 中整型 | 3 | 0~1677215 | -8388608~8388607 |
Int或Integer | 整型 | 4 | 0~4294967295 | -2147483648~2147483647 |
Bigint | 大整型 | 8 | 0~9223372036854775807*2+1 | -9223372036854775808~9223372036854775807 |
【整型】# 1.默认为有符号,可以添加unsigned设置为无符号CREATE TABLE IF NOT EXISTS tab_int( t1 INT, # 有符号 t2 INT UNSIGNED, # 无符号 t3 INT ZEROFILL #添加zerofill后自动变更为无符号整型,位数不够0填充.);DESC tab_int;SELECT * FROM tab_int;# 2.如果插入的数值超出了整型的范围,会报out of range异常INSERT INTO tab_int VALUES(2147483648,1);# 3.如果不设置长度,会有默认的长度,位数不够时0填充(前提是字段有ZEROFILL).
2.2 小数
浮点数类型 | 字节 | 范围 |
---|---|---|
float(M,D) | 4 | -2^128 ~ +2^128 |
double(M,D) | 8 | -2^1024 ~ +2^1024 |
定点数类型 |
|
|
DEC(M,D) | M+2 | 最大取值范围与double相同,给定decimal的有效范围由M和D决定 |
注意:
M:整数部位+小数部位的总长度
D:小数部位
D和M都省略时:
1、如果是decimal类型,则M默认为10,D默认为0;
2、如果是floact和double,会根据插入的数值的精确度来决定精度。
3、定点型的精确度较高,如果要求插入数值的精确度较高如货币运算则考虑使用。
2.3 字符型
字符串类型 | M是否可以省略 | 特点 | 空间耗费 | 效率 | 范围 |
---|---|---|---|---|---|
char(M) | M可以省略,默认为1 | 定长 | 比较耗费 | 高 | M为0~255之间的整数 |
varchar(M) | M不可以省略 | 可变长 | 比较节省 | 低 | M为0~65535之间的整数 |
binary
和varbinary
类型,类似于char和varchar,不同的是它们包含二进制字符而不包含非二进制字符,即保存较短的二进制。
Bit(M)类型,字节为1~8,范围为Bit(1)~Bit(8)
。
Enum类型,即枚举类型,要求插入的值必须属于列表中指定的值之一,如果列成员为1~255
,则需要1个字节存储;如果列成员为255~65535
테이블 관리
Creation수정테이블 테이블 이름 변경 add|drop|수정 |열 변경 열 이름 [열 유형 제약 조건];
|
delete테이블 테이블 이름 삭제;
|
---|---|
2.1 정수 유형 | |
정수형 | alias |
부호 없는 범위 | 부호 있는 범위 |
Tinint | |
1 | 0~ 255 |
【日期类型】CREATE TABLE tab_date( t1 DATETIME, # 不受时区影响 t2 TIMESTAMP # 受时区影响);INSERT INTO tab_date VALUES(NOW(),NOW());SET time_zon='+8:00';# 设置时区SHOW VARIABLES LIKE 'time_zone'; #显示当前时区
-2^128 ~ +2^128
🎜🎜🎜🎜 🎜🎜🎜🎜 double(M,D)🎜🎜8🎜🎜-2^1024 ~ +2^1024
🎜🎜🎜🎜🎜고정 소수점형🎜🎜 🎜
🎜🎜
🎜🎜🎜🎜DEC(M,D)🎜🎜M+2🎜🎜최대값 범위는 double과 동일하며 주어진 소수점의 유효 범위는 M으로 지정됩니다. D로 결정합니다🎜🎜🎜🎜 🎜🎜참고:M: 정수부 + 소수부 전체 길이
D: 소수부
D, M을 모두 생략하는 경우:
1. 소수형인 경우 , M의 기본값은 10이고 D의 기본값은 0입니다.
2. float 또는 double인 경우 삽입된 값의 정확도에 따라 정확도가 결정됩니다.
3. 고정 소수점 형식은 정확도가 더 높습니다. 통화 계산 등 더 높은 정확도의 숫자 값을 입력해야 하는 경우 사용을 고려해보세요. 🎜🎜🎜🎜2.3 문자형🎜🎜🎜🎜🎜🎜문자열형🎜🎜생략가능🎜🎜특징🎜🎜공간소모🎜🎜효율성🎜🎜Range🎜🎜🎜🎜🎜 🎜char(M)🎜🎜M은 생략 가능 , 기본값은 1🎜🎜고정 길이🎜🎜더 비쌉니다🎜🎜High🎜🎜M은 0~255 사이의 정수🎜🎜🎜🎜varchar(M)🎜🎜M은 생략할 수 없습니다🎜🎜가변 길이🎜🎜입니다 더 경제적입니다🎜 🎜Low🎜🎜M은 0~65535🎜🎜🎜🎜🎜🎜
binary
및 varbinary
유형 사이의 정수이며 다음을 포함한다는 점을 제외하면 char 및 varchar와 유사합니다. 이진이 아닌 문자가 없는 이진 문자, 즉 더 짧은 이진을 저장합니다. 🎜🎜🎜🎜Bit(M) 유형🎜, 바이트는 1~8, 범위는 Bit(1)~Bit(8)
입니다. 🎜🎜🎜Enum 유형🎜, 즉 열거 유형은 삽입된 값이 목록에 지정된 값 중 하나에 속해야 합니다. 열 멤버가 1~255
인 경우 1 byte의 저장이 필요하며, 열 멤버가 255~65535
인 경우 저장하려면 2바이트가 필요하며 최대 65535개의 멤버가 필요합니다. 🎜🎜🎜Set type🎜은 Enum과 유사하게 0~64명의 멤버를 저장할 수 있습니다. Enum과의 가장 큰 차이점은 Set 유형은 한 번에 여러 멤버를 선택할 수 있는 반면 Enum은 멤버 수에 따라 저장 공간이 다른 바이트를 차지한다는 점입니다. 🎜🎜🎜🎜🎜회원수🎜🎜바이트수🎜🎜🎜🎜🎜🎜1~8🎜🎜1🎜🎜🎜🎜9~16🎜🎜2🎜🎜🎜🎜17~24 🎜🎜3🎜🎜🎜🎜25 ~ 32🎜🎜4🎜🎜🎜🎜33~64🎜🎜8🎜🎜🎜🎜【枚举】CREATE TABLE tab_set( s1 SET('a','b','c'));INSERT INTO tab_set VALUES('a');INSERT INTO tab_set VALUES('c,a');INSERT INTO tab_set VALUES('a,b,c');# 插入后,内部会进行排序,如插入c,a会变成a,c
2.4 日期类型
日期和时间类型 | 特点 | 字节 | 最小值 | 最大值 |
---|---|---|---|---|
date | 只保存日期 | 4 | 1000-01-01 | 9999-12-31 |
datetime | 保存日期+时间 | 8 | 1000-01-01 00:00:00 | 9999-12-31 23:59:59 |
timestamp(使用较多) | 保存日期+时间 | 4 | 187001080001 | 2038年的某个时刻 |
time | 只保存时间 | 3 | -838:59:59 | 838:59:59 |
year | 只保存年 | 1 | 1901 | 2155 |
timestamp和实际时区有关,更能反映实际的日期;datetime则只能反映出插入时的当地时区。
timestamp的属性受Mysql版本和SQLMode的影响很大。
【日期类型】CREATE TABLE tab_date( t1 DATETIME, # 不受时区影响 t2 TIMESTAMP # 受时区影响);INSERT INTO tab_date VALUES(NOW(),NOW());SET time_zon='+8:00';# 设置时区SHOW VARIABLES LIKE 'time_zone'; #显示当前时区
二、六大约束
含义:一种限制,用于限制表中的数据,为了保证表中数据的准确性和可靠性。
NOT NULL | 非空约束,规定某个字段不能为空 |
---|---|
UNIQUE | 唯一约束,规定某个字段在整个表汇中是唯一的 |
PRIMARY KEY | 主键(唯一且非空) |
FOREIGN KEY | 外键 |
CHECK | 检查约束(mysql中不支持) |
DEFAULT | 默认值,保证该字段有默认值 |
列级约束:六大约束语法上都支持,但外键约束没有效果。
表级约束:除了非空、默认,其他都支持。
常用的做法是:其他约束都写在列级,外键约束写在表级。
主键和唯一对比 | 是否保证唯一性 | 是否允许为空 | 允许有几个 | 是否允许组合(不推荐) |
---|---|---|---|---|
主键 | √ | × | 至多一个主键 | 允许组合主键 |
唯一 | √ | √(允许有一个null) | 可以有多个唯一 | 允许组合唯一 |
外键的特点:
- 要求在从表设置外键关系。
- 从表的外键列的类型和主表的关联列的类型要求一致或兼容,名称无要求。
- 主表的关联列必须是一个key(一般是主键或唯一)
- 插入数据时,先插入主表再插入从表;删除数据时,先删除从表再删除主表。
列级约束和表级约束比较 | 位置 | 支持的约束类型 | 是否可以起别名 |
---|---|---|---|
列级约束 | 列的后面 | 语法都支持,但外键没有效果 | 不可以 |
表级约束 | 所有列的下面 | 默认和非空不支持,其他支持 | 可以(主键没有效果) |
【列级约束】 直接在字段名和类型后面追加约束类型。 注意:只支持默认、非空、主键、唯一,不支持外键约束CREATE DATABASE students;USE students;CREATE TABLE major( id INT PRIMARY KEY,# 主键 majorName VARCHAR(20));CREATE TABLE stuinfo( id INT PRIMARY KEY,# 主键 stuName VARCHAR(20) NOT NULL, #非空 gender CHAR(1) CHECK(gender='男' OR gender='女'),#检查 seat INT UNIQUE,# 唯一 age INT DEFAULT 18, #默认约束 majorId INT REFERENCES major(id) # 外键);DESC stuinfo;SHOW INDEX FROM stuinfo; # 查看表中所有的索引,外键,唯一【表级约束】# 语法:[CONSTRAINT 约束名 ] 约束类型(字段名)DROP TABLE IF EXISTS stuinfo;CREATE TABLE stuinfo( id INT, stuname VARCHAR(20), gender CHAR(1), seat INT, age INT, majorid INT, CONSTRAINT pk PRIMARY KEY(id),# 主键 CONSTRAINT uq UNIQUE(seat), # 唯一 CONSTRAINT ck CHECK(gender='男' OR gender='女'),# 检查(不报错,但无效) CONSTRAINT fk_stuinfo_major FOREIGN KEY(majorid) REFERENCES major(id) # 外键);SHOW INDEX FROM stuinfo;【修改表时添加约束】# 添加非空约束ALTER TABLE stuinfo MODIFY COLUMN stuname VARCHAR(20) NOT NULL;# 添加默认约束ALTER TABLE stuinfo MODIFY COLUMN age INT DEFAULT 18;# 添加主键ALTER TABLE stuinfo MODIFY COLUMN id INT PRIMARY KEY;# 添加唯一键ALTER TABLE stuinfo MODIFY COLUMN seat INT UNIQUE;# 添加外键ALTER TABLE stuinfo ADD CONSTRAINT fk_stuinfo_major FOREIGN KEY(majorid) REFERENCES major(id);DESC stuinfo;SHOW INDEX FROM stuinfo;【修改表时删除约束】# 删除非空约束ALTER TABLE stuinfo MODIFY COLUMN stuname VARCHAR(20) NULL;# 删除默认约束ALTER TABLE stuinfo MODIFY COLUMN age INT;# 删除主键ALTER TABLE stuinfo DROP PRIMARY KEY;# 删除唯一ALTER TABLE stuinfo DROP INDEX seat;# 删除外键ALTER TABLE stuinfo DROP FOREIGN KEY fk_stuinfo_major;
学习了约束,尝试完成籼米的测试题
1、列级约束:ALTER TABLE emp2 MODIFY COLUMN id INT PRIMARY KEY;# 列约束不支持起名字
表级约束:ALTER TABLE emp2 ADD CONSTRAINT my_emp_id_pk PRIMARY KEY(id);# 实际上主键起了名字也没效果
2、与1类似
3、ALTER TABLE emp2 ADD COLUMN dept_id INT;
ALTER TABLE emp2 ADD CONSTRAINT fk_emp2_dept2 FOREIGN KEY(dept_id) REFERENCES dept2(id);
四、标识列
标识列又称为自增长列,其实也可以将标识列纳入约束的范围。
含义:可以不用手动的插入值,系统提供默认的序列值。
特点:
1.标识列不一定非要和主键搭配,但要求是一个key。
2.一个表至多可以有一个表示列。
3.表示列的类型只能为数值型。
4.标识列可以通过SET auto_increment_increment=3;
设置步长,也可以通过手动插入值来设置起始值。
【创建表时设置标识列】DROP TABLE IF EXISTS tab_identity;CREATE TABLE tab_identity( id INT PRIMARY KEY AUTO_INCREMENT, #设置自动自增 NAME VARCHAR(20));INSERT INTO tab_identity VALUE(NULL,'花花');INSERT INTO tab_identity(NAME) VALUE('Hudie');SELECT * FROM tab_identity;SHOW VARIABLES LIKE '%auto_increment%';SET auto_increment_increment=3;#设置步长为3# 起始值可以通过改变第一条记录的值来更改TRUNCATE TABLE tab_identity;【修改表时设置标识列】CREATE TABLE tab_identity( id INT, #设置自动自增 NAME VARCHAR(20));# 设置主键和标识列ALTER TABLE tab_identity MODIFY COLUMN id INT PRIMARY KEY AUTO_INCREMENT;修改表时删除标识列【】ALTER TABLE tab_identity MODIFY COLUMN id INT;
五、级联删除与置空
级联删除:ALTER TABLE stuinfo ADD CONSTRAINT fk_stu_major FOREIGN KEY(majorid) REFERENCES major(id) ON DELETE CASCADE;
级联置空:ALTER TABLE stuinfo ADD CONSTRAINT fk_stu_major FOREIGN KEY(majorid) REFERENCES major(id) ON DELETE SET NULL;
【演示级联删除、级联置空】DROP TABLE major,stuinfoCREATE TABLE IF NOT EXISTS major( id INT PRIMARY KEY, majorName VARCHAR(20));INSERT INTO majorVALUES(1,'Java'),(2,'Python'),(3,'Go');CREATE TABLE IF NOT EXISTS stuinfo( id INT, stuname VARCHAR(20), gender CHAR(1), seat INT, age INT, majorid INT);INSERT INTO stuinfoSELECT 1,'join1','女',NULL,NULL,1 UNION ALLSELECT 2,'join2','女',NULL,NULL,1 UNION ALLSELECT 3,'join3','女',NULL,NULL,2 UNION ALLSELECT 4,'join4','女',NULL,NULL,2 UNION ALLSELECT 5,'join5','女',NULL,NULL,1 UNION ALLSELECT 6,'join6','女',NULL,NULL,3 UNION ALLSELECT 7,'join7','女',NULL,NULL,3 UNION ALLSELECT 8,'join8','女',NULL,NULL,1);SELECT * FROM major;SELECT * FROM stuinfo;# 传统方式添加外键ALTER TABLE stuinfo ADD CONSTRAINT fk_stu_major FOREIGN KEY(majorid) REFERENCES major(id);# 删除major表的3号专业# 方式1:级联删除# 先删除外键ALTER TABLE stuinfo DROP FOREIGN KEY fk_stu_major;# 添加外键时添加级联删除ALTER TABLE stuinfo ADD CONSTRAINT fk_stu_major FOREIGN KEY(majorid) REFERENCES major(id) ON DELETE CASCADE;DELETE FROM major WHERE id =3;# 方式2:级联置空# 先删除外键ALTER TABLE stuinfo DROP FOREIGN KEY fk_stu_major;# 添加外键时添加级联置空ALTER TABLE stuinfo ADD CONSTRAINT fk_stu_major FOREIGN KEY(majorid) REFERENCES major(id) ON DELETE SET NULL;DELETE FROM major WHERE id =2;
更多相关免费学习推荐:mysql教程(视频)
위 내용은 MySQL 강의 3: DDL 데이터 정의문의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 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)

뜨거운 주제











MySQL 데이터베이스에서 사용자와 데이터베이스 간의 관계는 권한과 테이블로 정의됩니다. 사용자는 데이터베이스에 액세스 할 수있는 사용자 이름과 비밀번호가 있습니다. 권한은 보조금 명령을 통해 부여되며 테이블은 Create Table 명령에 의해 생성됩니다. 사용자와 데이터베이스 간의 관계를 설정하려면 데이터베이스를 작성하고 사용자를 생성 한 다음 권한을 부여해야합니다.

MySQL에는 무료 커뮤니티 버전과 유료 엔터프라이즈 버전이 있습니다. 커뮤니티 버전은 무료로 사용 및 수정할 수 있지만 지원은 제한되어 있으며 안정성이 낮은 응용 프로그램에 적합하며 기술 기능이 강합니다. Enterprise Edition은 안정적이고 신뢰할 수있는 고성능 데이터베이스가 필요하고 지원 비용을 기꺼이 지불하는 응용 프로그램에 대한 포괄적 인 상업적 지원을 제공합니다. 버전을 선택할 때 고려 된 요소에는 응용 프로그램 중요도, 예산 책정 및 기술 기술이 포함됩니다. 완벽한 옵션은없고 가장 적합한 옵션 만 있으므로 특정 상황에 따라 신중하게 선택해야합니다.

데이터 통합 단순화 : AmazonRdsMysQL 및 Redshift의 Zero ETL 통합 효율적인 데이터 통합은 데이터 중심 구성의 핵심입니다. 전통적인 ETL (추출, 변환,로드) 프로세스는 특히 데이터베이스 (예 : AmazonRDSMySQL)를 데이터웨어 하우스 (예 : Redshift)와 통합 할 때 복잡하고 시간이 많이 걸립니다. 그러나 AWS는 이러한 상황을 완전히 변경 한 Zero ETL 통합 솔루션을 제공하여 RDSMYSQL에서 Redshift로 데이터 마이그레이션을위한 단순화 된 거의 실시간 솔루션을 제공합니다. 이 기사는 RDSMYSQL ZERL ETL 통합으로 Redshift와 함께 작동하여 데이터 엔지니어 및 개발자에게 제공하는 장점과 장점을 설명합니다.

MySQL 데이터베이스 성능 최적화 안내서 리소스 집약적 응용 프로그램에서 MySQL 데이터베이스는 중요한 역할을 수행하며 대규모 트랜잭션 관리를 담당합니다. 그러나 응용 프로그램 규모가 확장됨에 따라 데이터베이스 성능 병목 현상은 종종 제약이됩니다. 이 기사는 일련의 효과적인 MySQL 성능 최적화 전략을 탐색하여 응용 프로그램이 고 부하에서 효율적이고 반응이 유지되도록합니다. 실제 사례를 결합하여 인덱싱, 쿼리 최적화, 데이터베이스 설계 및 캐싱과 같은 심층적 인 주요 기술을 설명합니다. 1. 데이터베이스 아키텍처 설계 및 최적화 된 데이터베이스 아키텍처는 MySQL 성능 최적화의 초석입니다. 몇 가지 핵심 원칙은 다음과 같습니다. 올바른 데이터 유형을 선택하고 요구 사항을 충족하는 가장 작은 데이터 유형을 선택하면 저장 공간을 절약 할 수있을뿐만 아니라 데이터 처리 속도를 향상시킬 수 있습니다.

MySQL 사용자 이름 및 비밀번호를 작성하려면 : 1. 사용자 이름과 비밀번호를 결정합니다. 2. 데이터베이스에 연결; 3. 사용자 이름과 비밀번호를 사용하여 쿼리 및 명령을 실행하십시오.

1. 올바른 색인을 사용하여 스캔 한 데이터의 양을 줄임으로써 데이터 검색 속도를 높이십시오. 테이블 열을 여러 번 찾으면 해당 열에 대한 인덱스를 만듭니다. 귀하 또는 귀하의 앱이 기준에 따라 여러 열에서 데이터가 필요한 경우 복합 인덱스 2를 만듭니다. 2. 선택을 피하십시오 * 필요한 열만 선택하면 모든 원치 않는 열을 선택하면 더 많은 서버 메모리를 선택하면 서버가 높은 부하 또는 주파수 시간으로 서버가 속도가 느려지며, 예를 들어 Creation_at 및 Updated_at 및 Timestamps와 같은 열이 포함되어 있지 않기 때문에 쿼리가 필요하지 않기 때문에 테이블은 선택을 피할 수 없습니다.

MySQL에서 복사 및 붙여 넣기 단계는 다음 단계가 포함됩니다. 데이터를 선택하고 CTRL C (Windows) 또는 CMD C (MAC)로 복사; 대상 위치를 마우스 오른쪽 버튼으로 클릭하고 페이스트를 선택하거나 Ctrl V (Windows) 또는 CMD V (Mac)를 사용하십시오. 복사 된 데이터는 대상 위치에 삽입되거나 기존 데이터를 교체합니다 (데이터가 이미 대상 위치에 존재하는지 여부에 따라).

데이터베이스 산 속성에 대한 자세한 설명 산 속성은 데이터베이스 트랜잭션의 신뢰성과 일관성을 보장하기위한 일련의 규칙입니다. 데이터베이스 시스템이 트랜잭션을 처리하는 방법을 정의하고 시스템 충돌, 전원 중단 또는 여러 사용자의 동시 액세스가 발생할 경우에도 데이터 무결성 및 정확성을 보장합니다. 산 속성 개요 원자력 : 트랜잭션은 불가분의 단위로 간주됩니다. 모든 부분이 실패하고 전체 트랜잭션이 롤백되며 데이터베이스는 변경 사항을 유지하지 않습니다. 예를 들어, 은행 송금이 한 계정에서 공제되지만 다른 계정으로 인상되지 않은 경우 전체 작업이 취소됩니다. BeginTransaction; updateAccountssetBalance = Balance-100WH
