国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

MySQL數(shù)據(jù)庫的數(shù)據(jù)類型和基于MySQL數(shù)據(jù)類型的綜合實例項目

這篇具有很好參考價值的文章主要介紹了MySQL數(shù)據(jù)庫的數(shù)據(jù)類型和基于MySQL數(shù)據(jù)類型的綜合實例項目。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

MySQL數(shù)據(jù)庫的數(shù)據(jù)類型和基于MySQL數(shù)據(jù)類型的綜合實例項目

1、MySQL具有的數(shù)據(jù)類型

1.1、MySQL整數(shù)類型

數(shù)值型數(shù)據(jù)類型主要用來存儲數(shù)字。MySQL的整數(shù)類型如下所示
TINYINT、SMALLINT、MEDIUMINT、INT(INTEGER)、 BIGINT。

類型名稱 說明 存儲需求
TINYINT 很小的整數(shù) 1字節(jié)
SMALLINT 小的整數(shù) 2字節(jié)
MEDIUMINT 中等大小的整數(shù) 3字節(jié)
INT 普通大小的整數(shù) 4字節(jié)
BIGINT 大整數(shù) 8字節(jié)

創(chuàng)建表tmp1,其中字段x、y、z、m、n數(shù)據(jù)類型依次為TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT,SQL語句如下:

mysql> CREATE TABLE tmp1 ( x TINYINT,  y SMALLINT,  z MEDIUMINT,  m INT,  n BIGINT );
Query OK, 0 rows affected (0.01 sec)

mysql> DESC tmp1;
+-------+-----------+------+-----+---------+-------+
| Field | Type      | Null | Key | Default | Extra |
+-------+-----------+------+-----+---------+-------+
| x     | tinyint   | YES  |     | NULL    |       |
| y     | smallint  | YES  |     | NULL    |       |
| z     | mediumint | YES  |     | NULL    |       |
| m     | int       | YES  |     | NULL    |       |
| n     | bigint    | YES  |     | NULL    |       |
+-------+-----------+------+-----+---------+-------+
5 rows in set (0.00 sec)

1.2、MySQL浮點類型和定點數(shù)

MySQL中使用浮點數(shù)和定點數(shù)來表示小數(shù)。
浮點類型:FLOAT、DOUBLE。
定點類型:DECIMAL。

類型名稱 說明 存儲需求
FLOAT 單精度浮點數(shù) 4字節(jié)
DOUBLE 雙精度浮點數(shù) 8字節(jié)
DECIMAL(M,D) 定點數(shù) M+2字節(jié)

DECIMAL的存儲空間不是固定的,而是由M和D決定的。

創(chuàng)建表tmp2,其中字段x、y、z數(shù)據(jù)類型依次為FLOAT(5,1)、DOUBLE(5,1)和DECIMAL(5,1),向表中插入數(shù)據(jù)5.12、5.15和5.123,SQL語句如下:

mysql> CREATE TABLE tmp2 ( x FLOAT(5,1),  y DOUBLE(5,1),  z DECIMAL(5,1) );
Query OK, 0 rows affected, 2 warnings (0.01 sec)

向tmp2表中插入數(shù)據(jù):

mysql> INSERT INTO tmp2 VALUES(5.12, 5.15, 5.123);
Query OK, 1 row affected, 1 warning (0.01 sec)

查看警告信息

mysql> SHOW WARNINGS;
+-------+------+----------------------------------------+
| Level | Code | Message                                |
+-------+------+----------------------------------------+
| Note  | 1265 | Data truncated for column 'z' at row 1 |
+-------+------+----------------------------------------+
1 row in set (0.00 sec)

可以看到定點數(shù)被階段了,發(fā)出警告
查看如下:

mysql> SELECT * FROM tmp2;
+------+------+------+
| x    | y    | z    |
+------+------+------+
|  5.1 |  5.2 |  5.1 |
+------+------+------+
1 row in set (0.00 sec)

1.3、MySQL日期與時間類型

MySQL中表示日期和時間的數(shù)據(jù)類型有

YEAR、TIME 、DATE、DATETIME和TIMESTAMP。
類型名稱 日期格式 日期范圍 存儲需求
YEAR YYYY 1901~2155 1字節(jié)
TIME HH:MM:SS -838:59:59~838:59:59 3字節(jié)
DATE YYYY-MM-DD 1000-01-01~9999-12-3 3字節(jié)
DATETIME YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00~9999-12-31 23:59:59 8字節(jié)
TIMESTAMP YYYY-MM-DD HH:MM:SS 1970-01-01 00:00:1 UTC~2038-01-19 03:14:07 UTC 4字節(jié)

1、YEAR

存儲格式:
存儲方式(YEAR) 范圍 注意點
4位字符串或數(shù)字 ‘1901’~’2155’ 輸入‘2022’或2022,插入到數(shù)據(jù)庫的值都為2022

2位字符串	‘00~99’	 ‘00~69’對應2000~2069;‘70~99’對應1970~1999;
2位數(shù)字	1~99	1~69對應2001~2069;70~99對應1970~19990對應0000

創(chuàng)建數(shù)據(jù)表tmp3,定義數(shù)據(jù)類型為YEAR的字段y,向表中插入值2010,’2010’,’2166’,SQL語句如下:
首先創(chuàng)建表tmp3:

mysql> CREATE TABLE tmp3(  y YEAR );
Query OK, 0 rows affected (0.01 sec)

向表中插入數(shù)據(jù):

mysql> INSERT INTO tmp3 values(2010),('2010');
Query OK, 2 rows affected (0.01 sec)
Records: 2  Duplicates: 0  Warnings: 0

再次向表中插入數(shù)據(jù):

mysql> INSERT INTO tmp3 values ('2166');
ERROR 1264 (22003): Out of range value for column 'y' at row 1

mysql> SHOW WARNINGS;
+-------+------+--------------------------------------------+
| Level | Code | Message                                    |
+-------+------+--------------------------------------------+
| Error | 1264 | Out of range value for column 'y' at row 1 |
+-------+------+--------------------------------------------+
1 row in set (0.00 sec)SELECT * FROM tmp3;

2166超過了最大取值:2155,所以會有Out of range value for column ‘y’ at row 1的錯誤。

查看數(shù)據(jù)表tmp3中的數(shù)據(jù)表

mysql> SELECT * FROM tmp3;
+------+
| y    |
+------+
| 2010 |
| 2010 |
+------+
2 rows in set (0.00 sec)

可以看到2010和‘2010’都轉換成了2010。

向tmp3表中y字段插入2位字符串表示的YEAR值,分別為’0’、’00’、’77’和’10’,SQL語句如下:

向表中插入數(shù)據(jù):

mysql> INSERT INTO tmp3 values('0'),('00'),('77'),('10');
Query OK, 4 rows affected (0.01 sec)
Records: 4  Duplicates: 0  Warnings: 0

查看數(shù)據(jù)表tmp3中的數(shù)據(jù)表:

mysql> SELECT * FROM tmp3;
+------+
| y    |
+------+
| 2010 |
| 2010 |
| 2000 |
| 2000 |
| 1977 |
| 2010 |
+------+
6 rows in set (0.00 sec)

可以看到‘0’,‘00’轉換成了2000,‘77’轉換成了1977,‘10’轉換成了2010。

向tmp3表中y字段插入2位數(shù)字表示表示的YEAR值,分別為0、75和13,SQL語句如下:
向表中插入數(shù)據(jù):

mysql> INSERT INTO tmp3 values(0),(75),(13);
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0

查看數(shù)據(jù)表tmp3中的數(shù)據(jù)表:

SELECT * FROM tmp3;
mysql> SELECT * FROM tmp3;
+------+
| y    |
+------+
| 2010 |
| 2010 |
| 2000 |
| 2000 |
| 1977 |
| 2010 |
| 0000 |
| 1975 |
| 2013 |
+------+
9 rows in set (0.00 sec)

可以看到0轉換成了0000,75轉換成了1975,13轉換成了2013。

2、TIME

存儲格式:
存儲方式(TIME) 范圍 注意點
‘HH:MM:SS -838:59:59~838:59:59 ‘HHMMSS’類型的字符串被理解為:‘HH:MM:SS’;’D HH:MM:SS’的D為0~34之間,為小時保存—》‘D*24+H’
創(chuàng)建數(shù)據(jù)表tmp4,定義數(shù)據(jù)類型為TIME的字段t,向表中插入值’10:05:05’,’23:23’,’2 10:10’,’3 02’,’10’,SQL語句如下:
首先創(chuàng)建表tmp4,

mysql> CREATE TABLE tmp4( t TIME );
Query OK, 0 rows affected (0.01 sec)

向表中插入數(shù)據(jù):

INSERT INTO tmp4 values('10:05:05 '), ('23:23'), ('2 10:10'), ('3 02'),('10');
mysql> INSERT INTO tmp4 values('10:05:05 '), ('23:23'), ('2 10:10'), ('3 02'),('10');
Query OK, 5 rows affected, 1 warning (0.00 sec)
Records: 5  Duplicates: 0  Warnings: 1

查看結果:

mysql> SELECT * FROM tmp4;
+----------+
| t        |
+----------+
| 10:05:05 |
| 23:23:00 |
| 58:10:00 |
| 74:00:00 |
| 00:00:10 |
+----------+
5 rows in set (0.00 sec)

向表tmp4中插入值’101112’,111213,’0’,107010,SQL語句如下:
向表中插入數(shù)據(jù):

mysql> INSERT INTO tmp4 values('101112'),(111213),( '0');
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0

再向表中插入數(shù)據(jù):

mysql> INSERT INTO tmp4 values ( 107010);
ERROR 1292 (22007): Incorrect time value: '107010' for column 't' at row 1
mysql> show warnings;
+-------+------+--------------------------------------------------------+
| Level | Code | Message                                                |
+-------+------+--------------------------------------------------------+
| Error | 1292 | Incorrect time value: '107010' for column 't' at row 1 |
+-------+------+--------------------------------------------------------+
1 row in set (0.00 sec)

可以看到插入的時間不對會報錯。

3、DATE

DATE類型用在僅需要日期值時,沒有時間部分,在存儲時需要3字節(jié)。日期格式為’YYYY-MM-DD’—》YYYY表示年,MM表示月,DD表示日。在給Date類型的字段賦值時,可以使用字符串類型或者數(shù)字類型的數(shù)據(jù)插入,只要符合DATE的日期格式即可。
(1)、以‘YYYY-MM-DD’或者‘YYYYMMDD’字符串格式表示的日期,取值范圍為“1000-01-01’~ 9999-12-3’。例如,輸入‘2022-08-01’ 或者‘20220801’,期都為2022-08-01。
(2)、以‘YY-MM-DD’ 或者’YYMMDD’’ 字符串格式表示的日期,在這里YY表示兩位的年值。Mysql使用以下規(guī)則解釋兩位年值:‘0069’范圍的年值轉換為‘2000 2069’;‘70~ 99’范圍的年值轉換為‘1970~ 1999’。例如,輸入‘22-08-01’,插入數(shù)據(jù)庫的日期為2022-08-01; 輸入‘991231’,插入數(shù)據(jù)的日期為1999-12-31。
(3)、以YY-MM-DD或者YYMMDD數(shù)字格式表示的日期,與前面相似,0069范圍的年值轉換為2000 2069,70~ 99范圍的年值轉換為1970~1999。例如,輸入12-12-31 插入數(shù)據(jù)庫的日期為2012-12-31;輸入981231,插入數(shù)據(jù)的日期為1998-12-31。
(4)、使用CURRENT DATE或者NOW(),插入當前系統(tǒng)日期。

創(chuàng)建數(shù)據(jù)表tmp5,定義數(shù)據(jù)類型為DATE的字段d,向表中插入“YYYY-MM-DD”和“YYYYMMDD”字符串格式日期,SQL語句如下:
首先創(chuàng)建表tmp5:

mysql> CREATE TABLE tmp5(d DATE);
Query OK, 0 rows affected (0.01 sec)

向表中插入“YYYY-MM-DD”和“YYYYMMDD”格式日期:

mysql> INSERT INTO tmp5 values('2022-08-01'),('19990108'),('20220610');
Query OK, 3 rows affected (0.01 sec)
Records: 3  Duplicates: 0  Warnings: 0

查看插入結果:

mysql> SELECT * FROM tmp5;
+------------+
| d          |
+------------+
| 2022-08-01 |
| 1999-01-08 |
| 2022-06-10 |
+------------+
3 rows in set (0.00 sec)

向tmp5表中插入“YY-MM-DD”和“YYMMDD”字符串格式日期,SQL語句如下:
向表中插入“YY-MM-DD”和“YYMMDD”格式日期:

mysql> INSERT INTO tmp5 values ('99-09-09'),( '990909'), ('000101') ,('111111');
Query OK, 4 rows affected (0.00 sec)
Records: 4  Duplicates: 0  Warnings: 0

查看插入結果:

SELECT * FROM tmp5;
mysql> SELECT * FROM tmp5;
+------------+
| d          |
+------------+
| 2022-08-01 |
| 1999-01-08 |
| 2022-06-10 |
| 1999-09-09 |
| 1999-09-09 |
| 2000-01-01 |
| 2011-11-11 |
+------------+
7 rows in set (0.00 sec)

向tmp5表中插入YY-MM-DD和YYMMDD數(shù)字格式日期,SQL語句如下:
向表中插入YY-MM-DD和YYMMDD數(shù)字格式日期:

mysql> INSERT INTO tmp5 values(990909), ( 000101) ,( 111111);
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0

查看插入結果:

SELECT * FROM tmp5;
mysql> SELECT * FROM tmp5;
+------------+
| d          |
+------------+
| 1999-09-09 |
| 2000-01-01 |
| 2011-11-11 |
+------------+
3 rows in set (0.00 sec)

向tmp5表中插入系統(tǒng)當前日期,SQL語句如下:
向表中插入系統(tǒng)當前日期:

mysql> INSERT INTO tmp5 values( CURRENT_DATE() ),( NOW() );
Query OK, 2 rows affected, 1 warning (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 1

查看插入結果:

SELECT * FROM tmp5;
mysql> SELECT * FROM tmp5;
+------------+
| d          |
+------------+
| 1999-09-09 |
| 2000-01-01 |
| 2011-11-11 |
| 2022-08-05 |
| 2022-08-05 |
+------------+
5 rows in set (0.00 sec)

4、DATETIME

DATETIME類型用于需要同時包含日期和時間信息的值,在存儲時需要8字節(jié)。日期格式為’YYYY-MM-DD HH:MM:SS’。其中,YYYY表示年,MM表示月,DD表示日,HH表示小時,MM表示分鐘,SS表示秒。在給DATETIME類型的字段賦值時,可以使用字符串類型或者數(shù)字類型的數(shù)據(jù)插入,只要符合DATETIME的日期格式即可。

(1)、以’YYYY-MM-DD HH:MM:SS’ 或者’YYYYMMDDHHMMSS’字符串格式表示的值,取值范圍為‘1000-01-0100:00:00’~‘ 9999-12-323:59:59’。例如,輸入‘2019-12-31 05: 05: 05’或者20191231050505’ ,插入數(shù)據(jù)庫的DATETIME值都為2019-12-31 05: 05: 05。
(2)、以’YY-MM-DD HH:MM:SS’ 或者‘YYMMDDHHMMSS’ 字符串格式表示的日期,在這里YY表示兩位的年值。與前面相同,‘00~69’ 范圍的年值轉換為“2000~2069’ ,‘ 7099’范圍的年值轉換為‘19701999’。例如,輸入‘19-12-31 05:05:05’,插入數(shù)據(jù)庫的DATETIME為2019-12-31 05:05:05;輸入‘990505050505’ ,插入數(shù)據(jù)庫的DATETIME為1999-05-05:05:05:
(3)以YYYYMMDDHHMMSS或者YYMMDDHHMMSS數(shù)字格式表示的日期和時間。例如,輸入20191231050505,插入數(shù)據(jù)庫的DATETIME為2019-12-31 05:05:05;輸入991231050505,插入數(shù)據(jù)的DATETIME為1999-12-31 05: 05:05。

創(chuàng)建數(shù)據(jù)表tmp6,定義數(shù)據(jù)類型為DATETIME的字段dt,向表中插入“YYYY-MM-DD HH:MM:SS”和“YYYYMMDDHHMMSS”字符串格式日期和時間值,SQL語句如下:
首先創(chuàng)建表tmp6:

mysql> CREATE TABLE tmp6(  dt DATETIME );
Query OK, 0 rows affected (0.01 sec)

向表中插入“YYYY-MM-DD HH:MM:SS”和“YYYYMMDDHHMMSS”格式日期:

mysql> INSERT INTO tmp6 values('1998-08-08 08:08:08'),('19980808080808'),('20101010101010');
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0

查看插入結果:

mysql> SELECT * FROM tmp6;
+---------------------+
| dt                  |
+---------------------+
| 1998-08-08 08:08:08 |
| 1998-08-08 08:08:08 |
| 2010-10-10 10:10:10 |
+---------------------+
3 rows in set (0.00 sec)

向tmp6表中插入“YY-MM-DD HH:MM:SS”和“YYMMDDHHMMSS”字符串格式日期和時間值,SQL語句如下:
向表中插入“YY-MM-DD HH:MM:SS”和“YYMMDDHHMMSS”格式日期:

mysql> INSERT INTO tmp6 values('98-12-09 09:09:09'),('981209090909'),('121010101010');
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0

查看插入結果:

mysql> SELECT * FROM tmp6;
+---------------------+
| dt                  |
+---------------------+
| 1998-08-08 08:08:08 |
| 1998-08-08 08:08:08 |
| 2010-10-10 10:10:10 |
| 1998-12-09 09:09:09 |
| 1998-12-09 09:09:09 |
| 2012-10-10 10:10:10 |
+---------------------+
6 rows in set (0.00 sec)

向tmp6表中插入YYYYMMDDHHMMSS 和YYMMDDHHMMSS數(shù)字格式日期和時間值,SQL語句如下:
向表中插入YYYYMMDDHHMMSS和YYMMDDHHMMSS數(shù)字格式日期和時間:

mysql> INSERT INTO tmp6 values(19951008060606), (101016105030);
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0

查看插入結果:

SELECT * FROM tmp6;
mysql> SELECT * FROM tmp6;
+---------------------+
| dt                  |
+---------------------+
| 1998-08-08 08:08:08 |
| 1998-08-08 08:08:08 |
| 2010-10-10 10:10:10 |
| 1998-12-09 09:09:09 |
| 1998-12-09 09:09:09 |
| 2012-10-10 10:10:10 |
| 1995-10-08 06:06:06 |
| 2010-10-16 10:50:30 |
+---------------------+
8 rows in set (0.00 sec)

向tmp6表中插入系統(tǒng)當前日期和時間值,SQL語句如下:
向表中插入系統(tǒng)當前日期:

mysql> INSERT INTO tmp6 values( NOW() );
Query OK, 1 row affected (0.01 sec)

查看插入結果:

SELECT * FROM tmp6;
mysql> SELECT * FROM tmp6;
+---------------------+
| dt                  |
+---------------------+
| 1998-08-08 08:08:08 |
| 1998-08-08 08:08:08 |
| 2010-10-10 10:10:10 |
| 1998-12-09 09:09:09 |
| 1998-12-09 09:09:09 |
| 2012-10-10 10:10:10 |
| 1995-10-08 06:06:06 |
| 2010-10-16 10:50:30 |
| 2022-08-05 15:15:39 |
+---------------------+
9 rows in set (0.00 sec)

5、TIMESTAMP

TIMESTAMP的顯示格式與DATETIME相同,顯示寬度固定在19個字符,日期格式為YYYY-MM-DD HH:MM:SS, 在存儲時需要4字節(jié)。TIMESTAMP 列的取值范圍小于DATETIME的取值范圍:‘1970-01-01 00:00:01’ UTC~‘2038-01-19 03:14:07’UTC.其中,UTC (Coordinated
Universal Time)為世界標準時間,因此在插入數(shù)據(jù)時,要保證在合法的取值范圍內。
創(chuàng)建數(shù)據(jù)表tmp7,定義數(shù)據(jù)類型為TIMESTAMP的字段ts,向表中插入值’19950101010101’,’950505050505’,’1996-02-02 02:02:02’,’97@03@03 03@03@03’,121212121212,NOW(),SQL語句如下:

mysql> CREATE TABLE tmp7( ts TIMESTAMP);
Query OK, 0 rows affected (0.01 sec)
mysql> INSERT INTO tmp7 values ('19950101010101'),
    -> ('950505050505'),
    -> ('1996-02-02 02:02:02'),
    -> ('97@03@03 03@03@03'),
    -> (121212121212),
    -> ( NOW() );
Query OK, 6 rows affected, 1 warning (0.00 sec)
Records: 6  Duplicates: 0  Warnings: 1

查看插入結果:

mysql> SELECT * FROM tmp7;
+---------------------+
| ts                  |
+---------------------+
| 1995-01-01 01:01:01 |
| 1995-05-05 05:05:05 |
| 1996-02-02 02:02:02 |
| 1997-03-03 03:03:03 |
| 2012-12-12 12:12:12 |
| 2022-08-05 15:18:34 |
+---------------------+
6 rows in set (0.00 sec)

1.4、MySQL字符串與文本類型

字符串類型用來存儲字符串數(shù)據(jù),除了可以存儲字符串數(shù)據(jù)之外,還可以存儲其它數(shù)據(jù),比如圖片和聲音的二進制數(shù)據(jù)。
CHAR、VARCHAR、BINARY、VARBINARY
BLOB、TEXT、ENUM和SET。
MySQL支持兩類字符型數(shù)據(jù):文本字符串和二進制字符串。

文本字符串類型是指CHAR、VARCHAR、TEXT、ENUM和SET。

類型名稱 說明 存儲需求
CHAR(M) 固定長度非二進制字符串 M字節(jié),1≤M≤255
VARCHAR(M) 變長非二進制字符串 L+1字節(jié),在此L≤M和1≤M≤255
TINYTEXT 非常小的非二進制字符串 L+1字節(jié),在此L<2^8
TEXT 小的非一進制字符串 L+2字節(jié),在此L<2^16
MEDIUMTEXT 中等大小的非二進制字 符串 L+3字節(jié),在此L<2^24
LONGTEXT 大的非二進制字符串 L+4字節(jié),在此L<2^32
ENUM 枚舉類型,只能有一個枚舉字符串值 1或2字節(jié),取決于枚舉值的數(shù)目最大值為65535
SET 一個設置,字符串對象可以有零個或 多個SET成員 1、 2、3、4或8字節(jié),取決于集合成員的數(shù)量,最多為64個成員

1、CHAR

CHAR(M)為固定長度字符串,在定義時指定字符串列長。當保存時在右側填充空格,以達到指定的長度。M表示列長度,M的范圍是0-255個字符。例如,CHAR(4)定義了一個固定長度的字符串列,其包含的字符個數(shù)最大為4。當檢索到CHAR值時,尾部的空格將被刪除。

2、VARCHAR

VARCHAR(M)是長度可變的字符串,M表示最大列長度。M的范圍是0~-65535. VARCHAR的最大實際長度由最長的行的大小和使用的字符集確定,而其實際占用的空間為字符串的實際長度加1。例如,VARCHAR(50)定義了一個最大長度為 50的字符串, 如果插入的字符串只有 10個字符,則實際存儲的字符串為10個字符和一一個字 符串結束字符。VARCHAR在值保存和檢索時尾部的空格仍保留。

創(chuàng)建tmp8表,定義字段ch和vch數(shù)據(jù)類型依次為CHAR(4)、VARCHAR(4)向表中插入數(shù)據(jù)“ab ”,SQL語句如下:
創(chuàng)建表tmp8:

mysql> CREATE TABLE tmp8(
    -> ch  CHAR(4),
    -> vch  VARCHAR(4)
    -> );
Query OK, 0 rows affected (0.01 sec)

輸入數(shù)據(jù):

mysql> INSERT INTO tmp8 VALUES('ab  ', 'ab  ');
Query OK, 1 row affected (0.00 sec)

查詢結果:

mysql> SELECT concat('(', ch, ')'), concat('(',vch,')') FROM tmp8;
+----------------------+---------------------+
| concat('(', ch, ')') | concat('(',vch,')') |
+----------------------+---------------------+
| (ab)                 | (ab  )              |
+----------------------+---------------------+
1 row in set (0.00 sec)

3、TEXT

TEXT列保存非二進制字符串,如文章內容、評論等。當保存或查詢TEXT列的值時,不刪除尾部空格。Text類型分為4種: TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT.不同的TEXT類型的存儲空間和數(shù)據(jù)長度不同。

4、ENUM

ENUM是一個字符串對象, 其值為表創(chuàng)建時在列規(guī)定中枚革的一列值。 請法格式如下:
字段名ENUM(‘值1’, 值2…值n’)
其中,“字段名” 指將要定義的字段,“值 n”指枚舉列表中的第n個值。ENUM 類型的字段在取值時,只能在指定的枚舉列表中取,而且一次只能取個。 創(chuàng)建的成員中有空格時, 其尾部的空格將自動被刪除。ENUM值在內部用整數(shù)表示,并且每個枚舉值均有一個索引值:列表值所允許的成員值從1開始編號,MySQL存儲的就是這個索引編號。枚舉最多可以有65535個元素。

創(chuàng)建表tmp9,定義ENUM類型的列enm(‘first’,‘second’,‘third’),查看列成員的索引值,SQL語句如下:
首先,創(chuàng)建tmp9表:

mysql> CREATE TABLE tmp9( enm ENUM('first','second','third') );
Query OK, 0 rows affected (0.01 sec)

插入各個列值:

mysql> INSERT INTO tmp9 values('first'),('second') ,('third') , (NULL);
Query OK, 4 rows affected (0.00 sec)
Records: 4  Duplicates: 0  Warnings: 0

查看索引值:

SELECT enm, enm+0 FROM tmp9;
mysql> SELECT enm, enm+0 FROM tmp9;
+--------+-------+
| enm    | enm+0 |
+--------+-------+
| first  |     1 |
| second |     2 |
| third  |     3 |
| NULL   |  NULL |
+--------+-------+
4 rows in set (0.00 sec)

創(chuàng)建表tmp10,定義INT類型的soc字段,ENUM類型的字段level,列表值為(‘excellent’,‘good’, ‘bad’),向表tmp10中插入數(shù)據(jù)(70,‘good’)、(90,1)、(75,2)、(50,3) 、(100,‘best’),SQL語句如下:
首先,創(chuàng)建數(shù)據(jù)表:

mysql> CREATE TABLE tmp10 (soc INT, level enum('excellent', 'good','bad') );
Query OK, 0 rows affected (0.01 sec)

插入數(shù)據(jù):

mysql> INSERT INTO tmp10 values(70,'good'), (90,1),(75,2),(50,3);
Query OK, 4 rows affected (0.00 sec)
Records: 4  Duplicates: 0  Warnings: 0

再次插入數(shù)據(jù):

mysql> INSERT INTO tmp10 values (100,'best');
ERROR 1265 (01000): Data truncated for column 'level' at row 1

這里系統(tǒng)提示錯誤信息,可以看到,由于字符串值“best”不在ENUM列表中,所以對數(shù)據(jù)進行了阻止插入操作,查詢結果如下:

mysql> SELECT * FROM tmp10;
+------+-----------+
| soc  | level     |
+------+-----------+
|   70 | good      |
|   90 | excellent |
|   75 | good      |
|   50 | bad       |
+------+-----------+
4 rows in set (0.00 sec)

5、SET

SET是一個字符串對象,可以有零或多個值。SET列最多可以有64個成員,其值為表創(chuàng)建時規(guī)定的一列值。 指定包括多個SET成員的SET列值時,各成員之間用逗號()間隔開。語法格式如

SET('值1',2'.....值n')

與ENUM類型相同,SET值在內部用整數(shù)表示,列表中每一個值都有一個索引編號。 當創(chuàng)建表時,SET 成員值的尾部空格將自動被刪除。與ENUM類型不同的是,ENUM類型的字段只能從定義的列值中選擇一個值插入,而SET類型的列可從定義的列值中選擇多個字符的聯(lián)合。如果插入SET字段中列值有重復,則MySQL自動刪除重復的值:插入SET字段的值的順序并不重要,MySQL會在存入數(shù)據(jù)庫時按照定義的順序顯示;如果插入了不正確的值,默認情況下,MySQL將忽視這些值,并給出警告。
創(chuàng)建表tmp11,定義SET類型的字段s,取值列表為(‘a’, ‘b’, ‘c’, ‘d’),插入數(shù)據(jù)(‘a’),(‘a,b,a’),(‘c,a,d’),(‘a,x,b,y’),SQL語句如下:
首先創(chuàng)建表tmp11:

mysql> CREATE TABLE tmp11 ( s SET('a', 'b', 'c', 'd'));
Query OK, 0 rows affected (0.01 sec)

插入數(shù)據(jù):

mysql> INSERT INTO tmp11 values('a'),( 'a,b,a'),('c,a,d');
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0

再次插入數(shù)據(jù):

mysql> INSERT INTO tmp11 values ('a,x,b,y');
ERROR 1265 (01000): Data truncated for column 's' at row 1

由于插入了SET列不支持的值,因此MySQL給出錯誤提示。

查看結果:

mysql> SELECT * FROM tmp11;
+-------+
| s     |
+-------+
| a     |
| a,b   |
| a,c,d |
+-------+
3 rows in set (0.00 sec)

1.5、MySQL二進制類型

前面講解了存儲文本的字符串類型,這一節(jié)將講解MySQL中存儲二進制數(shù)據(jù)的數(shù)據(jù)類型
BIT、BINARY、VARBINARY、TINYBLOB、
BLOB、MEDIUMBLOB、LONGBLOB,

類型名稱 說明 存儲需求
BIT(M) 位字段類型 大約(M+7)/8字節(jié)
BINARY(M) 固定長度二進制字符串 M字節(jié)
VARBINARY(M) 可變長度二進制字符串 M+1字節(jié)
TINYBLOB(M) 非常小的BLOB L+1字節(jié),在此L<2^8
BLOB(M) 小BLOB L+2字節(jié),在此L<2^16
MEDIUMBLOB(M) 中等大小的BLOB L+3字節(jié),在此L<2^24
LONGBLOB(M) 非常大的BLOB L+4字節(jié),在此L<2^32

1、BIT類型

BIT類型是位字段類型。M表示每個值的位數(shù),范圍為1~64。如果M被省略,默認為1。如果為BIT(M)列分配的值的長度小于M位,
就在值的左邊用0填充。例如,為BIT(6)列分配一個值b’101’,其效果與分配b0001相同。BIT 數(shù)據(jù)類型用來保存位字段值。例如,以二進制的形式保存數(shù)據(jù)13 (13的二進制形式為1101),在這里需要位數(shù)至少為4位的BIT類型,即可以定義列類型為BIT(4),大于二進制1111的數(shù)據(jù)是不能插入BIT(4)類型的字段中的。

創(chuàng)建表tmp12,定義BIT(4)類型的字段b,向表中插入數(shù)據(jù)2、9、15、16。
首先創(chuàng)建表tmp12,SQL語句如下:

mysql> CREATE TABLE tmp12( b BIT(4) );
Query OK, 0 rows affected (0.01 sec)

插入數(shù)據(jù):

mysql> INSERT INTO tmp12 VALUES(2), (9), (15);
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0

查詢插入結果:

mysql> SELECT BIN(b+0) FROM tmp12;
+----------+
| BIN(b+0) |
+----------+
| 10       |
| 1001     |
| 1111     |
+----------+
3 rows in set (0.00 sec)

2、 BINARY和VARBINARY類型

BINARY和VARBINARY類型類似于CHAR和VARCHAR,不同的是它們包含二進制字節(jié)
字符串。其使用的語法格式如下:

列名稱BINARY (M)或者VARBINARY (M)

BINARY類型的長度是固定的,指定長度之后,不足最大長度的,將在它們右邊填充‘\0’齊以達到指定長度。例如:指定列數(shù)據(jù)類型為BINARY(3),當插入‘a’時,存儲的內容實際為“a\0\0",當插入“ab” 時,實際存儲的內容為“ab\0”,不管存儲的內容是否達到指定的長度,其存儲空間

VARBINARY類型的長度是可變的,指定好長度之后,其長度可以在0到最大值之間。例如: 指定列數(shù)據(jù)類型為VARBINARY(20),如果插入的值的長度只有10,則實際存儲空間為10加1,即實際占用的空間為字符串的實際長度加1。

創(chuàng)建表tmp13,定義BINARY(3)類型的字段b和VARBINARY(3)類型的字段vb,并向表中插入數(shù)據(jù)’5’,比較兩個字段的存儲空間。
首先創(chuàng)建表tmp13,輸入SQL語句如下:

mysql> CREATE TABLE tmp13(
    -> b binary(3),
    -> vb varbinary(30)
    -> );
Query OK, 0 rows affected (0.01 sec)

插入數(shù)據(jù):

mysql> INSERT INTO tmp13 VALUES(5,5);
Query OK, 1 row affected (0.00 sec)

查看兩個字段存儲數(shù)據(jù)的長度:

mysql> SELECT length(b), length(vb) FROM tmp13;
+-----------+------------+
| length(b) | length(vb) |
+-----------+------------+
|         3 |          1 |
+-----------+------------+
1 row in set (0.00 sec)

mysql> SELECT b,vb,b = '5', b='5\0\0',vb='5',vb = '5\0\0' FROM tmp13;
+------------+------------+---------+-----------+--------+--------------+
| b          | vb         | b = '5' | b='5\0\0' | vb='5' | vb = '5\0\0' |
+------------+------------+---------+-----------+--------+--------------+
| 0x350000   | 0x35       |       0 |         1 |      1 |            0 |
+------------+------------+---------+-----------+--------+--------------+
1 row in set (0.00 sec)

3、BLOB類型

BLOB是一個二進制大對象,用來存儲可變數(shù)量的數(shù)據(jù)。BLOB類型分為4種: TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB,它們可容納值的最大長度不同,如下所示:

數(shù)據(jù)類型 存儲范圍
TINYBLOB 最大長度為255 (2^8-1) B
BLOB 最大長度為65535 (2^6-1) B
MEDIUMBLOB 最大長度為16777215 (2^24-1) B
LONGBLOB 最大長度為4294967295 (2^32 -1) B

BLOB列存儲的是二進制字符串,
TEXT列存儲的是非二進制字符串。
BLOB列沒有字符集,并且排序和比較基于列值字節(jié)的數(shù)值;
TEXT列有一個字符集,并且根據(jù)字符集對值進行排序和比較。

2、 如何選擇數(shù)據(jù)類型

2.1、MySQL整數(shù)與浮點數(shù)的選擇

如果不需要小數(shù)部分,就使用整數(shù)來保存數(shù)據(jù):如果需要表示小數(shù)部分,就使用浮點數(shù)類型。對于浮點數(shù)據(jù)列,存入的數(shù)值會對該列定義的小數(shù)位進行四舍五入。例如,假設列的值的范圍為1~99999,若使用整數(shù),則MEDIUMINT UNSIGNED是最好的類型;若需要存儲小數(shù),則使用FLOAT類型。浮點類型包括FLOAT和DOUBLE類型。DOUBLE類型精度比FLOAT類型高,因此要求存儲精度較高時應選擇DOUBLE類型。

2.2、MySQL浮點數(shù)與定點數(shù)的選擇

浮點數(shù)FLOAT、DOUBLE相對于定點數(shù)DECIMAL的優(yōu)勢是:在長度一定的情況下, 浮點數(shù)能表示更大的數(shù)據(jù)范圍。由于浮點數(shù)容易產生誤差,因此對精確度要求比較高時,建議使用DECIMAL來存儲。DECIMAL在MySQL中是以字符串存儲的,用于定義貨幣等對精確度要求較高的數(shù)據(jù)。在數(shù)據(jù)遷移中,float(M,D)是 非標準SQL定義,數(shù)據(jù)庫遷移可能會出現(xiàn)問題,最好不要這樣使用。另外,兩個浮點數(shù)進行減法和比較運算時也容易出問題,因此在進行計算的時候,一定要小心。進行數(shù)值比較時,最好使用DECIMAL類型。

2.3、MySQL日期與時間類型的選擇

MySQL對于不同種類的日期和時間有很多數(shù)據(jù)類型,比如YEAR和TIME。如果只需要記錄年份,則使用YEAR類型即可;如果只記錄時間,則使用TIME類型。如果同時需要記錄日期和時間,則可以使用TIMESTAMP或者DATETIME類型。由于TIMESTAMP列的取值范圍小于DATETIME 的取值范圍,因此存儲范圍較大的日期最好使用
DATETIME.TIMESTAMP也有一個DATETIME不具備的屬性。默認的情況下,當插入一條記錄但并沒有指定TIMESTAMP這個列值時,MySQL會把TIMESTAMP列設為當前的時間。因此當需要插入記錄的同時插入當前時間時,使用TMESTAMP是方便的。另外,TIMESTAMP 在空間上比DATETIME更有效。

2.4、MySQL的CHAR和VARCHAR之間的選擇

CHAR是固定長度字符,VARCHAR 是可變長度字符。CHAR 會自動刪除插入數(shù)據(jù)的尾部空格,VARCHAR 不會刪除尾部空格。CHAR是固定長度,所以它的處理速度比VARCHAR的速度要快,但是它的缺點是浪費存儲存儲引擎對于選擇CHAR和VARCHAR的影響:對于MyISAM存儲引擎:最好使用固定長度的數(shù)據(jù)列代替可變長度的數(shù)據(jù)列。這樣可以使整個表靜態(tài)化,從而使數(shù)據(jù)檢索更快,用空間換時間。
對于InnoDB存儲引擎:使用可變長度的數(shù)據(jù)列,因為InnoDB數(shù)據(jù)表的存儲格式不分固定長度和可變長度,因此使用CHAR不一定比使用VARCHAR更好,但由于VARCHAR是按照實際的長度存儲的,比較節(jié)省空間,所以對磁盤I/O和數(shù)據(jù)存儲總量比較好。

2.5、MySQL的ENUM和SET的選擇

ENUM只能取單值,它的數(shù)據(jù)列表是一個枚舉集合。 它的合法取值列表最多 允許有65535個成員。因此,在需要從多個值中選取一個時, 可以使用ENUM。比如:性別字段適合定義為ENUM類型,每次只能從‘男’或‘女’中取一個值。SET可取多值。它的合法取值列表最多允許有64個成員??兆址彩且粋€合法的SET值。在需要取多個值的時候,適合使用SET類型,比如要存儲一個人的興趣愛好,最好使用SET類型。ENUM和SET的值是以字符串形式出現(xiàn)的,但在內部,MySQL 是以數(shù)值的形式存儲它們的。

2.6、MySQL的BLOB和TEXT的選擇

BLOB是二進制字符串,TEXT是非二進制字符串,兩者均可存放大容量的信息。BLOB 主要
存儲圖片、音頻信息等,而TEXT只能存儲純文本文件。

3、綜合案例-MySQL數(shù)據(jù)庫的數(shù)據(jù)類型的使用

1、案例要求

創(chuàng)建數(shù)據(jù)庫myData,按照下面數(shù)據(jù)表格的要求創(chuàng)建數(shù)據(jù)表:myTable。
myTable表結構

字段名 數(shù)據(jù)類型 主鍵 外鍵 非空 唯一 自增
myInt INT(10)
myFloat FLOAT(5,2)
myTime TIME
myChar CHAR(10)
myBinary binary(5)

通過MySQL數(shù)據(jù)庫的數(shù)據(jù)類型的使用,來達到掌握有關MySQL數(shù)據(jù)庫的數(shù)據(jù)類型使用的能力。其具體要求如下所示:
1、創(chuàng)建數(shù)據(jù)庫myData
2、創(chuàng)建數(shù)據(jù)表myTable
3、向數(shù)據(jù)表myTable插入INT類型數(shù)據(jù)
4、向數(shù)據(jù)表myTable插入FLOAT類型數(shù)據(jù)
5、向數(shù)據(jù)表myTable插入TIME類型數(shù)據(jù)
6、向數(shù)據(jù)表myTable插入CHAR類型數(shù)據(jù)
7、向數(shù)據(jù)表myTable插入BINARY類型數(shù)據(jù)
8、查詢數(shù)據(jù)表myTable的數(shù)據(jù)

2、案例實現(xiàn)過程

一、cmd環(huán)境運行MySQL語句

2.1、創(chuàng)建數(shù)據(jù)庫myData

mysql> CREATE DATABASE myData;
Query OK, 1 row affected (0.00 sec)

2.2、創(chuàng)建數(shù)據(jù)表myTable

mysql> USE myData;
Database changed
mysql> CREATE TABLE myTable
    -> (
    -> myInt INT(10),
    -> myFloat FLOAT(5,2),
    -> myTime TIME,
    -> myChar CHAR(10),
    -> myBinary BINARY(5)
    -> );
Query OK, 0 rows affected, 2 warnings (0.01 sec)

2.3、向數(shù)據(jù)表myTable插入INT類型數(shù)據(jù)

向myInt字段插入數(shù)據(jù)

mysql> INSERT INTO myTable(myInt) VALUES(666);
Query OK, 1 row affected (0.00 sec)

查詢myInt字段結果如下

mysql> SELECT myInt FROM myTable;
+-------+
| myInt |
+-------+
|   666 |
+-------+
1 row in set (0.00 sec)

2.4、向數(shù)據(jù)表myTable插入FLOAT類型數(shù)據(jù)

向myFloat字段插入數(shù)據(jù)

mysql> INSERT INTO myTable(myFloat) VALUES(6.23);
Query OK, 1 row affected (0.00 sec)

查詢myFloat字段結果如下

mysql> SELECT myFloat FROM myTable;
+---------+
| myFloat |
+---------+
|    NULL |
|    6.23 |
+---------+
2 rows in set (0.00 sec)

2.5、向數(shù)據(jù)表myTable插入TIME類型數(shù)據(jù)

向myTime字段插入數(shù)據(jù)

mysql> INSERT INTO myTable(myTime) VALUES('10:24:36');
Query OK, 1 row affected (0.00 sec)

查詢myTime字段結果如下

mysql> SELECT myTime FROM myTable;
+----------+
| myTime   |
+----------+
| NULL     |
| NULL     |
| 10:24:36 |
+----------+
3 rows in set (0.00 sec)

2.6、向數(shù)據(jù)表myTable插入CHAR類型數(shù)據(jù)

向myChar字段插入數(shù)據(jù)

mysql> INSERT INTO myTable(myChar) VALUES('CHAR');
Query OK, 1 row affected (0.00 sec)

查詢myChar字段結果如下

mysql> SELECT myChar FROM myTable;
+--------+
| myChar |
+--------+
| NULL   |
| NULL   |
| NULL   |
| CHAR   |
+--------+
4 rows in set (0.00 sec)

2.7、向數(shù)據(jù)表myTable插入BINARY類型數(shù)據(jù)

向myBinary字段插入數(shù)據(jù)

mysql> INSERT INTO myTable(myBinary) VALUES(3);
Query OK, 1 row affected (0.00 sec)

查詢myBinary字段結果如下

mysql> SELECT myBinary FROM myTable;
+--------------------+
| myBinary           |
+--------------------+
| NULL               |
| NULL               |
| NULL               |
| NULL               |
| 0x3300000000       |
+--------------------+
5 rows in set (0.00 sec)

2.8、查詢數(shù)據(jù)表myTable的數(shù)據(jù)

查詢myTable的數(shù)據(jù)結果如下

mysql> SELECT * FROM myTable;
+-------+---------+----------+--------+--------------------+
| myInt | myFloat | myTime   | myChar | myBinary           |
+-------+---------+----------+--------+--------------------+
|   666 |    NULL | NULL     | NULL   | NULL               |
|  NULL |    6.23 | NULL     | NULL   | NULL               |
|  NULL |    NULL | 10:24:36 | NULL   | NULL               |
|  NULL |    NULL | NULL     | CHAR   | NULL               |
|  NULL |    NULL | NULL     | NULL   | 0x3300000000       |
+-------+---------+----------+--------+--------------------+
5 rows in set (0.00 sec)

2.9、運行過程如下

1、登入數(shù)據(jù)庫,創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)表

MySQL數(shù)據(jù)庫的數(shù)據(jù)類型和基于MySQL數(shù)據(jù)類型的綜合實例項目

2、向數(shù)據(jù)表中插入數(shù)據(jù)和查詢數(shù)據(jù)

MySQL數(shù)據(jù)庫的數(shù)據(jù)類型和基于MySQL數(shù)據(jù)類型的綜合實例項目
MySQL數(shù)據(jù)庫的數(shù)據(jù)類型和基于MySQL數(shù)據(jù)類型的綜合實例項目

二、Navicat 軟件環(huán)境運行MySQL語句

1、新建查詢

進入Navicat軟件好,新建一個創(chuàng)建數(shù)據(jù)庫的查詢。
在查詢中編寫如下的SQL語句,如下所示。


-- 1、創(chuàng)建數(shù)據(jù)庫
CREATE DATABASE myData;

-- 2、創(chuàng)建數(shù)據(jù)表myTable
USE myData;

CREATE TABLE myTable
(
	myInt INT(10),
	myFloat FLOAT(5,2),
	myTime TIME,
	myChar CHAR(10),
	myBinary BINARY(5)
);

-- 3、向數(shù)據(jù)表myTable插入INT類型數(shù)據(jù)
-- 向myInt字段插入數(shù)據(jù)
INSERT INTO myTable(myInt) VALUES(666);

-- 查詢myInt字段
SELECT myInt FROM myTable;

-- 4、向數(shù)據(jù)表myTable插入FLOAT類型數(shù)據(jù)
-- 向myFloat字段插入數(shù)據(jù)
INSERT INTO myTable(myFloat) VALUES(6.23);

-- 查詢myFloat字段結
SELECT myFloat FROM myTable;


-- 5、向數(shù)據(jù)表myTable插入TIME類型數(shù)據(jù)
-- 向myTime字段插入數(shù)據(jù)
INSERT INTO myTable(myTime) VALUES('10:24:36');

-- 查詢myTime字段
SELECT myTime FROM myTable;


-- 6、向數(shù)據(jù)表myTable插入CHAR類型數(shù)據(jù)
-- 向myChar字段插入數(shù)據(jù)
INSERT INTO myTable(myChar) VALUES('CHAR');

-- 查詢myChar字段
SELECT myChar FROM myTable;


-- 7、向數(shù)據(jù)表myTable插入BINARY類型數(shù)據(jù)
-- 向myBinary字段插入數(shù)據(jù)
INSERT INTO myTable(myBinary) VALUES(3);

-- 查詢myBinary字段
SELECT myBinary FROM myTable;

-- 8、查詢數(shù)據(jù)表myTable的數(shù)據(jù)

SELECT * FROM myTable;


2、運行過程

運行結果如下所示:

1、創(chuàng)建數(shù)據(jù)庫

MySQL數(shù)據(jù)庫的數(shù)據(jù)類型和基于MySQL數(shù)據(jù)類型的綜合實例項目

2、創(chuàng)建數(shù)據(jù)表

MySQL數(shù)據(jù)庫的數(shù)據(jù)類型和基于MySQL數(shù)據(jù)類型的綜合實例項目

3、插入和查詢數(shù)據(jù)

MySQL數(shù)據(jù)庫的數(shù)據(jù)類型和基于MySQL數(shù)據(jù)類型的綜合實例項目
MySQL數(shù)據(jù)庫的數(shù)據(jù)類型和基于MySQL數(shù)據(jù)類型的綜合實例項目

MySQL數(shù)據(jù)庫的數(shù)據(jù)類型和基于MySQL數(shù)據(jù)類型的綜合實例項目

4、總結

本文主要介紹了MySQL數(shù)據(jù)類型:
MySQL數(shù)據(jù)類型主要有整數(shù)類型、浮點類型、定點類型、日期和時間類型、字符串類型、文本類型和二進制類型。 使讀者可以很快掌握MySQL數(shù)據(jù)類型的基本使用方法。另外還介紹了分別使用cmd環(huán)境和Navicat軟件環(huán)境中使用MySQL數(shù)據(jù)庫的數(shù)據(jù)類型的方法。文章來源地址http://www.zghlxwxcb.cn/news/detail-401785.html

