検索
ホームページデータベースmysql チュートリアルMySQL所支持的数据类型与表字段约束类型的学习教程_MySQL

MySQL 数据(字段)类型
在创建表的时候,要明确定义字段对应的数据类型。MySQL 主要的数据类型分为数值类型、字符串(文本)类型、时间日期类型和其他类型几类。
数值类型
数值类型说明:

20151216143742150.png (653×259)

补充说明
在 int(integer) 系列中,只能存储整型值,且可以在后面用括号指定显示的尺寸(M),如果不指定则会默认分配。如果实际值的显示宽度大于设定值,将会显示实际值而不会截断以适应显示尺寸。如 smallint(3) 中的 3 即为显示尺寸,即显示三位的数值(不包括 - 号)
int 类型可以指定 UNSIGNED 属性,即无符号(非负),所以存储范围有两种
在 float、double 及 decimal 类型中,不能指定 UNSIGNED 属性,其显示尺寸包含了小数点精度(D),即 float(3,1) 保存范围为 -99.9 至 99.9
decimal 必须指定显示尺寸(M)和小数点精度(D),float 和 double 都是可选的
在可能涵盖取值范围的基础上,尽可能选择较小的类型以提高效率和节约存储空间,如年龄,就选择 tinyint(3) 。该原则对于字符类型同样适用
字符串(文本)类型
字符串(文本)类型说明:

20151216143801648.png (647×296)

补充说明
char 和 varcha 需要指定长度,不同的是,char 存储时总是按照指定的长度储存,而 varchar 则根据实际字符串长度再加上一个字节分配空间。
时间日期类型
时间日期类型说明:

20151216143817755.png (651×153)

提示
在 PHP 中,一般情况下对于时间都是按照 UNIX 时间戳以 int 类型存储于表中,再根据实际需要用 PHP 的时间函数进行处理,但不完全都是这样。

MySQL 表字段属性
主键
表的主键(primary key,主关键字)是表中的一个或多个字段,它的值用于惟一地标识表中的某一条记录。一个表不能有多个主关键字,并且主关键字的列不能包含空值和重复值。主关键字是可选的,并且可在 CREATE TABLE 或 ALTER TABLE 语句中定义。
语法:
PRIMARY KEY (column_name)

20151216143834718.png (658×105)

在这个表中,uid 这个字段就是该表的主键。
建立主键应该遵循的一般原则
主键应当是对用户没有意义的
永远也不要更新主键,如果主键需要更新,则说明主键应对用户无意义的原则被违反了
主键不应包含动态变化的数据,如时间戳、创建时间等
主键应当由系统自动生成
外键
在两个表的关系中,当一张表(如表A )的主关键字被包含在另一张表(如表B)中时,A 表中的主关键字便成为 B 表的外键(外关键字)。B 表称为主表,A 表称为从表。
外键主要用于保持数据一致性,完整性,避免冗余数据,使两张或多张表形成关联。

20151216143851575.png (673×107)

在这个文章评论表 comment 样例中,uid 便是外键,它是 user 表的主键。在该表中记录了用户对文章的评论,关于用户信息,只需对应 user 表的主键 uid 即可。在数据一致性方面,比如当 comment 表没有 uid 为 3 的评论后,才可以删除 user 表中 uid = 3 的记录。
自动递增
在 MySQL 数据库中,提供了字段的自动递增(AUTO_INCREMENT)属性,即将该字段设置为 int 类的数据类型,每向数据表添加一条记录,该字段的值会自动加1 。设置了自动递增后,该列不用再设置默认值和唯一性约束。
例子:


uid mediumint(8) NOT NULL auto_increment


非空
因为逻辑上的一些要求,有时候需要把字段属性设置为非空(NOT NULL),如记录用户名、密码等非空值的字段。
设置为非空的列,虽然不是必须,但最好设定一个默认值,以防止意外的错误和减少增加数据时的 SQL 语句复杂度。当向数据表增加数据记录时,如果设置为非空的字段不写入数据,系统将会以默认值写入。
例子:


username char(20) NOT NULL default ''
//将NOT NULL 改为 NULL
ALTER TABLE user CHANGE username username char(20) NULL


提示
在上面的例子中 CHANGE 后面 username username ,前者表示更改的字段名,后者表示新字段名。在本例中,只更改了字段属性为 NULL ,不涉及到字段名称的更改,因此二者一致。

与非空相反,可以将字段属性设置为空,如果字段属性没有设置为非空(NOT NULL)属性,那么系统默认就是可以为空(NULL)值的。
将NULL 改为 NOT NULL:


ALTER TABLE user CHANGE username username char(20) NOT NULL DEFAULT ''


唯一性约束
有时候某些字段数据不允许重复,如用户名,这时候就需要增加唯一性约束(UNIQUE)。
语法:


UNIQUE (column_name)
//给表字段增加 UNIQUE
ALTER TABLE tb_name ADD UNIQUE (column_name)
//去掉 UNIQUE
ALTER TABLE tb_name DROP INDEX column_name


主键(PRIMARY KEY)会强制性的拥有自动定义的唯一性约束,不用额外定义 UNIQUE 。
索引
数据库索引(index)是为了增加查询速度而对字段附加的一种标识。我们对表的某些可能需要经常查询的字段建立适当的索引,那么在查询该字段数据时,便会显著的加快查询速度。
语法:
KEY key_name (column_name)
KEY 后面的字符为索引名称,括号内为建立索引的字段名。
改进后的建表 SQL


CREATE TABLE user (
  uid mediumint(8) unsigned NOT NULL auto_increment,
  username char(15) NOT NULL default '',
  password char(32) NOT NULL default '',
  email varchar(40) NOT NULL default '',
  regdate int(10) unsigned NOT NULL default '0',
  PRIMARY KEY (uid),
  UNIQUE KEY username (username),
  KEY email (email)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;


补充说明
在建表语句正文后面还附加了建表的其它几个属性:
ENGINE:表示存储引擎类型,分为 MyISAM 和 InnoDB 两种类型。MyISAM 不支持事务处理等高级处理,强调表的性能,执行也比 InnoDB 快。而 InnoDB 提供事务支持已经外部键等高级数据库功能,性能上比 MyISAM 差。默认为 MyISAM 类型
CHARSET:表示数据表表字符集,一般为 gbk 或 utf8 以及 big5 等,为了兼容性考虑,我们设置为 utf8 字符集
AUTO_INCREMENT:设置主键默认增长的开始数

以上就是MySQL所支持的数据类型与表字段约束类型的学习教程_MySQL的内容,更多相关内容请关注PHP中文网(www.php.cn)!


声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
MySQL:初心者が習得するための必須スキルMySQL:初心者が習得するための必須スキルApr 18, 2025 am 12:24 AM

MySQLは、初心者がデータベーススキルを学ぶのに適しています。 1.MySQLサーバーとクライアントツールをインストールします。 2。selectなどの基本的なSQLクエリを理解します。 3。マスターデータ操作:テーブルを作成し、データを挿入、更新、削除します。 4.高度なスキルを学ぶ:サブクエリとウィンドウの関数。 5。デバッグと最適化:構文を確認し、インデックスを使用し、選択*を避け、制限を使用します。

MySQL:構造化データとリレーショナルデータベースMySQL:構造化データとリレーショナルデータベースApr 18, 2025 am 12:22 AM

MySQLは、テーブル構造とSQLクエリを介して構造化されたデータを効率的に管理し、外部キーを介してテーブル間関係を実装します。 1.テーブルを作成するときにデータ形式と入力を定義します。 2。外部キーを使用して、テーブル間の関係を確立します。 3。インデックス作成とクエリの最適化により、パフォーマンスを改善します。 4.データベースを定期的にバックアップおよび監視して、データのセキュリティとパフォーマンスの最適化を確保します。

MySQL:説明されている主要な機能と機能MySQL:説明されている主要な機能と機能Apr 18, 2025 am 12:17 AM

MySQLは、Web開発で広く使用されているオープンソースリレーショナルデータベース管理システムです。その重要な機能には、次のものが含まれます。1。さまざまなシナリオに適したInnodbやMyisamなどの複数のストレージエンジンをサポートします。 2。ロードバランスとデータバックアップを容易にするために、マスタースレーブレプリケーション機能を提供します。 3.クエリの最適化とインデックスの使用により、クエリ効率を改善します。

SQLの目的:MySQLデータベースとの対話SQLの目的:MySQLデータベースとの対話Apr 18, 2025 am 12:12 AM

SQLは、MySQLデータベースと対話して、データの追加、削除、変更、検査、データベース設計を実現するために使用されます。 1)SQLは、ステートメントの選択、挿入、更新、削除を介してデータ操作を実行します。 2)データベースの設計と管理に作成、変更、ドロップステートメントを使用します。 3)複雑なクエリとデータ分析は、ビジネス上の意思決定効率を改善するためにSQLを通じて実装されます。

初心者向けのMySQL:データベース管理を開始します初心者向けのMySQL:データベース管理を開始しますApr 18, 2025 am 12:10 AM

MySQLの基本操作には、データベース、テーブルの作成、およびSQLを使用してデータのCRUD操作を実行することが含まれます。 1.データベースの作成:createdatabasemy_first_db; 2。テーブルの作成:createTableBooks(idintauto_incrementprimarykey、titlevarchary(100)notnull、authorvarchar(100)notnull、published_yearint); 3.データの挿入:InsertIntoBooks(タイトル、著者、公開_year)VA

MySQLの役割:WebアプリケーションのデータベースMySQLの役割:WebアプリケーションのデータベースApr 17, 2025 am 12:23 AM

WebアプリケーションにおけるMySQLの主な役割は、データを保存および管理することです。 1.MYSQLは、ユーザー情報、製品カタログ、トランザクションレコード、その他のデータを効率的に処理します。 2。SQLクエリを介して、開発者はデータベースから情報を抽出して動的なコンテンツを生成できます。 3.MYSQLは、クライアントサーバーモデルに基づいて機能し、許容可能なクエリ速度を確保します。

MySQL:最初のデータベースを構築しますMySQL:最初のデータベースを構築しますApr 17, 2025 am 12:22 AM

MySQLデータベースを構築する手順には次のものがあります。1。データベースとテーブルの作成、2。データの挿入、および3。クエリを実行します。まず、createdAtabaseおよびcreateTableステートメントを使用してデータベースとテーブルを作成し、InsertINTOステートメントを使用してデータを挿入し、最後にSelectステートメントを使用してデータを照会します。

MySQL:データストレージに対する初心者向けのアプローチMySQL:データストレージに対する初心者向けのアプローチApr 17, 2025 am 12:21 AM

MySQLは、使いやすく強力であるため、初心者に適しています。 1.MYSQLはリレーショナルデータベースであり、CRUD操作にSQLを使用します。 2。インストールは簡単で、ルートユーザーのパスワードを構成する必要があります。 3.挿入、更新、削除、および選択してデータ操作を実行します。 4. Orderby、Where and Joinは複雑なクエリに使用できます。 5.デバッグでは、構文をチェックし、説明を使用してクエリを分析する必要があります。 6.最適化の提案には、インデックスの使用、適切なデータ型の選択、優れたプログラミング習慣が含まれます。

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

AI Hentai Generator

AI Hentai Generator

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

ホットツール

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

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

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール