データの種類
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.タイムタイプ
- 日付時刻
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の独自の単一行コメント:ハハハッハッハ#