到了這里,關于MySQL數(shù)據(jù)庫的數(shù)據(jù)類型和基于MySQL數(shù)據(jù)類型的綜合實例項目的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【MySQL】數(shù)據(jù)庫的數(shù)據(jù)類型

    【MySQL】數(shù)據(jù)庫的數(shù)據(jù)類型

    mysql 中的數(shù)據(jù)類型分類如下,其中紅色字體的為常用的類型: mysql 中表的建立屬性列: 列名稱 數(shù)據(jù)類型 ,例如 num int ,它與我們平時寫的語言數(shù)據(jù)類型是倒過來的! 接下來我們創(chuàng)建一個只有 tinyint 類型的表,然后分別插入 1 和 128,會發(fā)現(xiàn) 128 插入失敗,因為越界插入了,

    2024年02月04日
    瀏覽(21)
  • mysql數(shù)據(jù)庫的數(shù)據(jù)類型 -- 4

    mysql數(shù)據(jù)庫的數(shù)據(jù)類型 -- 4

    目錄 數(shù)據(jù)類型 4.1:數(shù)據(jù)類型的分類 4.2:數(shù)值類型 4.3:字符類型 4.5:enum和set類型 4.1:數(shù)據(jù)類型的分類 數(shù)值類型 描述 TINYINT [UNSIGNED] 整數(shù),占用1字節(jié) SMALLINT?[UNSIGNED]? 整數(shù),占用2字節(jié) INT [UNSIGNED]? 整數(shù),占用4字節(jié) BIGINT [UNSIGNED] 整數(shù),占用8字節(jié) FLOAT [(M, D)] [UNSIGNED] 單精度浮

    2024年02月04日
    瀏覽(23)
  • MySQL mysqldump備份數(shù)據(jù)庫(附帶實例)

    數(shù)據(jù)庫的主要作用就是對數(shù)據(jù)進行保存和維護,所以備份數(shù)據(jù)是數(shù)據(jù)庫管理中最常用的操作。為了防止數(shù)據(jù)庫意外崩潰或硬件損傷而導致的數(shù)據(jù)丟失,數(shù)據(jù)庫系統(tǒng)提供了備份和恢復策略。 保證數(shù)據(jù)安全的最重要的一個措施就是定期的對數(shù)據(jù)庫進行備份。這樣即使發(fā)生了意外,

    2024年02月13日
    瀏覽(21)
  • 基于springboot的班級綜合測評管理系統(tǒng)源碼數(shù)據(jù)庫論文

    基于springboot的班級綜合測評管理系統(tǒng)源碼數(shù)據(jù)庫論文

    目錄 1 緒論 1.1 課題研究的背景 1.2 課題研究的內容 1.3 系統(tǒng)開發(fā)的意義 1.4 初步設計方法與實施方案 1.5 本文研究內容 2 相關技術介紹 2.1 Java 技術 2.2B/S 架構 2.3 MySQL 介紹 2.4 Springboot 框架 3 系統(tǒng)需求分析 3.1 可行性分析 3.1.1 經(jīng)濟可行性分析 3.1.2 技術可行性分析 3.2 需求分析 3

    2023年04月19日
    瀏覽(27)
  • 【Mysql】數(shù)據(jù)庫第二講(數(shù)據(jù)庫中數(shù)據(jù)類型的介紹)

    【Mysql】數(shù)據(jù)庫第二講(數(shù)據(jù)庫中數(shù)據(jù)類型的介紹)

    數(shù)值越界測試: 說明: 在MySQL中,整型可以指定是有符號的和無符號的,默認是有符號的。 可以通過UNSIGNED來說明某個字段是無符號的 無符號案例: 注意 注意:盡量不使用unsigned,對于int類型可能存放不下的數(shù)據(jù),int unsigned同樣可能存放不下,與其如此,還不如設計時,將

    2024年02月09日
    瀏覽(25)
  • 綜合小區(qū)管理系統(tǒng)|基于Springboot的綜合小區(qū)管理系統(tǒng)設計與實現(xiàn)(源碼+數(shù)據(jù)庫+文檔)

    綜合小區(qū)管理系統(tǒng)|基于Springboot的綜合小區(qū)管理系統(tǒng)設計與實現(xiàn)(源碼+數(shù)據(jù)庫+文檔)

    綜合小區(qū)管理系統(tǒng)目錄 目錄 基于Springboot的綜合小區(qū)管理系統(tǒng)設計與實現(xiàn) 一、前言 二、系統(tǒng)設計 三、系統(tǒng)功能設計? 1、出入管理 2、報修管理 3、車位管理 4、公告管理 四、數(shù)據(jù)庫設計 ?五、核心代碼? 六、論文參考 七、最新計算機畢設選題推薦 八、源碼獲?。?博主介紹

    2024年03月17日
    瀏覽(29)
  • MySQL的數(shù)據(jù)庫操作、數(shù)據(jù)類型、表操作

    MySQL的數(shù)據(jù)庫操作、數(shù)據(jù)類型、表操作

    目錄 一、數(shù)據(jù)庫操作 (1)、顯示數(shù)據(jù)庫 (2)、創(chuàng)建數(shù)據(jù)庫 (3)、刪除數(shù)據(jù)庫 (4)、使用數(shù)據(jù)庫 二、常用數(shù)據(jù)類型 (1)、數(shù)值類型 (2)、字符串類型 (3)、日期類型 三、表操作 (1)、創(chuàng)建表 (2)、查看表 (3)、刪除表 都要看到這了,點個贊再走吧,謝謝謝謝謝

    2024年02月06日
    瀏覽(29)
  • 基于Springboot+MYSQL+Maven實現(xiàn)的寵物醫(yī)院管理系統(tǒng)(源碼+數(shù)據(jù)庫+運行指導文檔+項目運行指導視頻)

    基于Springboot+MYSQL+Maven實現(xiàn)的寵物醫(yī)院管理系統(tǒng)(源碼+數(shù)據(jù)庫+運行指導文檔+項目運行指導視頻)

    本項目是一套基于springboot框架實現(xiàn)的寵物醫(yī)院管理系統(tǒng) 包含:項目源碼、數(shù)據(jù)庫腳本等,該項目附帶全部源碼可作為畢設使用。 項目都經(jīng)過嚴格調試,eclipse或者idea 確??梢赃\行! 該系統(tǒng)功能完善、界面美觀、操作簡單、功能齊全、管理便捷,具有很高的實際應用價值 j

    2024年02月05日
    瀏覽(59)
  • MySQL相關的SQL語句、數(shù)據(jù)庫、數(shù)據(jù)表、字段、類型

    1、 SQL 語句不區(qū)分大小寫。 SQL語句 用途 描述 mysql -u root -p 連接 MySQL 在命令行窗口中輸入 mysql -u root -p 命令,回車,然后輸入 MySQL 密碼(不要忘記了密碼,找回麻煩),再回車就連接上 MySQL 了。最初都是使用 root 用戶登錄,工作中不能一直使用 root 用戶登錄。因為 root 權限太

    2024年02月13日
    瀏覽(115)
  • MySQL的約束類型、數(shù)據(jù)庫操作、數(shù)據(jù)表操作大全(簡述)

    目錄 一.數(shù)據(jù)庫的操作語法 二.MySQL數(shù)據(jù)庫約束 三.數(shù)據(jù)類型 四.數(shù)據(jù)表操作 作者簡介: ?tq02,一個想成為編程高手的夢中人 作者主頁: ?tq02的博客_CSDN博客-C語言,Java,Java數(shù)據(jù)結構領域博主 學習專欄:? ??? MySQL基礎? ? ? ? ? ?? ?JavaSE??????????????? ?? ??C語言 本

    2024年02月12日
    瀏覽(92)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包