六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

對(duì)于MySQL數(shù)據(jù)表設(shè)置的詳細(xì)說明

[摘要]創(chuàng)建數(shù)據(jù)表打開數(shù)據(jù)庫USE 數(shù)據(jù)庫名稱mysql> USE D1;Database changed使用 USE D1;表示打開數(shù)據(jù)庫D1,我們可以通過SELECT DATABASE();來查看當(dāng)前打開的數(shù)據(jù)庫:mysql> SELECT DATABASE();+------------...

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

打開數(shù)據(jù)庫

USE 數(shù)據(jù)庫名稱

mysql> USE D1;
Database changed

使用 USE D1;表示打開數(shù)據(jù)庫D1,我們可以通過SELECT DATABASE();來查看當(dāng)前打開的數(shù)據(jù)庫:

mysql> SELECT DATABASE();
+------------+
  DATABASE()  
+------------+
  d1          
+------------+1 row in set (0.00 sec)

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

CREATE TABLE [IF NOT EXISTS] table_name (
column_name datatype,
......
)

這個(gè)結(jié)構(gòu)很簡單,對(duì)于[IF NOT EXISTS],在第一篇 “MySQL基本操作” 已經(jīng)說明,這里不贅述。

我們來創(chuàng)建一個(gè)數(shù)據(jù)表 table1

mysql> CREATE TABLE table1(
    -> username VARCHAR(20),
    -> age TINYINT UNSIGNED,
    -> salary FLOAT(8,2) UNSIGNED
    -> );
Query OK, 0 rows affected (0.74 sec)

注意這里的UNSIGNED,表示無符號(hào)值,即是正數(shù),可回顧 “MySQL基本數(shù)據(jù)類型” 查看,TINYINT UNSIGNED 表示 0 ~ 255 之間的數(shù)值。

這里提示創(chuàng)建成功,我們可以通過以下語句來驗(yàn)證一下:

SHOW TABLES [FROM db_name][LIKE 'pattern' WHERE expr]

mysql> SHOW TABLES FROM D1;
+--------------+
  Tables_in_d1  
+--------------+
  table1        
+--------------+1 row in set (0.00 sec)

這里我們可以看到創(chuàng)建了table1這張表。

查看數(shù)據(jù)表結(jié)構(gòu)

SHOW COLUMNS FROM tbl_name

mysql> SHOW COLUMNS FROM table1;
+----------+---------------------+------+-----+---------+-------+
  Field      Type                  Null   Key   Default   Extra  
+----------+---------------------+------+-----+---------+-------+
  username   varchar(20)           YES          NULL             
  age        tinyint(3) unsigned   YES          NULL             
  salary     float(8,2) unsigned   YES          NULL             
+----------+---------------------+------+-----+---------+-------+3 rows in set (0.10 sec)

插入記錄

創(chuàng)建完表之后就要寫入數(shù)據(jù)了,通過以下語句插入記錄:

INSERT [INTO] tbl_name [(col_name,...)] VALUE(val,...)

這里 [(col_name,...)] 為可選項(xiàng),如果不添加,那么在VALUE里面的值必須一一與數(shù)據(jù)表的字段對(duì)應(yīng),否則無法插入,我們看一下:

mysql> INSERT table1 VALUE("LI",20,6500.50);
Query OK, 1 row affected (0.14 sec)

這里VALUE括號(hào)里面與table1的字段一一對(duì)應(yīng),分別為username=“LI”,age=20,salary=6500.50

下面我們?cè)俨迦胍粭l數(shù)據(jù),但是沒有對(duì)應(yīng):

mysql> INSERT table1 Value("Wang",25);
ERROR 1136 (21S01): Column count doesn't match value count at row 1

無法插入,因?yàn)闆]有給出salary的值。

通過添加 [(col_name,...)] 即可靈活插入數(shù)據(jù):

mysql> INSERT table1(username,age) VALUE("Wang",25);
Query OK, 1 row affected (0.11 sec)

