検索
ホームページデータベースmysql チュートリアルMySQL入门(五)表的创建、修改和删除_MySQL

  表是DB存储数据的基本单位,一个表包含若干个字段或记录。表的操作包括创建、修改和删除。

  1、创建表

  创建表即在已存在的数据库中创立新表。在使用USE语句选择具体数据库后,可以使用它SQL语句创建表

  

这里写图片描述

 

  其中,属性名指表中字段的名称,数据类型即对应字段的数据类型,完整性约束条件指对应字段的某些特殊约束条件。

  MySQL中基本的完整性约束条件有

  

这里写图片描述

 

  1.1 设置表的主键

  主键是表的一个特殊字段,该字段能唯一地表示该表中的每条信息,即主键如同表中记录的身份证。主键的主要目的在于帮助MySQL以最快的速度查找表中的某一条信息。主键必须按满足唯一性,表中任意提两条记录的主键字段的值不可相同,主键的值为非空值。主键可以是单一的字段也可以是多个字段的组合。

  对于单字段主键只要在创建表时使用下属语句即可

  属性名 数据类型 PRIMARY KEY

  对于多字段主键,要在属性定义完后统一设置主键,如

  

这里写图片描述

 

  即用stu_id和course_id两个字段组合来唯一确定一条记录。

  1.2 设置表的外键

  如果字段a是表A的属性,且依赖于表B的主键,那么,称表B为父表,表A为子表,a为表A的外键。通过字段a将父表B和子表A建立了关联关系,即外键的作用在于建立该表与其父表的关联关系。当父表中删除某条信息时,子表中与之对应的信息也必须有相应的改变,来保证信息的完整性。

  在创建表时的设置外键的基本语法为

  

这里写图片描述

 

  其中,外键别名指外键的代号,属性一列表指子表中设置的外键,属性二列表指父表的主键,而表名指父表的名称。如

  

