Sql Server系列:数据库操作

Jun 07, 2016 pm 02:59 PM
cr server sql 作成する 操作する データベース シリーズ

1. 创建数据库 CREATE DATABASE语法: CREATE DATABASE database_name [ ON [ PRIMARY ] filespec [ ,...n ] [ , filegroup [ ,...n ] ] [ LOG ON filespec [ ,...n ] ] ] [ COLLATE collation_name ] filespec :: = {( NAME = logical_file_name , FILENAME

1. 创建数据库

  CREATE DATABASE语法:

<span>CREATE</span> <span>DATABASE</span><span> database_name 
</span><span>[</span><span> ON 
      [ PRIMARY </span><span>]</span> <span>filespec<span>></span> <span>[</span><span> ,...n </span><span>]</span> 
      <span>[</span><span> , <filegroup> [ ,...n </filegroup></span><span>]</span><span> ] 
      </span><span>[</span><span> LOG ON <filespec> [ ,...n </filespec></span><span>]</span><span> ] 
] 
</span><span>[</span><span> COLLATE collation_name </span><span>]</span>
<span>filespec<span>></span> ::<span>=</span><span> 
{
(
    NAME </span><span>=</span><span> logical_file_name ,
    FILENAME </span><span>=</span> { <span>'</span><span>os_file_name</span><span>'</span> <span>|</span> <span>'</span><span>filestream_path</span><span>'</span><span> } 
    </span><span>[</span><span> , SIZE = size [ KB | MB | GB | TB </span><span>]</span><span> ] 
    </span><span>[</span><span> , MAXSIZE = { max_size [ KB | MB | GB | TB </span><span>]</span> <span>|</span><span> UNLIMITED } ] 
    </span><span>[</span><span> , FILEGROWTH = growth_increment [ KB | MB | GB | TB | % </span><span>]</span><span> ]
)
}</span></span></span>
ログイン後にコピー

  ON:用来定义数据库的数据文件。PRIMARY指出其后所定义的文件是主数据文件,如果省略,则第一个定义的文件是主数据文件。

  LOG ON:用来定义数据库的日志文件。如果没有LOG ON,SQL Server将自动创建一个日志文件。

  数据库中的文件类型与推荐扩展名:主要数据文件.mdf ,次要数据文件.ndf ,事务日志.ldf 。

  创建未指定文件的数据库:

<span>--</span><span> Drop the database if it already exists</span>
<span>IF</span>  <span>EXISTS</span><span> (
    </span><span>SELECT</span><span> name 
        </span><span>FROM</span><span> sys.databases 
        </span><span>WHERE</span> name <span>=</span> N<span>'</span><span>Portal</span><span>'</span><span>
)
</span><span>DROP</span> <span>DATABASE</span><span> Portal
</span><span>GO</span>

<span>CREATE</span> <span>DATABASE</span><span> Portal
</span><span>GO</span>
ログイン後にコピー

  创建指定数据文件和事务日志文件的数据库:

<span>CREATE</span> <span>DATABASE</span> <span>[</span><span>Portal</span><span>]</span>
 <span>ON</span>  <span>PRIMARY</span><span> 
(
    NAME </span><span>=</span> N<span>'</span><span>Portal</span><span>'</span><span>,
    FILENAME </span><span>=</span> N<span>'</span><span>F:\Database\Portal.mdf</span><span>'</span><span> ,
    SIZE </span><span>=</span><span> 5MB ,
    FILEGROWTH </span><span>=</span><span> 1MB
 )
 </span><span>LOG</span> <span>ON</span><span>
(
    NAME </span><span>=</span> N<span>'</span><span>Portal_log</span><span>'</span><span>,
    FILENAME </span><span>=</span> N<span>'</span><span>F:\Database\Portal_log.ldf</span><span>'</span><span> ,
    SIZE </span><span>=</span><span> 2MB ,
    FILEGROWTH </span><span>=</span> <span>10</span><span>%</span><span>
)</span>
ログイン後にコピー

  创建数据库指定多个数据及事务日志文件:

<span>CREATE</span> <span>DATABASE</span> <span>[</span><span>Portal</span><span>]</span>
 <span>ON</span>  <span>PRIMARY</span><span> 
(
    NAME </span><span>=</span> N<span>'</span><span>Portal</span><span>'</span><span>,
    FILENAME </span><span>=</span> N<span>'</span><span>F:\Database\Portal.mdf</span><span>'</span><span> ,
    SIZE </span><span>=</span><span> 5MB ,
    FILEGROWTH </span><span>=</span><span> 1MB
 ),
 (
    NAME </span><span>=</span> N<span>'</span><span>Portal_Data_2014</span><span>'</span><span>,
    FILENAME </span><span>=</span> N<span>'</span><span>F:\Database\Portal_Data_2014.ndf</span><span>'</span><span> ,
    SIZE </span><span>=</span><span> 5MB ,
    FILEGROWTH </span><span>=</span><span> 1MB
 )
 </span><span>LOG</span> <span>ON</span><span>
(
    NAME </span><span>=</span> N<span>'</span><span>Portal_log</span><span>'</span><span>,
    FILENAME </span><span>=</span> N<span>'</span><span>F:\Database\Portal_log.ldf</span><span>'</span><span> ,
    SIZE </span><span>=</span><span> 2MB ,
    FILEGROWTH </span><span>=</span> <span>10</span><span>%</span><span>
),
(
    NAME </span><span>=</span> N<span>'</span><span>Portal_log_2014</span><span>'</span><span>,
    FILENAME </span><span>=</span> N<span>'</span><span>F:\Database\Portal_log_2014.ldf</span><span>'</span><span> ,
    SIZE </span><span>=</span><span> 2MB ,
    FILEGROWTH </span><span>=</span> <span>10</span><span>%</span><span>
)</span>
ログイン後にコピー

  创建具有文件组的数据库:

<span>CREATE</span> <span>DATABASE</span> <span>[</span><span>Portal</span><span>]</span>
 <span>ON</span>  <span>PRIMARY</span><span> 
(
    NAME </span><span>=</span> N<span>'</span><span>Portal</span><span>'</span><span>,
    FILENAME </span><span>=</span> N<span>'</span><span>F:\Database\Portal.mdf</span><span>'</span><span> ,
    SIZE </span><span>=</span><span> 10MB ,
    FILEGROWTH </span><span>=</span><span> 1MB
 ),
 FILEGROUP </span><span>[</span><span>div2014</span><span>]</span><span> 
 (
    NAME </span><span>=</span> N<span>'</span><span>Portal_Data_2014</span><span>'</span><span>,
    FILENAME </span><span>=</span> N<span>'</span><span>F:\Database\Portal_Data_2014.ndf</span><span>'</span><span> ,
    SIZE </span><span>=</span><span> 5MB ,
    FILEGROWTH </span><span>=</span><span> 1MB
 )
 </span><span>LOG</span> <span>ON</span><span>
(
    NAME </span><span>=</span> N<span>'</span><span>Portal_log</span><span>'</span><span>,
    FILENAME </span><span>=</span> N<span>'</span><span>F:\Database\Portal_log.ldf</span><span>'</span><span> ,
    SIZE </span><span>=</span><span> 2MB ,
    FILEGROWTH </span><span>=</span> <span>10</span><span>%</span><span>
)</span>
ログイン後にコピー

2. 修改数据库

  修改数据库语法:

<span>ALTER</span> <span>DATABASE</span><span> database_name 
{
    </span><span>add_or_modify_files<span>></span>
  <span>|</span> <span>add_or_modify_filegroups<span>></span><span>
}
</span><span>[</span><span>;</span><span>]</span>

<span>add_or_modify_files<span>></span>::<span>=</span><span>
{
    </span><span>ADD</span> <span>FILE</span> <span>filespec<span>></span> <span>[</span><span> ,...n </span><span>]</span> 
        <span>[</span><span> TO FILEGROUP { filegroup_name } </span><span>]</span>
  <span>|</span> <span>ADD</span> <span>LOG</span> <span>FILE</span> <span>filespec<span>></span> <span>[</span><span> ,...n </span><span>]</span> 
  <span>|</span> REMOVE <span>FILE</span><span> logical_file_name 
  </span><span>|</span> MODIFY <span>FILE</span> <span>filespec<span>></span><span>
}

</span><span>filespec<span>></span>::<span>=</span><span>  
(
    NAME </span><span>=</span><span> logical_file_name  
    </span><span>[</span><span> , NEWNAME = new_logical_name </span><span>]</span> 
    <span>[</span><span> , FILENAME = {'os_file_name' | 'filestream_path' | 'memory_optimized_data_path' } </span><span>]</span> 
    <span>[</span><span> , SIZE = size [ KB | MB | GB | TB </span><span>]</span><span> ] 
    </span><span>[</span><span> , MAXSIZE = { max_size [ KB | MB | GB | TB </span><span>]</span> <span>|</span><span> UNLIMITED } ] 
    </span><span>[</span><span> , FILEGROWTH = growth_increment [ KB | MB | GB | TB| % </span><span>]</span><span> ] 
    </span><span>[</span><span> , OFFLINE </span><span>]</span><span>
)  

</span><span>add_or_modify_filegroups<span>></span>::<span>=</span><span>
{
    </span><span>|</span> <span>ADD</span> FILEGROUP <span>filegroup_name</span> 
        <span>[</span><span> CONTAINS FILESTREAM | CONTAINS MEMORY_OPTIMIZED_DATA </span><span>]</span>
    <span>|</span> REMOVE FILEGROUP <span>filegroup_name</span> 
    <span>|</span> MODIFY FILEGROUP <span>filegroup_name</span><span>
        { </span><span>filegroup_updatability_option<span>></span>
        <span>|</span> <span>DEFAULT</span>
        <span>|</span> NAME <span>=</span><span> new_filegroup_name 
        }
}
</span><span>filegroup_updatability_option<span>></span>::<span>=</span><span>
{
    { READONLY </span><span>|</span><span> READWRITE } 
    </span><span>|</span> { READ_ONLY <span>|</span><span> READ_WRITE }
}</span></span></span></span></span></span></span></span></span></span></span>
ログイン後にコピー

  新增文件组:

<span>ALTER</span> <span>DATABASE</span> <span>[</span><span>Portal</span><span>]</span> <span>ADD</span> FILEGROUP <span>[</span><span>div2014</span><span>]</span>
ログイン後にコピー

  新增文件指定文件组:

<span>ALTER</span> <span>DATABASE</span> <span>[</span><span>Portal</span><span>]</span> <span>ADD</span> <span>FILE</span><span>
(
    NAME </span><span>=</span> N<span>'</span><span>Portal_Data_2014</span><span>'</span><span>,
    FILENAME </span><span>=</span> N<span>'</span><span>F:\Database\Portal_Data_2014.ndf</span><span>'</span><span> ,
    SIZE </span><span>=</span><span> 5MB ,
    FILEGROWTH </span><span>=</span><span> 1MB
)
</span><span>TO</span> FILEGROUP <span>[</span><span>div2014</span><span>]</span>
ログイン後にコピー

  删除数据库文件:

<span>ALTER</span> <span>DATABASE</span> <span>[</span><span>Portal</span><span>]</span> REMOVE <span>FILE</span> Portal_Data_2014
ログイン後にコピー

  修改数据名称:

<span>ALTER</span> <span>DATABASE</span> <span>[</span><span>Portal</span><span>]</span> MODIFY NAME <span>=</span> <span>[</span><span>Portal_2014</span><span>]</span>
ログイン後にコピー

<span>EXEC</span> sp_renamedb <span>[</span><span>Portal</span><span>]</span>, <span>[</span><span>Portal_2014</span><span>]</span>
ログイン後にコピー

  修改设置默认文件组:

<span>ALTER</span> <span>DATABASE</span> <span>[</span><span>Portal</span><span>]</span> MODIFY FILEGROUP <span>[</span><span>PRIMARY</span><span>]</span> <span>DEFAULT</span>
ログイン後にコピー

3. 删除数据库

  删除数据库语法:

<span>DROP</span> <span>DATABASE</span> { database_name <span>|</span> database_snapshot_name } <span>[</span><span> ,...n </span><span>]</span> <span>[</span><span>;</span><span>]</span>
ログイン後にコピー

  示例:

<span>DROP</span> <span>DATABASE</span> <span>[</span><span>Portal</span><span>]</span>
ログイン後にコピー

4. 分离数据库

  使用系统存储过程sp_detach_db分离数据库。

sp_detach_db <span>[</span><span> @dbname= </span><span>]</span> <span>'</span><span>database_name</span><span>'</span> 
    <span>[</span><span> , [ @skipchecks= </span><span>]</span> <span>'</span><span>skipchecks</span><span>'</span><span> ] 
    </span><span>[</span><span> , [ @keepfulltextindexfile = </span><span>]</span> <span>'</span><span>KeepFulltextIndexFile</span><span>'</span> ] 
ログイン後にコピー

<span>EXEC</span> sp_detach_db <span>[</span><span>Portal</span><span>]</span>
ログイン後にコピー

  直接运行分离数据库的SQL语句,可能会提示有进程(用户)正在使用,分离失败。要解决这个问题,先查看哪些进程(用户)正在使用该数据库。

  查看用户和进程:

<span>USE</span> <span>[</span><span>master</span><span>]</span><span>
sp_who</span>
ログイン後にコピー

Sql Server系列:数据库操作

  先结束占用数据库的进程,再分离数据库:

USE [master]

KILL 55
KILL 56
KILL 57

<span>EXEC</span> sp_detach_db <span>[</span><span>Portal</span><span>]</span>
ログイン後にコピー

5. 附加数据库

  使用CREATE DATABASE附加数据库:

<span>CREATE</span> <span>DATABASE</span> <span>[</span><span>Portal</span><span>]</span>
<span>ON</span><span>
(
    FILENAME </span><span>=</span> <span>'</span><span>F:\Database\Portal.mdf</span><span>'</span><span>
)
</span><span>FOR</span> ATTACH
ログイン後にコピー

<span>CREATE</span> <span>DATABASE</span> <span>[</span><span>Portal</span><span>]</span>
<span>ON</span><span>
(
    FILENAME </span><span>=</span> <span>'</span><span>F:\Database\Portal.mdf</span><span>'</span><span>
),
(
    FILENAME </span><span>=</span> <span>'</span><span>F:\Database\Portal_log.ldf</span><span>'</span><span>
)
</span><span>FOR</span> ATTACH
ログイン後にコピー

  使用系统存储过程附加数据库:

<span>EXEC</span> sp_attach_db <span>[</span><span>Portal</span><span>]</span>, <span>'</span><span>F:\Database\Portal.mdf</span><span>'</span>
ログイン後にコピー

<span>EXEC</span> sp_attach_db <span>[</span><span>Portal</span><span>]</span>, <span>'</span><span>F:\Database\Portal.mdf</span><span>'</span>, 'F:\Database\Portal_log.ldf'
ログイン後にコピー

6. 查看数据库信息

  SQL Server中可以使用多种方式查看数据库信息,例如使用目录视图、函数、存储过程等。

6.1> 使用目录视图

  使用目录视图查看数据库基本信息:

  ◊ sys.databse_files:查看数据库文件信息;

  ◊ sys.filegroups:查看数据库组信息;

  ◊ sys.master_files:查看数据库文件的基本信息和状态信息;

  ◊ sys.database:数据库和文件目录视图查看数据库的基本信息。

<span>SELECT</span> <span>*</span> <span>FROM</span> sys.databases <span>WHERE</span> name <span>=</span> <span>'</span><span>Northwind</span><span>'</span>
ログイン後にコピー
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Hibernate フレームワークにおける HQL と SQL の違いは何ですか? Hibernate フレームワークにおける HQL と SQL の違いは何ですか? Apr 17, 2024 pm 02:57 PM

HQL と SQL は Hibernate フレームワークで比較されます。HQL (1. オブジェクト指向構文、2. データベースに依存しないクエリ、3. タイプ セーフティ)、SQL はデータベースを直接操作します (1. データベースに依存しない標準、2. 複雑な実行可能ファイル)。クエリとデータ操作)。

Xiaomi 15シリーズの完全なコードネームが明らかに:Dada、Haotian、Xuanyuan Xiaomi 15シリーズの完全なコードネームが明らかに:Dada、Haotian、Xuanyuan Aug 22, 2024 pm 06:47 PM

Xiaomi Mi 15シリーズは10月に正式リリースされる予定で、その全シリーズのコードネームが海外メディアのMiCodeコードベースで公開されている。その中でもフラッグシップモデルであるXiaomi Mi 15 Ultraのコードネームは「Xuanyuan」(「玄源」の意味)です。この名前は中国神話に登場する高貴さを象徴する黄帝に由来しています。 Xiaomi 15のコードネームは「Dada」、Xiaomi 15Proのコード名は「Haotian」(「好天」の意味)です。 Xiaomi Mi 15S Proの内部コード名は「dijun」で、「山と海の古典」の創造神である淳皇帝を暗示しています。 Xiaomi 15Ultra シリーズのカバー

Huawei Mate 60シリーズ、新しいAI排除+イメージアップグレード、秋のプロモーションを楽しむのに最適な時期 Huawei Mate 60シリーズ、新しいAI排除+イメージアップグレード、秋のプロモーションを楽しむのに最適な時期 Aug 29, 2024 pm 03:33 PM

昨年Huawei Mate60シリーズが発売されて以来、個人的にはMate60Proをメインで使っています。ほぼ1年の間に、Huawei Mate60Proは複数のOTAアップグレードを受け、全体的なエクスペリエンスが大幅に向上し、人々に常に新しい感覚を与えました。たとえば、最近、Huawei Mate60 シリーズは再びイメージング機能の大幅なアップグレードを受けました。 1 つ目は、新しい AI 除去機能で、通行人やゴミをインテリジェントに除去し、空白領域を自動的に埋めることができます。2 つ目は、メインカメラの色の精度と望遠の鮮明さが大幅に向上しました。新学期シーズンであることを考慮して、Huawei Mate60シリーズは秋のプロモーションも開始しました。携帯電話の購入時に最大800元の割引が受けられ、開始価格は4,999元という低価格です。よく使われる、価値の高い新製品が多い

Hibernate はポリモーフィック マッピングをどのように実装しますか? Hibernate はポリモーフィック マッピングをどのように実装しますか? Apr 17, 2024 pm 12:09 PM

Hibernate ポリモーフィック マッピングは、継承されたクラスをデータベースにマップでき、次のマッピング タイプを提供します。 join-subclass: 親クラスのすべての列を含む、サブクラス用の別個のテーブルを作成します。 table-per-class: サブクラス固有の列のみを含む、サブクラス用の別個のテーブルを作成します。 Union-subclass: join-subclass と似ていますが、親クラス テーブルがすべてのサブクラス列を結合します。

iOS 18では、紛失または破損した写真を復元するための新しい「復元」アルバム機能が追加されます iOS 18では、紛失または破損した写真を復元するための新しい「復元」アルバム機能が追加されます Jul 18, 2024 am 05:48 AM

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

HTML がデータベースを読み取る方法の詳細な分析 HTML がデータベースを読み取る方法の詳細な分析 Apr 09, 2024 pm 12:36 PM

HTML はデータベースを直接読み取ることはできませんが、JavaScript と AJAX を通じて実現できます。この手順には、データベース接続の確立、クエリの送信、応答の処理、ページの更新が含まれます。この記事では、JavaScript、AJAX、および PHP を使用して MySQL データベースからデータを読み取る実践的な例を示し、クエリ結果を HTML ページに動的に表示する方法を示します。この例では、XMLHttpRequest を使用してデータベース接続を確立し、クエリを送信して応答を処理することで、ページ要素にデータを埋め込み、データベースを読み取る HTML の機能を実現します。

PHP で MySQLi を使用してデータベース接続を確立するための詳細なチュートリアル PHP で MySQLi を使用してデータベース接続を確立するための詳細なチュートリアル Jun 04, 2024 pm 01:42 PM

MySQLi を使用して PHP でデータベース接続を確立する方法: MySQLi 拡張機能を含める (require_once) 接続関数を作成する (functionconnect_to_db) 接続関数を呼び出す ($conn=connect_to_db()) クエリを実行する ($result=$conn->query()) 閉じる接続 ( $conn->close())

PHP でデータベース接続エラーを処理する方法 PHP でデータベース接続エラーを処理する方法 Jun 05, 2024 pm 02:16 PM

PHP でデータベース接続エラーを処理するには、次の手順を使用できます。 mysqli_connect_errno() を使用してエラー コードを取得します。 mysqli_connect_error() を使用してエラー メッセージを取得します。これらのエラー メッセージをキャプチャしてログに記録することで、データベース接続の問題を簡単に特定して解決でき、アプリケーションをスムーズに実行できるようになります。

See all articles