table1 與 VALUE 一一對(duì)應(yīng)。

查找表數(shù)據(jù)

前面已經(jīng)插入了兩條數(shù)據(jù),可以通過以下語句查找表數(shù)據(jù):

SELECT expr,... FROM tbl_name

對(duì)于數(shù)據(jù)庫的查找語句SELECT,內(nèi)容比較多,后面文章會(huì)具體講解,我們用一個(gè)簡單的語句來查找表的內(nèi)容:

mysql> SELECT * FROM table1
    -> ;
+----------+------+---------+
  username   age    salary   
+----------+------+---------+
  LI           20   6500.50  
  Wang         25      NULL  
+----------+------+---------+2 rows in set (0.00 sec)

注意MySQL語句是以“;”結(jié)尾,如果忘了寫是無法執(zhí)行語句的,在箭頭后面添加分號(hào)即可;這里我們可以看到表里面有兩條剛剛寫入的數(shù)據(jù)。

表創(chuàng)建的基本約束

字段的NULL與NOT NULL

在創(chuàng)建表的時(shí)候,我們可以設(shè)定該字段是否可為空,如果不可為空,那么在插入數(shù)據(jù)時(shí),則不能為空。

我們來創(chuàng)建一個(gè)數(shù)據(jù)表table2

mysql> CREATE TABLE table2(
    -> username VARCHAR(20) NOT NULL,
    -> age TINYINT UNSIGNED NULL,
    -> salary FLOAT(8,2)
    -> );

這里username為非空,age為NULL,salary不寫,我們來查看表結(jié)構(gòu):

mysql> SHOW COLUMNS FROM table2;
+----------+---------------------+------+-----+---------+-------+
  Field      Type                  Null   Key   Default   Extra  
+----------+---------------------+------+-----+---------+-------+
  username   varchar(20)           NO           NULL             
  age        tinyint(3) unsigned   YES          NULL             
  salary     float(8,2)            YES          NULL             
+----------+---------------------+------+-----+---------+-------+3 rows in set (0.01 sec)

從這里我們可以看到,username的NULL為NO,其他兩個(gè)字段為YES,對(duì)于可以為空的字段,寫不寫NULL都表示可以為空。

自動(dòng)編號(hào)

AUTO_INCREMENT

auto_increment,auto自動(dòng),increment是增加的意思,組合起來表示自動(dòng)增加,也就是可以自動(dòng)按照從小到大的順序編號(hào)。

  • 只能用于主鍵(主鍵表示表中數(shù)據(jù)的唯一表示,可以通過主鍵來區(qū)分表中的數(shù)據(jù))

  • 默認(rèn)情況下為1,增量為1

下面來操作一下:

mysql> CREATE TABLE table3(
    -> id SMALLINT UNSIGNED AUTO_INCREMENT,
    -> username VARCHAR(20)
    -> );
ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key

報(bào)錯(cuò),因?yàn)?id 沒有設(shè)置為主鍵。

設(shè)置主鍵

PRIMARY KEY

  • 主鍵約束

  • 每張表只能存在一個(gè)主鍵

  • 主鍵保證記錄的唯一性

  • 主鍵自動(dòng)為NOT NULL

那么我們添加主鍵,重新操作一次:

mysql> CREATE TABLE table3(
    -> id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    -> username VARCHAR(20)
    -> );
Query OK, 0 rows affected (0.42 sec)

注意順序,PRIMARY KEY 要放在最后。

這樣我們就創(chuàng)建成功,下面依次插入數(shù)據(jù),并查看結(jié)果:

mysql> INSERT table3(username) VALUES("Zhang");
Query OK, 1 row affected (0.09 sec)

mysql> INSERT table3(username) VALUES("Weng");
Query OK, 1 row affected (0.07 sec)

mysql> INSERT table3(username) VALUES("Chen");
Query OK, 1 row affected (0.09 sec)

mysql> SELECT * FROM table3;
+----+----------+
  id   username  