这里写图片描述

 

  注意,子表的外键关联的必须是父表的主键,且数据类型必须一致。

  1.3 设置表的非空约束

  非空性指字段的值不能为空值NULL。基本语法为

  属性名 数据类型 NOT NULL

  当在有非空约束的字段上插入的记录对应该字段的值为空时,系统将保存并不接受此次插入。

  1.4 设置表的唯一性约束

  唯一性是指所有记录中该字段的值不可重复出现。基本语法为

  属性名 数据类型 UNIQUE

  1.5 设置表的属性值自动增加

  AUTO_INCREMENT是MySQL数据库中的一个特殊约束条件,主要用于为表中插入的新纪录自动生成唯一的ID。基本语法为

  属性名 数据类型 AUTO_INCREMENT

  一个表只能有一个字段使用该约束,且该字段必须为主键的一部分,该字段可以是任何整数类型。默认情况下,该字段的值从1开始自增。如果第一条记录设置了该字段的初值,则后续新增加的记录就从初值开始自增。

  1.6 设置表的属性的默认值

  对于设定了默认值的字段,在新插入记录时如果没有为这个字段赋值,则系统自动为其赋予此默认值。基本语法为

  属性名 数据类型 DEFAULT 默认值

  2、查看表结构

  查看表结构指查看DB中已存在的表的定义,包括DESCRIBE语句和SHOW CREATE TABLE语句。

  2.1 DESCRIBE语句

  可查看表的基本定义,包括字段名、字段数据类型、是否为主外键、默认值和额外信息。

  基本语法为

  DESCRIBE 表名;

  2.2 SHOW CREATE TABLE语句

  可查看表的详细定义,包括字段名、字段数据类型、完整性约束条件等定义时的信息,以及默认的存储引擎和字符编码。同样可用\G结尾代替;使得显示结果更美观。

  3、修改表

  修改表是指修改数据库中已存在的表的定义。

  通过Alter Table语句来修改表,包括修改表名、修改字段数据类型、修改字段名、增加字段、删除字段、修改字段的排列位置、更改默认存储引擎和删除表的外键约束等。

  3.1 修改表名

  语法为

  ALTER TABLE 旧表名 RENAME [TO] 新表名;

  其中To是可选参数,其是否在语句中出现不会影响语句的执行。

  3.2 修改字段名

  基本语法为

  ALTER TABLE 表名 Change 旧属性名 新属性名 新数据类型;

  如果只修改字段名不修改字段数据类型,则保持新数据类型与原来一致即可。

  3.3 修改字段的数据类型

  基本语法为

  ALTER TABLE 表名 MODIFY 属性名 新数据类型;

  3.4 增加字段

  基本语法为

  ALTER TABLE 表名 ADD 属性名1 数据类型 [完整性约束条件] [FIRST | AFTER 属性名2];

  其中FIRST为可选参数,用于将新增字段设置为表的第一个字段,AFTER属性名2也为可选参数,用户将新增字段放到属性名2后面,如果这两个可选参数都不选,新增字段将默认放到表的最后一个字段。

  实际上,对于一个数据表而言,其中字段的排列顺序对表不会有什么影响,只是对于创建的人来说,将有某种直接或间接联系的字段放在一起,便于理解这个表的结构。

  3.5 增加字段

  基本语法为

  ALTER TABLE 表名 DROP 属性名;

  3.6 修改字段的排列位置

  基本语法为

  ALTER TABLE 表名 MODIFY 属性名1 数据类型 FIRST | AFTER 属性名2;

  3.7 更改表的存储引擎

  基本语法为

  ALTER TABLE 表名 ENGINE=新存储引擎名;

  如果一个表中已经存在了很多数据,最好不要轻易更改其存储引擎。

  3.8 删除表的外键约束

  即断开表与其父表之间的关联关系基本语法为

  ALTER TABLE 表名 DROP FOREIGN KEY 外键别名;

  4、删除表

  删除表会删除表中的所有数据,由于创建表时可能存在外键约束,一些表成为了与之关联的表的父表,要删除这些父表,情况比较复杂。

  4.1 删除没有被关联的普通表

  基本语法为

  DROP TABLE 表名;

  4.2 删除被关联的父表

  此时由于有外键依赖于该表,用4.1的删除语法会报错。

  删除此类父表一般有两种方法:直接先将与之关联的子表删除再删父表,或者先删除子表的外键约束再删父表,一般我们采取第二种方法。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
MySQLのストアドプロシージャとは何ですか?MySQLのストアドプロシージャとは何ですか?May 01, 2025 am 12:27 AM

ストアドプロシージャは、パフォーマンスを向上させ、複雑な操作を簡素化するためのMySQLのSQLステートメントを事前に拡大します。 1。パフォーマンスの改善:最初のコンピレーションの後、後続の呼び出しを再コンパイルする必要はありません。 2。セキュリティの改善:許可制御を通じてデータテーブルアクセスを制限します。 3.複雑な操作の簡素化:複数のSQLステートメントを組み合わせて、アプリケーションレイヤーロジックを簡素化します。

クエリキャッシュはMySQLでどのように機能しますか?クエリキャッシュはMySQLでどのように機能しますか?May 01, 2025 am 12:26 AM

MySQLクエリキャッシュの実用的な原則は、選択クエリの結果を保存することであり、同じクエリが再度実行されると、キャッシュされた結果が直接返されます。 1)クエリキャッシュはデータベースの読み取りパフォーマンスを改善し、ハッシュ値を使用してキャッシュされた結果を見つけます。 2)単純な構成、mysql構成ファイルでquery_cache_typeとquery_cache_sizeを設定します。 3)SQL_NO_CACHEキーワードを使用して、特定のクエリのキャッシュを無効にします。 4)高周波更新環境では、クエリキャッシュがパフォーマンスボトルネックを引き起こし、パラメーターの監視と調整を通じて使用するために最適化する必要がある場合があります。

他のリレーショナルデータベースでMySQLを使用することの利点は何ですか?他のリレーショナルデータベースでMySQLを使用することの利点は何ですか?May 01, 2025 am 12:18 AM

