亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL學習筆記 數據類型與操作數據表

發布時間:2020-07-30 20:53:27 來源:網絡 閱讀:180 作者:謝育政 欄目:數據庫

1.數據類型   

    【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 -12
MEDIUMINT有符號型:-2^23~2^23 -1,無符號型0~2^24 -13
INT有符號型:-2^31~2^31 -1,無符號型0~2^32 -14
BIGINT有符號型:-2^63~2^63 -1,無符號型0~2^64 -18




    【2】浮點型

數據類型存儲范圍字節
FLOAT[(M,D)]-3.402823466E+38~-1.175494351E-38、0和 1.175494351E-38 ~3.402823466E+384
DOUBLE[(M,D)]2.2250738585072014E-308~ 1.7976931348623157E+3088





【注】M是數字總位數,D是小數點后面的位數。如果M和D被省略,根據硬件允許的限制來保值。單精度浮點數值精確到大約7位小數位。E+38 表示10^38    

    【3】日期時間型

列類型字節存儲范圍
YEAR1YEAR[(2|4)] 缺省為4位格式,4位格式取值范圍為1901 - 2155,
TIME3-838:59:59~838:59:59
DATE31000-1-1~9999-12-31
DATETIME8日期時間, 1000-1-1 00:00:00~9999-12-31 23:59:59
TIMESTAMP4時間戳,1970-1-1 00:00~2037年的某個時刻





【注】實際開發中“日期時間型”用得比較少,因為考慮到跨時區的問題,一般會用數字類型取代

MySQL本身Y2K安全的,但是呈交給MySQL的輸入值可能不是。一個包含2位年份值的任何輸入是由二義性的,因為世紀是未知的。這樣的值必須被解釋成4位形式,因為MySQL內部使用4位存儲年份。

對于DATETIME, DATE, TIMESTAMP和YEAR類型,MySQL使用下列規則的解釋二義性的年份值:

-在范圍00-69的年值被變換到2000-2069。

-在范圍70-99的年值被變換到1970-1999。

記得這些規則僅僅提供對于你數據的含義的合理猜測。如果MySQL使用的啟發規則不產生正確的值,你應該提供無二義的包含4位年值的輸入。

    【4】字符型

列類型存儲需求
CHAR(M)(定長,不足用空格自動補全)M個字節,0<=M<=255
VARCHAR(M)(變長,輸入多少就是多少)L+1個字節,其中L<=M,0<=M<=65535
TINYTEXTL+1個字節,其中L<2^8 (1個字節表示最大存儲范圍,下同)
TEXTL+2個字節,其中L<2^16
MEDIUMTEXTL+3個字節,其中L<2^24
LONGTEXTL+4個字節,其中L<2^32
ENUM('value1','value2',…)(最終選擇其中的一個value)1或2個字節,取決于枚舉值的個數(最多65535個)
SET ('value1','value2',…)(集合,可在其中做任意的排列組合)1、2、3、4或者8個字節,取決于set成員的




CHAR(M) :定長類型,定義數據為5個字節,當需要存儲abc3個字節的時候,會以2個空格的形式補滿5個字節。

VARCHAR(M) :變長類型,輸入abc3個字節就存儲3個字節,不會存儲多余的數據。

2.數據表操作

    【1】概述

數據表(或稱表)是數據庫最重要的組成部分之一,是其他對象的基礎。

    【2】命令

  USE  打開數據庫:

mysql> USE <數據庫名稱>;

        

  • 顯示當前用戶所打開的數據庫:

mysql> SELETE DATABASES;
  • 創建數據庫表

CREATE TABLE [IF NOT EXISTS] table_name (column_name列名稱 data_type數據類型,....)
例:創建數據庫表:列名稱為username和age和salary
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數據庫

mysql> SHOW TABLES FROM mysql;
  • 查看數據表的結構

mysql> SHOW TABLES FROM mysql;


 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空值與非空

*** NULL ,字段值可以為空

*** NOT NULL ,字段值禁止為空

    例:

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主鍵約束

*** 主鍵約束

*** 每張數據表只能存在一個主鍵

*** 主鍵保證記錄的唯一性

*** 主鍵自動為NOT NULL

6.MySQL自動編號 AUTO_INCREMENT

*** 自動編號,且必須與主鍵組合使用

*** 默認情況下,起始值為1,每次的增量為1

    例,創建自動編號表:

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

*** 唯一約束

*** 唯一約束可以保證記錄的唯一性

*** 唯一約束的字段可以為空值(NULL)

*** 每張數據表可以存在多個唯一約束

    例:

創建數據表tb4:

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)
  • 再插入一條username同時‘Tom'的記錄,提示重復:

mysql> INSERT tb4(username,age) VALUES('Tom',23);
ERROR 1062 (23000): Duplicate entry 'Tom' for key 'username'

   

8.MySQL默認約束

*** 默認值

*** 當插入記錄時,如果沒有明確為字段賦值,則自動賦予默認值

    例:

創建數據表tb6,設置sex列的默認值為3:

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       |                |
+----------+----------------------+------+-----+---------+----------------+

        

  • 插入記錄,不給sex賦值:

mysql> INSERT tb6(username) VALUES('Tom');
mysql> INSERT tb6(username) VALUES('John');
mysql> INSERT tb6(username) VALUES('Mimiter');
  • 查看數據表,sex自動為默認值3:

mysql> SELECT * FROM tb6;                     
+----+----------+------+
| id | username | sex  |
+----+----------+------+
|  1 | Tom      | 3    |
|  2 | John     | 3    |
|  3 | Mimiter  | 3    |
+----+----------+------+


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

洪湖市| 扎囊县| 兰坪| 兖州市| 内江市| 凤翔县| 澄城县| 牟定县| 恩施市| 新闻| 商城县| 普宁市| 瓦房店市| 呼图壁县| 徐闻县| 吉林市| 荥经县| 滨海县| 西昌市| 杭锦后旗| 许昌县| 通渭县| 呼和浩特市| 东至县| 平舆县| 舞阳县| 白水县| 永昌县| 门源| 德惠市| 绥棱县| 叙永县| 南部县| 汨罗市| 长葛市| 宁德市| 安徽省| 澎湖县| 西昌市| 奉贤区| 沧州市|