[] MySQLデータベースのデータ型

データの種類

1.整数

ここに画像を挿入説明

  • 非負の符号なしの特定の数
create table t3(
   age tinyint unsigned
);
  • 表示幅(ZEROFILL)
    十分な数字で埋め一体型ディスプレイの幅、0
create table t4(
   id int(10) zerofill primary key auto_increment,
   name char(32)
);
insert into t4 values(12345, '5个');
insert into t4 values(1234567890, '10个');
insert into t4 values(123456789012, '12个');
select * from t4;

2.フロート

ここに画像を挿入説明

ビット固定小数点はるかに長く使用:
フロート(M、D)
ダブル(M、D)
DECIMAL(M、D)
Mは、支持長の数であり、Dは小数点の後の桁の数であります

create table t5 (
   a float(10, 2),
   b double(10, 2),
   c decimal(10, 2)
);

3.文字列型

ここに画像を挿入説明
CHARとVARCHARタイプの違い

ここに画像を挿入説明

考える:
文字列は、あなたが自由にフロートのサイズを指定することができ、いつものカジュアル指よりも動作するようにそれの時間は、
それができる与えられましたか?
:いいえは、データ型がより良い、より大きなデータ型が肥大化し、収納スペースになりますではない
大きなによって占め、データ検索が遅くなり

4.列挙(列挙型)

一つの種類に使用されるデータの種類の複数の選択されたとき
、フロントエンドラジオボタン時に、列挙型が機能することができる
列挙型の利点を:1.オプション制限値
省スペース2.
3.高い動作効率を

create table t6(
   name varchar(32),
   sex enum('男','女','保密') default '保密'
);
-- 枚举类型的计数默认从1开始
insert into t6 set name='王宝强',sex=1;

コレクション(セット)

SETは、64人の異なるメンバーの最大を持つことができます。チェックボックスと同様に、あなたはどのように多くの何を選択することができます。

create table t7 (
   name varchar(32),
   hobby set('吃','睡','玩','喝','抽')
);
insert into t7 values('张三','睡,抽,玩,吃,喝');
insert into t7 values('李四','睡,抽');
  • なぜセットタイプ?使用しないで
    これ以上の空に格納された値の指数の何千もの最近のWeb開発では、マルチマーキー値を
  • そのボックスの問題?解決方法
    のチェックボックスの値を個別に設計されたテーブルへ

6.タイムタイプ

ここに画像を挿入説明

  1. 日付時刻
create table datetime_test (
   create_at datetime
);
insert into datetime_test values('2019-4-2 16:54:00');
insert into datetime_test values('2019/4/2 16:54:00');
insert into datetime_test values(now());
-- 年份最大支持4个长度
insert into datetime_test values('10000/4/2 16:54:00');  --
错误
insert into datetime_test values('9999/4/2 16:54:00');

2.time

create table time_test (
   create_at time
);
insert into time_test values('12:12:12');
insert into time_test values('100:12:12');
insert into time_test values('-100:12:12');
insert into time_test values('10 10:12:12');
-- 时间的范围是: [-838:59:59 - 838:59:59]
insert into time_test values('839:12:12'); -- 错误的

3.timestampタイムスタンプの種類

表示領域のタイムスタンプと日時タイプは同じであるが、メモリ内に同じではない
2038年1月19日11時14分07秒0:1970年1月10日の範囲0
使用タイムスタンプバイト4を示す
値をビット長のサイズのストレージ:2 *(4 * 8--1)

create table timestamp_test (
   create_time timestamp
);
insert into timestamp_test values(now());
insert into timestamp_test values('2038-1-19 11:14:07');  -
- 时间戳最大值
insert into timestamp_test values('2038-1-19 11:14:08');  -
- 错误

4.year

create table `year`(
   create_at year
);
-- 从1900年开始 - 1900+255
insert into `year` values(now());
insert into `year` values('2155'); -- 年份最大值
insert into `year` values('2156'); -- 错误

7.ブール

create table `bool`(
   cond boolean
);
insert into `bool` set cond=True;    -- 成功
insert into `bool` set cond=False;   -- 成功
insert into `bool` set cond=1;       -- 成功
insert into `bool` set cond=10;      -- 成功
insert into `bool` set cond=-1;      -- 成功
insert into `bool` set cond=0;       -- 成功
insert into `bool` set cond=0.1;     -- 成功
insert into `bool` set cond='True';  -- 失败

8列のプロパティ

挿入された値が空にできるかどうか

  • nullは:空で、デフォルトでは書き込みにではありません
  • nullでない:挿入された場合は、空ではない、タッチフィールドはエラー、nullです
create table null_test (
   id int primary key auto_increment,
   username varchar(32) not null,
   pwd varchar(16) null
);
insert into null_test values(null,null,null);
  • デフォルト
create table default_test (
   id int primary key auto_increment,
   username varchar(32) default 'admin' not null,
   pwd varchar(16) default 123456
);
insert into default_test (username) values ('admin');
  • AUTO_INCREMENT
    自動成長列
    から始まるデフォルト
    通常は主キーで使用
create table auto_inc (
   id int primary key auto_increment,
   name varchar(32)
);
insert into auto_inc (name) values ('aaa'), ('bbb'),
('ccc');
select * from auto_inc;
/* 输出:
+----+------+
| id | name |
+----+------+
| 1 | aaa |
| 2 | bbb |
| 3 | ccc |
+----+------+
*/
  • 主キー
    主キーを一意に識別する一般的な
    特性:、空にすることはできません、1つのプライマリキーを持つことができるテーブルを繰り返すことができません
-- 这里只有一个主键,这种主键叫做联合主键, 在项目中使用较少
create table double_pri_test (
   id int,
   sid int,
   primary key(id,sid)
);
insert into double_pri_test values (1, 1);
insert into double_pri_test values (1, 2);  -- 成功
insert into double_pri_test values (2, 1);  -- 成功
insert into double_pri_test values (1, 1);  -- 失败
  • 独特の
    ユニークキー、繰り返すことはしません各データ列ことを保証するために、
    メールボックスを繰り返すことはできません、電話番号を繰り返すことはできません
create table test_uniq (
   id int auto_increment primary key,
   mobile char(11) unique
);
insert into test_uniq set mobile=13999999999;
  • コメント
    フィールドの説明:参照するには、開発者、各分野の一般的な説明のために
create table test_cmt (
   ctime datetime comment '这个字段代表创建日期'
);

9. SQLのコメント

単一行コメント: -こんにちは
複数行コメント:/ * barabara * /
MySQLの独自の単一行コメント:ハハハッハッハ#

公開された116元の記事 ウォン称賛10 ビュー1358

おすすめ

転載: blog.csdn.net/weixin_44727383/article/details/104979186