MySQLがさまざまなプロジェクトで広く使用されている理由には、次のものがあります。1。複数のストレージエンジンをサポートする高性能とスケーラビリティ。 2。使いやすく、メンテナンス、シンプルな構成とリッチツール。 3。豊富なエコシステム、多数のコミュニティとサードパーティのツールサポートを魅了します。 4。複数のオペレーティングシステムに適したクロスプラットフォームサポート。

MySQLのデータベースアップグレードをどのように処理しますか?MySQLのデータベースアップグレードをどのように処理しますか?Apr 30, 2025 am 12:28 AM

MySQLデータベースをアップグレードする手順には次のものがあります。1。データベースをバックアップします。2。現在のMySQLサービスを停止します。3。MySQLの新しいバージョンをインストールします。アップグレードプロセス中に互換性の問題が必要であり、Perconatoolkitなどの高度なツールをテストと最適化に使用できます。

MySQLに使用できるさまざまなバックアップ戦略は何ですか?MySQLに使用できるさまざまなバックアップ戦略は何ですか?Apr 30, 2025 am 12:28 AM

MySQLバックアップポリシーには、論理バックアップ、物理バックアップ、増分バックアップ、レプリケーションベースのバックアップ、クラウドバックアップが含まれます。 1. Logical BackupはMySqldumpを使用してデータベースの構造とデータをエクスポートします。これは、小さなデータベースとバージョンの移行に適しています。 2.物理バックアップは、データファイルをコピーすることで高速かつ包括的ですが、データベースの一貫性が必要です。 3.インクリメンタルバックアップは、バイナリロギングを使用して変更を記録します。これは、大規模なデータベースに適しています。 4.レプリケーションベースのバックアップは、サーバーからバックアップすることにより、生産システムへの影響を減らします。 5. Amazonrdsなどのクラウドバックアップは自動化ソリューションを提供しますが、コストと制御を考慮する必要があります。ポリシーを選択するときは、データベースサイズ、ダウンタイム許容度、回復時間、および回復ポイントの目標を考慮する必要があります。

MySQLクラスタリングとは何ですか?MySQLクラスタリングとは何ですか?Apr 30, 2025 am 12:28 AM

mysqlclusteringenhancesdatabaserobustnessnessnessnessnessnistandistributiondistributingdataacrossmultiplenodes.itesthendbenginefordatareplication andfaulttolerance、保証highavailability.setupinvolvesconfiguringmanagement、data、ssqlnodes、carefulmonitoringringandpe

MySQLのパフォーマンスのためにデータベーススキーマ設計を最適化するにはどうすればよいですか?MySQLのパフォーマンスのためにデータベーススキーマ設計を最適化するにはどうすればよいですか?Apr 30, 2025 am 12:27 AM

MySQLのデータベーススキーマ設計の最適化は、次の手順を通じてパフォーマンスを改善できます。1。インデックス最適化:一般的なクエリ列にインデックスを作成し、クエリのオーバーヘッドのバランスをとり、更新を挿入します。 2。テーブル構造の最適化:正規化または反通常化によりデータ冗長性を削減し、アクセス効率を改善します。 3。データ型の選択:Varcharの代わりにINTなどの適切なデータ型を使用して、ストレージスペースを削減します。 4。パーティション化とサブテーブル:大量のデータボリュームの場合、パーティション化とサブテーブルを使用してデータを分散させてクエリとメンテナンスの効率を改善します。

MySQLのパフォーマンスをどのように最適化できますか?MySQLのパフォーマンスをどのように最適化できますか?Apr 30, 2025 am 12:26 AM

tooptimizemysqlperformance、soflowthesesteps:1)properindexingtospeedupqueries、2)useexplaintoanalyzeandoptimize Queryperformance、3)AductServerContingSettingStingsinginginnodb_buffer_pool_sizeandmax_connections、4)

See all articles

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール