第二章 数据库的实现
2.1 T-SQL语句回顾 在《使用SQL Server管理和查询数据》中,我们学习过T-SQL语句,它是Microsoft SQL Server 数据库对SQL语句的扩展,T-SQL语句的数据操作语法如下。 1. 添加数据 语法:Insert [into] 表名 (字段1,字段2,) Values (值1,值2,) 其中,
2.1 T-SQL语句回顾
在《使用SQL Server管理和查询数据》中,我们学习过T-SQL语句,它是Microsoft SQL Server 数据库对SQL语句的扩展,T-SQL语句的数据操作语法如下。
1. 添加数据
语法:Insert [into] 表名 (字段1,字段2,···) Values (值1,值2,···)
其中,Into 可选。
例如: Insert into stuInfo (stuName, stuNo, stuAge) values ('张三', 's25301', 22)
2. 修改数据
语法:Update 表名 set 字段1 = 值1 , 字段2 = 值2,··· Where (条件)
例如:Update StuInfo set stuAge = 24 where stuName = '张三'
3. 查询数据
语法:Select 字段1,字段2,··· from 表名 where (条件) Order by 字段名
例如:Select stuName, stuNo from stuInfo where stuAge
4. 删除数据
语法:Delete from 表名 where (条件)
例如:Delete from stuInfo where stuAge
当项目经测试基本满足客户的需求后,需要部署在客户的实际环境中试运行。我们在部署前需要考虑的是,后台的数据库如何移植到客户的计算机中?考虑各种数据库版本的兼容性,行之有效的办法就是编写比较通用的SQL语句,包括创建库、创建表、添加约束、插入测试数据等。编写完毕后,存入*.sql文件中,最后复制到客户的计算机中,并执行*.sql文件中的SQL语句,从而实现后台数据库的移植。所以,我们还需要掌握如何使用SQL语句,实现创建库、创建表、添加约束和创建登录账户等。
2.2 使用SQL语句创建和删除数据库
我们先简要回顾一下SQL Server数据库的基础知识。
数据库文件由以下3部分组成。
》》》主数据文件:*.mdf。
》》》次要数据文件:*.ndf。
》》》日志文件:*.ldf。
其中,次要数据文件库可选,可以有多个数据库文件和日志文件。
数据库文件的其他属性。
》》》文件存放位置,分配的初始空间,属于哪个文件组。
》》》文件的增长设置,可以按百分比或实际大小指定增长速度。
》》》文件容量设置,网站空间,可以指定文件增长的最大值或不受限。
其中,文件组允许对数据文件进行分组,以便于管理和数据的分配/放置。例如,可以分别在3个硬盘驱动器上创建3个文件(Data1.mdf,Data2.ndf和Data3.ndf),并将这3个文件指派到文件组fgroup1中。然后,可以明确地在文件组fgroup1中创建一个表。对表中数据的查询将分散到3个磁盘上,可以采用并发查询,因而性能得以提高。
2.2.1 创建数据表
T-SQL创建数据库的语法如下:
Creat Database 数据库名
On [PRIMARY]
(
[,···n] []
)
[Log on]
(
{[,···n]}
)
文件的具体参数的语法如下。
([Name = 逻辑文件名,]
FileName = 物理文件名
[, Size = 大小]
[, MaxSize = (最大容量 | Unlimited)]
[, Filegrowth = 增长量]) [,···n]
文件组参数的语法如下。
Filegroup 文件组名 [,···n]
其中,“[]”表示可选部分,“{}”表示必需的部分。各参数的含义说明如下。
》》》数据库名:数据库的名称,最长为128个字符。
》》》Primary:该选项是一个关键字,指定主文件组中的文件。
》》》Log on:指明事务日志文件的明确定义。
》》》Name:指定数据库的逻辑名称,这是在SQL Server系统中使用的名称,是数据库在SQL Server中的标识符。
》》》FileName:指定数据库所在文件的操作系统文件名称和路径,该操作系统文件名和Name的逻辑名称一一对应。
》》》Size:指定数据库的初始容量大小。
》》》Maxsize:指定操作系统文件可以增长到的最大尺寸。
》》》Filegrowth:指定文件每次增加容量的大小,当指定数据为0时,表示文件不增长。
示例一:
创建一个数据文件和一个日志文件。
Create Database stuDB
on primary --默认就属于primary主文件组,可省略
(
/*-- 数据文件的具体描述 --*/
Name = 'stuDB_data', --主数据文件的逻辑名称
filename = 'D:\stuDB_data.mdf', --主数据文件的物理名称
size = 5mb, --主数据文件的初始大小
Maxsize = 100mb, --主数据文件增长的最大值
Filegrowth = 15%, --主数据文件的增长率
)
Log on
(
/*-- 日志文件的具体描述,各参数含义同上 --*/
Name = 'stuDB_log',
FileName = 'D:\stuDB_log.ldf',
size = 2mb,
Filegrowth = 1mb
)
go --和后续的SQL语句分隔开
在示例1中创建了学员信息数据库stuDB,该数据库的主数据文件逻辑名称为stuDB_data,物理文件名称为stuDB_data.mdf,初始大小为5MB,最大尺寸为100MB,增长速度为15%。数据库的日志文件逻辑名称为stuDB_log,物理文件名称为stuDB_log.ldf,初始大小为2MB,增长速度为1MB。该数据库存放在D:盘。
示例二:
创建多个数据文件和多个日志文件。
Create DataBase employees
on Primary
(
/*-- 主数据文件的具体描述 --*/
Name = 'employees1',
FileName = 'D:\employees1.mdf',
Size = 10,
Filegrowth = 10%,
),
(
/*-- 次要数据文件的具体描述 --*/
Name = 'employee2',
FileName = 'D:\employee2.ndf',
Size = 20,
MaxSize = 100,
FileGrowth = 1
)
Log On
(
/*-- 日志文件1的具体描述 *--/
Name = 'employeelog1',
FileName = 'D:\employeelog1_log.ldf',
Size = 10,
MaxSize = 50,
FileGrowth = 1
)
(
/*-- 日志文件2的具体描述 *--/
Name = 'employeelog2',
FileName = 'D:\employeelog2_log.ldf',
Size = 10,
MaxSize = 50,
FileGrowth = 1
)
go -- 和后续的SQL语句分隔开

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

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

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

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

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

Golang의 데이터베이스 콜백 기능을 사용하면 다음을 달성할 수 있습니다. 지정된 데이터베이스 작업이 완료된 후 사용자 정의 코드를 실행합니다. 추가 코드를 작성하지 않고도 별도의 함수를 통해 사용자 정의 동작을 추가할 수 있습니다. 삽입, 업데이트, 삭제, 쿼리 작업에 콜백 함수를 사용할 수 있습니다. 콜백 함수를 사용하려면 sql.Exec, sql.QueryRow, sql.Query 함수를 사용해야 합니다.

Go 표준 라이브러리 데이터베이스/sql 패키지를 통해 MySQL, PostgreSQL 또는 SQLite와 같은 원격 데이터베이스에 연결할 수 있습니다. 데이터베이스 연결 정보가 포함된 연결 문자열을 생성합니다. sql.Open() 함수를 사용하여 데이터베이스 연결을 엽니다. SQL 쿼리 및 삽입 작업과 같은 데이터베이스 작업을 수행합니다. 리소스를 해제하기 위해 defer를 사용하여 데이터베이스 연결을 닫습니다.

JSON 데이터는 gjson 라이브러리 또는 json.Unmarshal 함수를 사용하여 MySQL 데이터베이스에 저장할 수 있습니다. gjson 라이브러리는 JSON 필드를 구문 분석하는 편리한 방법을 제공하며, json.Unmarshal 함수에는 JSON 데이터를 비정렬화하기 위한 대상 유형 포인터가 필요합니다. 두 방법 모두 SQL 문을 준비하고 삽입 작업을 수행하여 데이터를 데이터베이스에 유지해야 합니다.

C++의 DataAccessObjects(DAO) 라이브러리를 사용하여 데이터베이스 연결 설정, SQL 쿼리 실행, 새 레코드 삽입 및 기존 레코드 업데이트를 포함하여 데이터베이스를 연결하고 운영합니다. 구체적인 단계는 다음과 같습니다. 1. 필요한 라이브러리 문을 포함합니다. 2. 데이터베이스 파일을 엽니다. 3. SQL 쿼리를 실행하거나 데이터를 조작하기 위한 Recordset 개체를 만듭니다. 4. 특정 요구에 따라 결과를 탐색하거나 레코드를 업데이트합니다.
