數(shù)據(jù)表類型

數(shù)據(jù)表類型

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

我們提供的服務(wù)有:網(wǎng)站建設(shè)、網(wǎng)站制作、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、肇州ssl等。為近千家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的肇州網(wǎng)站制作公司

 CREATE TABLE IF NOT EXISTS user(

id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,

name VARCHAR(255) NOT NULL UNIQUE,

Sex TINYINT  NOT NULL DEFUALT 1,

age TINYINT  NOT NULL DEFAULT 0

)ENGINE = MyISAM DEFAULT CHARSET=utf8;

CREATE  TABLE  IF NOT EXISTS 表名稱(

  字段名1  類型(長(zhǎng)度)屬性  索引,

字段名2  類型(長(zhǎng)度)屬性  索引,

字段名3  類型(長(zhǎng)度)屬性  索引,

字段名4  類型(長(zhǎng)度)屬性  索引,

字段名5  類型(長(zhǎng)度)屬性  索引,

...

字段名N  類型(長(zhǎng)度)屬性  索引,

) ENGINE =MyISAM  DEFAULT  CHARSET =utf8;

html  設(shè)置字符集  utf-8

MySQL 設(shè)置字符集  utf8

 

 二、 mysql 數(shù)據(jù)類型

   1. 整數(shù)類型(重點(diǎn)重點(diǎn)重點(diǎn))

整數(shù)類型

字節(jié)數(shù)

無(wú)符號(hào)范圍

有符號(hào)范圍

TINYINT(微整型)

1

+0 - +255

-128- +127

SMALLINT(小整型)

2

  0-65535

-32768-32767

MEDIUMINT(中整型)

3

0-16777215

 -8388608-8388607

INT(整型)

4

 0-4294967295

-2147483648-2147483647

BIGINT(大整型)

8

0-188446744073709551615


mysql 支持的數(shù)據(jù)類型后面指定該類型的寬度, 基本形式如下:

數(shù)據(jù)類型(顯示寬度)

默認(rèn)顯示寬度: 可以理解為 一個(gè)整數(shù)類型的默認(rèn)寬度正好能顯示該數(shù)據(jù)類型的所有值的寬度  默認(rèn)長(zhǎng)度其實(shí)是當(dāng)前位數(shù)減一 為什么要減一 是因?yàn)榈谝晃皇俏覀兊姆?hào)位

 n1    | tinyint(4)

 n2    | smallint(6)

 n3    | mediumint(9)

 n4    | int(11)

 n5    | bigint(20)

 在整數(shù)類型使用是 可以配置zerofill 參數(shù)zerofill表示數(shù)字不足的顯示空間由0來(lái)填充補(bǔ)全

出現(xiàn)下面報(bào)錯(cuò)的原因是

Out of range value for column 'n1' at row 1

你的長(zhǎng)度超出了范圍

注意:

使用zerofill是mysql會(huì)自動(dòng)加上unsigned(無(wú)符號(hào))屬性 那么該整數(shù)類型只能表示無(wú)符號(hào)數(shù)  器顯示長(zhǎng)度比默認(rèn)顯示寬度小一

在設(shè)置了顯示寬度時(shí) 如果插入的數(shù)據(jù)寬度大于設(shè)置的顯示寬度 數(shù)據(jù)依然可以插入  且能夠顯示  但是該設(shè)置的寬度失效

數(shù)據(jù)的寬度不能大于默認(rèn)寬度 如果大于默認(rèn)寬度 那么該數(shù)據(jù)已經(jīng)超出該類型的最大值 因?yàn)樽畲笾档膶挾缺仨毿∮诘扔谀J(rèn)寬度  如果一個(gè)值大于最大值 將不能插入

 

-- 整數(shù)類型還有一個(gè)屬性AUTO_INCREMENT屬性    自增

-- 自增屬性需要配合索引使用

 

-- 如果出現(xiàn)下面報(bào)錯(cuò) 請(qǐng)?jiān)谀阕栽鰧傩院竺婕由夏愕乃饕齼?nèi)容

-- ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key

-- key(index) 索引

-- 普通索引(index)

-- 唯一索引(unique)  唯一索引所有值不能有重復(fù)

-- 主鍵索引primary key  一個(gè)數(shù)據(jù)表中只能有一個(gè)  唯一作用 一般設(shè)置都是自增字段

 

zerofill 零填充

unsigned   無(wú)符號(hào)

auto_increment  自增

只能修飾整數(shù)類型

 2. 浮點(diǎn)數(shù)和定點(diǎn)數(shù)

 mysql 中使用浮點(diǎn)數(shù)和定點(diǎn)數(shù)來(lái)表示小數(shù)

浮點(diǎn)數(shù): 單精度浮點(diǎn)數(shù)(float)和雙精度浮點(diǎn)數(shù)(double)

定點(diǎn)數(shù): DECIMAL

定點(diǎn)數(shù)在存儲(chǔ)空間 是根據(jù)精度來(lái)決定的

mysql中可以指定浮點(diǎn)數(shù)的精度:數(shù)據(jù)類型(M,D)

M 精度   是數(shù)據(jù)的總長(zhǎng)度  小數(shù)點(diǎn)不占位

