最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL中的主鍵以及設(shè)置其自增的用法教程

 更新時(shí)間:2015年11月18日 17:10:31   作者:stevenjohn  
這篇文章主要介紹了MySQL中的主鍵以及設(shè)置其自增的用法教程,是MySQL入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下

1、聲明主鍵的方法:
您可以在創(chuàng)建表的時(shí)候就為表加上主鍵,如:
CREATE TABLE tbl_name ([字段描述省略...], PRIMARY KEY(index_col_name));
也可以更新表結(jié)構(gòu)時(shí)為表加上主鍵,如:

ALTER TABLE tbl_name ADD PRIMARY KEY (index_col_name,…);
/*
創(chuàng)建一個qq表,將qq_id設(shè)為主鍵,且沒有對其進(jìn)行NOT NULl約束
*/
create table qq(
qq_id int(10),
nick_name varchar(255) not null,
primary key (qq_id))
/*
插入一條數(shù)據(jù),將qq號設(shè)為10000(咱也幻想一下),昵稱設(shè)為"simaopig"
*/
INSERT INTO qq( qq_id, nick_name )
VALUES (
'10000', 'simaopig');

主鍵被認(rèn)為是NOT NULL和UNIQUE約束最好的結(jié)合。如果這些列沒有被明確地定義為NOT NULL,MySQL會隱含地定義這些列。


2、主鍵也是索引:
剛才已經(jīng)說了,主鍵其實(shí)也是索引,甚至在MySQL的術(shù)語里面“鍵”就等于“索引”,所以“外鍵”一定要先設(shè)為“索引”。所以主鍵也應(yīng)該和索引一樣,既可以作用于單獨(dú)的字段,又可以作用于多個字段。
舉個簡的例子吧,我住3單元,501室,我叫小小子,那么只有3單元501室才能在本小區(qū)表里面唯一確定我家。因?yàn)?單元,501室住著的可能也是個小小子,所以只有兩個字段才能唯一確定我,也就是說可以二者組合作為主鍵。組合的主鍵,每個列都會隱含定義NOT NULL約束,且其二者加在一起被定義了UNIQUE 惟一約束。

/*
創(chuàng)建防火墻表,將host 和port組合設(shè)為主鍵,注意我沒有將port設(shè)NOT NULL約束
*/
create table firewall(
host varchar(11) not null,
port smallint(4),
access enum('deny', 'allow') not null,
primary key (host,port))
/*
插入一條新的記錄,沒有啥問題
1 row(s) inserted.
*/
INSERT INTO firewall (
host ,
port ,
access)
VALUES (
'202.65.3.87', '21', 'deny');

3、設(shè)置主鍵自增
下面我們通過一個實(shí)例來講解設(shè)置主鍵自增的方法:
首先創(chuàng)建數(shù)據(jù)庫,創(chuàng)建表

mysql> create database ssh2; 
Query OK, 1 row affected (0.04 sec) 

 

mysql> use ssh2; 
Database changed 
mysql> create table user( 
  -> id integer primary key, 
  -> firstname varchar(200) not null, 
  -> lastname varchar(200) not null, 
  -> age integer 
  -> ); 
Query OK, 0 rows affected (0.46 sec) 

給主鍵增加一個自增的功能:

mysql> alter table user modify id integer auto_increment ; 
Query OK, 1 row affected (0.28 sec) 
Records: 1 Duplicates: 0 Warnings: 0 

這樣,上面的user表里面的主鍵,id可以自增了。

給上面的主鍵id增加默認(rèn)值和自增功能。

mysql> alter table user modify id integer auto_increment ; 
Query OK, 0 rows affected (0.39 sec) 
Records: 0 Duplicates: 0 Warnings: 0 

 

mysql> alter table user modify id integer default '1'; 
Query OK, 0 rows affected (0.16 sec) 
Records: 0 Duplicates: 0 Warnings: 0 

 

mysql> alter table user modify id integer auto_increment ; 
Query OK, 1 row affected (0.28 sec) 
Records: 1 Duplicates: 0 Warnings: 0 

MySql獲取系統(tǒng)時(shí)間:

mysql> alter table user add createtime timestamp default current_timestamp; 
Query OK, 2 rows affected (0.17 sec) 
Records: 2 Duplicates: 0 Warnings: 0 

MySql設(shè)置主鍵不能為空,還要自動增長(這里沒有設(shè)置默認(rèn)值,但是默認(rèn)是1,從1開始增長。),還要得到系統(tǒng)默認(rèn)日期:

mysql> create table dd( 
  -> id int primary key not null auto_increment, 
  -> name varchar(20), 
  -> time timestamp default current_timestamp 
  -> ); 
Query OK, 0 rows affected (0.10 sec) 
 
mysql> insert into dd(name) values ('fhihgifds');

  

Query OK, 1 row affected (0.14 sec) 

 

mysql> insert into dd(name) values ('steven'); 
Query OK, 1 row affected (0.08 sec) 

 

