第二章 数据库的实现
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
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Apple の最新リリースの iOS18、iPadOS18、および macOS Sequoia システムでは、さまざまな理由で紛失または破損した写真やビデオをユーザーが簡単に回復できるように設計された重要な機能が写真アプリケーションに追加されました。この新機能では、写真アプリのツール セクションに「Recovered」というアルバムが導入され、ユーザーがデバイス上に写真ライブラリに含まれていない写真やビデオがある場合に自動的に表示されます。 「Recovered」アルバムの登場により、データベースの破損、カメラ アプリケーションが写真ライブラリに正しく保存されない、または写真ライブラリを管理するサードパーティ アプリケーションによって失われた写真やビデオに対する解決策が提供されます。ユーザーはいくつかの簡単な手順を実行するだけで済みます

Hibernate ポリモーフィック マッピングは、継承されたクラスをデータベースにマップでき、次のマッピング タイプを提供します。 join-subclass: 親クラスのすべての列を含む、サブクラス用の別個のテーブルを作成します。 table-per-class: サブクラス固有の列のみを含む、サブクラス用の別個のテーブルを作成します。 Union-subclass: join-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. 特定のニーズに応じて結果をスキャンするか、レコードを更新します。