+----+----------+
   1   Zhang     
   2   Weng      
   3   Chen      
+----+----------+3 rows in set (0.00 sec)

我們可以看到id自動(dòng)編號(hào),從小到大一次依次編號(hào)。

唯一約束

UNIQUE KEY

  • 唯一約束

  • 唯一約束保證記錄不可重復(fù)(唯一性)

  • 唯一約束可以為空值(NULL)

  • 可以有多個(gè)唯一約束

mysql> CREATE TABLE table4(
    -> id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    -> username VARCHAR(20) UNIQUE KEY,
    -> age TINYINT UNSIGNED
    -> );
Query OK, 0 rows affected (0.43 sec)

mysql> INSERT table4(username) VALUE("Li");
Query OK, 1 row affected (0.11 sec)

mysql> INSERT table4(username) VALUE("Li");
ERROR 1062 (23000): Duplicate entry 'Li' for key 'username'

mysql> INSERT table4(username) VALUE("Chen");
Query OK, 1 row affected (0.10 sec)

對(duì)于username我們?cè)O(shè)置為唯一約束,所以Li不可被重復(fù)創(chuàng)建,改為“Chen”即可。注意這里只是實(shí)驗(yàn),在實(shí)際操作中,名字相同還是常有的,應(yīng)該根據(jù)實(shí)際情況建立數(shù)據(jù)表。

默認(rèn)值DEFAULT

通過 DEFAULT 來設(shè)置默認(rèn)值,如果在插入數(shù)據(jù)時(shí)沒給給出相應(yīng)的值,那么就用默認(rèn)的,下面的例子就是設(shè)置number的默認(rèn)值為3,在插入數(shù)據(jù)的時(shí)候,因?yàn)闆]有給出number,所以默認(rèn)為3。

mysql> CREATE TABLE table5(
    -> number ENUM("1","2","3") DEFAULT "3",
    -> username VARCHAR(20)
    -> );
Query OK, 0 rows affected (0.41 sec)

mysql> INSERT table5(username) VALUES("Luo");
Query OK, 1 row affected (0.10 sec)

mysql> INSERT table5(username) VALUES("Fang");
Query OK, 1 row affected (0.15 sec)

mysql> SELECT * FROM table5;
+--------+----------+
  number   username  
+--------+----------+
  3        Luo       
  3        Fang      
+--------+----------+2 rows in set (0.00 sec)

以上就是關(guān)于MySQL數(shù)據(jù)表操作的詳解的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!


學(xué)習(xí)教程快速掌握從入門到精通的SQL知識(shí)。




主站蜘蛛池模板: 在线观看91精品国产下载 | 日日做夜夜做 | 欧美一二三 | 四虎影视免费永久在线观看黄 | 色亚洲视频 | 伊伊人成亚洲综合人网香 | 欧美视频第二页 | 色猫av | 欧美一区2区 | 青青青久热国产精品视频 | 在线观看亚洲一区二区 | 日本五级床片全部免费午夜 | 欧美一区二区三区在线可观看 | 亚洲精品第一页中文字幕 | 婷婷视频在线 | 欧美午夜在线视频 | 五月天婷婷精品免费视频 | 亚洲伊人久久大香线焦 | 午夜视频播放 | 午夜免费影视 | 四虎影院com| 日韩视频在线免费 | 天天干天天拍天天射天天添天天爱 | 午夜精品视频在线观看 | 日本 欧美 国产 | 欧美午夜视频在线观看 | 日本高清在线不卡 | 亚洲欧美中文日韩v在线观看 | 青青草原国产视频 | 青青青青青在线视频播放 | 五月在线视频 | 伊人久久婷婷丁香六月综合基地 | 欧美综合国产精品日韩一 | 欧美呦呦在线 | 午夜色片 | 啪啪免费视频 | 午夜在线日韩免费精品福利 | 欧美一级黄色片免费看 | 在线精品欧美日韩 | 日本欧美一区二区三区 | 香蕉毛片a|