mysql> select * from dd; 
+----+-----------+---------------------+ 
| id | name   | time        | 
+----+-----------+---------------------+ 
| 1 | fhihgifds | 2011-03-27 01:58:46 | 
| 2 | steven  | 2011-03-27 01:59:35 | 
+----+-----------+---------------------+ 
2 rows in set (0.08 sec) 

 

mysql> insert into dd(name) values ('anthony'); 
Query OK, 1 row affected (0.09 sec) 

 

mysql> select * from dd; 
+----+-----------+---------------------+ 
| id | name   | time        | 
+----+-----------+---------------------+ 
| 1 | fhihgifds | 2011-03-27 01:58:46 | 
| 2 | steven  | 2011-03-27 01:59:35 | 
| 3 | anthony  | 2011-03-27 02:00:07 | 
+----+-----------+---------------------+ 
3 rows in set (0.00 sec) 
 

相關(guān)文章

  • MySQL Like模糊查詢速度太慢如何解決

    MySQL Like模糊查詢速度太慢如何解決

    這篇文章主要介紹了MySQL Like模糊查詢速度太慢如何解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • 五分鐘帶你搞懂MySQL索引下推

    五分鐘帶你搞懂MySQL索引下推

    這篇文章主要介紹了Mysql的索引下推,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-09-09
  • MySQL 5.7.30 安裝與升級問題詳細(xì)教程

    MySQL 5.7.30 安裝與升級問題詳細(xì)教程

    這篇文章主要介紹了MySQL 5.7.30 的安裝與升級教程(所有可能的坑都在這里),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • 安裝Mysql時(shí)出現(xiàn)錯誤及解決辦法

    安裝Mysql時(shí)出現(xiàn)錯誤及解決辦法

    因?yàn)橐粫r(shí)手癢癢更新了一下驅(qū)動,結(jié)果導(dǎo)致無線網(wǎng)卡出了問題,本文給大家分享安裝mysql時(shí)出現(xiàn)錯誤及解決辦法,對安裝mysql時(shí)出現(xiàn)錯誤相關(guān)知識感興趣的朋友一起學(xué)習(xí)吧
    2015-12-12
  • MySQL中復(fù)制表結(jié)構(gòu)及其數(shù)據(jù)的5種方式

    MySQL中復(fù)制表結(jié)構(gòu)及其數(shù)據(jù)的5種方式

    在MySQL中,復(fù)制表結(jié)構(gòu)及其數(shù)據(jù)可以通過多種方式實(shí)現(xiàn),每種方法都有其適用場景,選擇合適的方法可以提高工作效率,注意處理目標(biāo)表存在性、大表復(fù)制效率及外鍵等約束,感興趣的可以了解一下
    2024-09-09
  • 深入了解MySQL中的慢查詢

    深入了解MySQL中的慢查詢

    什么是MySQL慢查詢呢?其實(shí)就是查詢的SQL語句耗費(fèi)較長的時(shí)間。具體耗費(fèi)多久算慢查詢呢?這其實(shí)因人而異,有些公司慢查詢的閾值是100ms,有些的閾值可能是500ms。本文將通過示例和大家聊聊慢查詢的危害和常用場景,感興趣的可以了解一下
    2022-10-10
  • MySQL的commit是如何commit源碼解析

    MySQL的commit是如何commit源碼解析

    這篇文章主要為大家介紹了MySQL的commit是如何commit源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • IDEA使用mybatis-generator及配上mysql8.0.3版本遇到的bug

    IDEA使用mybatis-generator及配上mysql8.0.3版本遇到的bug

    這篇文章主要介紹了IDEA使用mybatis-generator以及配上mysql8.0.3版本遇到的問題,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • MySQL更新存放JSON的字段、\“ 轉(zhuǎn)義成 “的問題描述

    MySQL更新存放JSON的字段、\“ 轉(zhuǎn)義成 “的問題描述

    本篇介紹在執(zhí)行MySQL線上變更時(shí)遇到的問題,表現(xiàn)為"更新JSON字段時(shí),實(shí)際更新的值與SQL語句中的值不一致,JSON格式錯誤",本文給大家分享問題描述及解決方案,感興趣的朋友一起看看吧
    2022-12-12
  • MySQL使用命令創(chuàng)建、刪除、查詢索引的介紹

    MySQL使用命令創(chuàng)建、刪除、查詢索引的介紹

    今天小編就為大家分享一篇關(guān)于MySQL使用命令創(chuàng)建、刪除、查詢索引的介紹,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-03-03

最新評論

根河市| 微博| 大宁县| 阿拉善右旗| 晴隆县| 辰溪县| 大渡口区| 循化| 太和县| 武威市| 凤阳县| 寻甸| 荆门市| 宁夏| 高邑县| 凤冈县| 松江区| 资兴市| 竹北市| 清远市| 白水县| 余姚市| 元谋县| 南城县| 诸城市| 教育| 溧水县| 栖霞市| 普格县| 崇左市| 佛坪县| 昭苏县| 宕昌县| 达孜县| 延长县| 隆昌县| 丰顺县| 上高县| 明水县| 孝义市| 离岛区|