MySQL學習筆記-數據類型與操作數據表
阿新 • • 發佈:2017-05-25
數據表 mysql 記錄
1.數據類型
數據類型 | 存儲範圍 | 字節 | |
TINYINT | 有符號型:-128~127(-2^7~2^7 -1),無符號型0~255(0~2^8 -1) | 1 | |
SMALLINT | 有符號型:-2^15~2^15 -1,無符號型0~2^16 -1 | 2 | |
MEDIUMINT | 有符號型:-2^23~2^23 -1,無符號型0~2^24 -1 | 3 | |
INT | 有符號型:-2^31~2^31 -1,無符號型0~2^32 -1 | 4 | |
BIGINT | 有符號型:-2^63~2^63 -1,無符號型0~2^64 -1 | 8 | |
數據類型 | 存儲範圍 | 字節 | |
FLOAT[(M,D)] | -3.402823466E+38~-1.175494351E-38、0和 1.175494351E-38 ~3.402823466E+38 | 4 | |
DOUBLE[(M,D)] | 2.2250738585072014E-308~ 1.7976931348623157E+308 | 8 | |
列類型 | 字節 | 存儲範圍 | |
YEAR | 1 | YEAR[(2|4)] 缺省為4位格式,4位格式取值範圍為1901 - 2155, | |
TIME | 3 | -838:59:59~838:59:59 | |
DATE | 3 | 1000-1-1~9999-12-31 | |
DATETIME | 8 | 日期時間, 1000-1-1 00:00:00~9999-12-31 23:59:59 | |
TIMESTAMP | 4 | 時間戳,1970-1-1 00:00~2037年的某個時刻 | |
列類型 | 存儲需求 | |
CHAR(M) | (定長,不足用空格自動補全)M個字節,0<=M<=255 | |
VARCHAR(M) | (變長,輸入多少就是多少)L+1個字節,其中L<=M,0<=M<=65535 | |
TINYTEXT | L+1個字節,其中L<2^8 (1個字節表示最大存儲範圍,下同) | |
TEXT | L+2個字節,其中L<2^16 | |
MEDIUMTEXT | L+3個字節,其中L<2^24 | |
LONGTEXT | L+4個字節,其中L<2^32 | |
ENUM(‘value1‘,‘value2‘,…) | (最終選擇其中的一個value)1或2個字節,取決於枚舉值的個數(最多65535個) | |
SET (‘value1‘,‘value2‘,…) | (集合,可在其中做任意的排列組合)1、2、3、4或者8個字節,取決於set成員的 | |
2.數據表操作
mysql> USE <數據庫名稱>;
mysql> SELETE DATABASES;
創建數據庫表
CREATE TABLE [IF NOT EXISTS] table_name (column_name列名稱 data_type數據類型,....)
mysql> USE t1; mysql> CREATE TABLE IF NOT EXISTS t1( -> username VARCHAR(20), -> age TINYINT UNSIGNED, -> salary FLOAT(8,2) UNSIGNED -> );
mysql> SHOW TABLES;
mysql> SHOW TABLES FROM mysql;
mysql> SHOW COLUMNS FROM t1;
3.MySQL記錄的插入與查找
INSERT [INTO] tbl_name [(col_name,...0] VALUES (val,...)
mysql> INSERT t1 VALUES(‘Tom‘,25,7863.25);
SELECT expr,... FROM tbl_name
SELECT * FROM t1;
4.MySQL空值與非空
mysql> USE t2; mysql> CREATE TABLE IF NOT EXISTS tb2( -> username VARCHAR(20) NOT NULL, -> age TINYINT UNSIGNED NULL, -> salary FLOAT(8,2) UNSIGNED -> );
5.MySQL主鍵約束
6.MySQL自動編號 AUTO_INCREMENT
mysql> CREATE TABLE tb3( -> id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, -> username VARCHAR(30) NOT NULL -> ); mysql> SHOW COLUMNS FROM tb3;+----------+----------------------+------+-----+---------+----------------+| Field | Type | Null | Key | Default | Extra |+----------+----------------------+------+-----+---------+----------------+| id | smallint(5) unsigned | NO | PRI | NULL | auto_increment || username | varchar(30) | NO | | NULL | |+----------+----------------------+------+-----+---------+----------------+
mysql> INSERT tb3(username) VALUES(‘Tom‘) mysql> INSERT tb3(username) VALUES(‘John‘) mysql> INSERT tb3(username) VALUES(‘Rose‘) mysql> INSERT tb3(username) VALUES(‘Dimitar‘) mysql> SELECT * FROM tb3;+----+----------+| id | username |+----+----------+| 1 | Tom || 2 | John || 3 | Rose || 4 | Dimitar |+----+----------+
7.MySQL唯一約束 UNIQUE KEY
mysql> CREATE TABLE tb4( -> id SMALLINT AUTO_INCREMENT PRIMARY KEY, -> username VARCHAR(20) NOT NULL UNIQUE KEY, -> age TINYINT UNSIGNED -> ); mysql> SHOW COLUMNS FROM tb4;+----------+---------------------+------+-----+---------+----------------+| Field | Type | Null | Key | Default | Extra |+----------+---------------------+------+-----+---------+----------------+| id | smallint(6) | NO | PRI | NULL | auto_increment || username | varchar(20) | NO | UNI | NULL | || age | tinyint(3) unsigned | YES | | NULL | |+----------+---------------------+------+-----+---------+----------------+
mysql> INSERT tb4(username,age) VALUES(‘Tom‘,25); Query OK, 1 row affected (0.00 sec)
mysql> INSERT tb4(username,age) VALUES(‘Tom‘,23); ERROR 1062 (23000): Duplicate entry ‘Tom‘ for key ‘username‘
8.MySQL默認約束
mysql> CREATE TABLE tb6( -> id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, -> username VARCHAR(20) NOT NULL UNIQUE KEY, -> sex ENUM(‘1‘,‘2‘,‘3‘) DEFAULT ‘3‘ -> ); mysql> SHOW COLUMNS FROM tb6;+----------+----------------------+------+-----+---------+----------------+| Field | Type | Null | Key | Default | Extra |+----------+----------------------+------+-----+---------+----------------+| id | smallint(5) unsigned | NO | PRI | NULL | auto_increment || username | varchar(20) | NO | UNI | NULL | || sex | enum(‘1‘,‘2‘,‘3‘) | YES | | 3 | |+----------+----------------------+------+-----+---------+----------------+
mysql> INSERT tb6(username) VALUES(‘Tom‘); mysql> INSERT tb6(username) VALUES(‘John‘); mysql> INSERT tb6(username) VALUES(‘Mimiter‘);
mysql> SELECT * FROM tb6; +----+----------+------+| id | username | sex |+----+----------+------+| 1 | Tom | 3 || 2 | John | 3 || 3 | Mimiter | 3 |+----+----------+------+
本文出自 “謝育政” 博客,請務必保留此出處http://kurolz.blog.51cto.com/11433546/1929130
MySQL學習筆記-數據類型與操作數據表