D  標(biāo)度   小數(shù)點(diǎn)后的長(zhǎng)度

在存儲(chǔ)小數(shù)的時(shí)候 建議使用decimal類型 定點(diǎn)數(shù)以字符串形式存儲(chǔ) 因此精度要比浮點(diǎn)數(shù)更高  而且浮點(diǎn)數(shù)容易出現(xiàn)誤差 這是浮點(diǎn)數(shù)一直存在的問(wèn)題 如果對(duì)數(shù)據(jù)的精度要求很高 還是選擇定點(diǎn)數(shù)比較安全

如果標(biāo)度超出位數(shù)那么他會(huì)進(jìn)行四舍五入如果你的精度和標(biāo)度一樣那么我們的整數(shù)位只能是零

 3. 時(shí)間

-- 時(shí)間戳

-- 2147483647

INT 2147483647

因?yàn)閜hp可以有date函數(shù)  你想處理什么樣子都可以  所以我們使用時(shí)間戳來(lái)存儲(chǔ)我們php的時(shí)間

4. 字符串類型

 字符串類型是mysql中用來(lái)存儲(chǔ)字符串的數(shù)據(jù)類型 字符串類型包含: VARCHAR  CHAR  TEXT  ENUM   SET

CHAR 和VARCHAR

字符串類型(M) M-- 該字符串的最大長(zhǎng)度M

 CHAR 定長(zhǎng)的字符類型  0-255

VARCHAR  變長(zhǎng)的字符類型5.0以前0-255 5.0版本以后0-65535

char(5) 和varchar(5)區(qū)別

 插入值      char 占用字?jǐn)?shù)      varchar占用字?jǐn)?shù)

  1  5 2

  123  5 4

1234          5 5

  12345  5 6

CHAR 定長(zhǎng)字符類型   分配多少空間就占用多少空間 不計(jì)算需要的長(zhǎng)度  處理數(shù)據(jù)速度快

VARCHAR 變長(zhǎng)字符類型   根據(jù)字符串的長(zhǎng)度來(lái)分配空間  需要計(jì)算長(zhǎng)度   處理數(shù)據(jù)速度稍慢

什么時(shí)候用char  什么時(shí)候用varchar

當(dāng)你插入的數(shù)據(jù)長(zhǎng)度一直不變的情況下 請(qǐng)使用char  密碼需要使用char

當(dāng)你插入的數(shù)據(jù)長(zhǎng)度是隨時(shí)改變的情況下  使用varchar  用戶名需要使用varchar

  ENUM 類型  枚舉類型

ENUM(‘值1,值2,值3,,,,,值n’)

n--代表參數(shù)列表中的第n個(gè)值n 65535

ENUM 的值只能去列表中的一個(gè)元素

1/65535

SET 類型

在創(chuàng)建表是 set類型的取值范圍是以列表的形式指定的

set(‘值1,值2,值3,。。。值n’);

set 類型的值最多只是64個(gè)元素 取值可以是一個(gè)或者多個(gè) 其他特性和enum類似

1-64/64

三查看表結(jié)構(gòu)

 DESC 表名:縮寫(xiě)版

 DESCRIBE 表名

 

查看建表語(yǔ)句

SHOW CREATE TABLE 表名

 

四創(chuàng)建表

1. 建表語(yǔ)法

CREATE  TABLE  IF NOT EXISTS 表名稱(

  字段名1  類型(長(zhǎng)度)屬性  索引,

字段名2  類型(長(zhǎng)度)屬性  索引,

字段名3  類型(長(zhǎng)度)屬性  索引,

字段名4  類型(長(zhǎng)度)屬性  索引,

字段名5  類型(長(zhǎng)度)屬性  索引,

...

字段名N  類型(長(zhǎng)度)屬性  索引,

) ENGINE =MyISAM  DEFAULT  CHARSET =utf8;

a. 設(shè)置主鍵

PRIMARY KEY

字段名  數(shù)據(jù)類型  PRIMARY KEY

b. 設(shè)置表的非空約束

 字段名  數(shù)據(jù)類型 NOT NULL

不為空 只是不為null

c. 設(shè)置表的唯一性

 字段名 數(shù)據(jù)類型 UNIQUE

d. 設(shè)置表字段值的自增

   字段名 數(shù)據(jù)類型 AUTO_INCREMENT

如果你設(shè)置自增就必須加上 索引 PRIMARY KEY

e. 設(shè)置表的字段默認(rèn)值

字段名 數(shù)據(jù)類型 DEFAULT 默認(rèn)值

f. 設(shè)置字段的數(shù)字類型 不能為負(fù)數(shù)

字段名 數(shù)據(jù)類型 UNSIGNED

g. 建表引擎

 MyISAM

 InnoDB

MyISAM 與InnoDB的區(qū)別

myisam  讀取速度快  不支持事務(wù)

InnoDB  讀取速度稍慢  支持事務(wù)   事務(wù)回滾

 

分享標(biāo)題:數(shù)據(jù)表類型
分享路徑:http://muchs.cn/article38/ppposp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站網(wǎng)站導(dǎo)航、品牌網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、定制網(wǎng)站、搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)