mysql建表說明加密 mysql建表說明

2021-10-17 21:35:46 字數 4206 閱讀 3486

drop table if exists `user`;

create table user (

id bigint(20) unsigned not null auto_increment

comment '主鍵',

username varchar(50) not null default ''

comment '使用者名稱',

username_type varchar(20) not null default ''

comment '使用者型別',

user_password varchar(50) not null default ''

comment '使用者密碼',

create_time timestamp not null default current_timestamp

comment '建立時間',

update_time timestamp not null default current_timestamp on update current_timestamp

comment '更新時間',

primary key (id),

unique key idx_urn(username) using btree

engine = innodb

default charset = utf8mb4

comment = '使用者資訊表';

上圖乙個典型的mysql 建表語句; 常識  設定 default預設值,以及not null 不能為空

char 和  varchar區別:

mysql資料庫char與varchar區別

default current_timestamp on update current_timestamp 意為  預設值為當前時間,並且在update時按照        current_timestamp進行更新這一列;

mysql資料型別說明

mysql資料型別

數字型別

整數: tinyint、smallint、mediumint、int、bigint

浮點數: float、double、real、decimal

字串型別

字串: char、varchar

文字: tinytext、text、mediumtext、longtext

二進位制(可用來儲存、**等): tinyblob、blob、mediumblob、longblob

字串型別

型別單位

最大特性

char

字元最大為255字元

儲存定長,容易造成空間的浪費

varchar

字元可以超過255個字元

儲存變長,節省儲存空間

text

位元組總大小為65535位元組,約為64kb

text在mysql內部大多儲存格式為溢位頁,效率不如char

mysql預設為utf-8,那麼在英文模式下1個字元=1個位元組,在中文模式下1個字元=3個位元組。

數字型別

整形type

storage

minumun value

maximum value

(bytes)

(signed/unsigned)

(signed/unsigned)

tinyint

-128

smallint

-32768

mediumint

-8388608

int-2147483648

bigint

-9223372036854775808

浮點型屬性

儲存空間

精度精確性

說明float(m, d)

4 bytes

單精度非精確

單精度浮點型,m總個數,d小數字

double(m, d)

8 bytes

雙精度比float精度高

雙精度浮點型,m總個數,d小數字

float容易造成精度丟失

定點數decimal

高精度的資料型別,常用來儲存交易相關的資料

decimal(m,n).m代表總精度,n代表小數點右側的位數(標度)

1 < m < 254, 0 < n < 60;

儲存空間變長

時間型別

型別位元組

例精確性

date

三位元組2015-05-01

精確到年月日

time

三位元組11:12:00

精確到時分秒

datetime

八字節2015-05-01 11::12:00

精確到年月日時分秒

timestamp

2015-05-01 11::12:00

精確到年月日時分秒

mysql在5.6.4版本之後,timestamp和datetime支援到微秒。

timestamp會根據系統時區進行轉換,datetime則不會

儲存範圍的區別

timestamp儲存範圍:1970-01-01 00::00:01 to 2038-01-19 03:14:07

datetime的儲存範圍:1000-01-01 00:00:00 to 9999-12-31 23:59:59

一般使用timestamp國際化

如存時間戳使用數字型別bigint

對於 key索引的型別

mysql中key 、primary key 、unique key 與index區別

外來鍵:mysql 外來鍵(foreign key)的詳解和例項

mysql 下,外來鍵設定:

on delete rule:

1、restrict:約束

如果存在從資料,不允許刪除主資料。

2、no action

如果存在從資料,不允許刪除主資料。

3、cascade:級聯

刪除主資料,順便也刪掉從資料。

4、set null

刪除主資料,從資料外來鍵的值設為null。

on update rule:

1、restrict:約束

修改主資料中被關聯的field,如果有該主資料有從資料,不允許修改。

2、no action

修改主資料中被關聯的field,如果有該主資料有從資料,不允許修改。

3、cascade

修改主資料中被關聯的field,如果有該主資料有從資料,順便一起修改從資料的外鍵值。

4、set null

修改主資料中被關聯的field,如果有該主資料有從資料,從資料的外鍵值設為null。

索引key所使用的資料結構

mysql裡的索引型別主要有以下幾種。

1. b-tree索引

最常見的索引型別,基於b-tree資料結構。b-tree的基本思想是,所有值(被索引的列)都是排過序的,每個葉節點到跟節點距離相等。所以b-tree適合用來查詢某一範圍內的資料,而且可以直接支援資料排序(order by)。但是當索引多列時,列的順序特別重要,需要格外注意。innodb和myisam都支援b-tree索引。innodb用的是乙個變種b+tree,而myisam為了節省空間對索引進行了壓縮,從而犧牲了效能。

2. hash索引

基於hash表。所以這種索引只支援精確查詢,不支援範圍查詢,不支援排序。這意味著範圍查詢或order by都要依賴server層的額外工作。目前只有memory引擎支援顯式的hash索引(但是它的hash是nonunique的,衝突太多時也會影響查詢效能)。memory引擎預設的索引型別即是hash索引,雖然它也支援b-tree索引。

例子:create table testhash (

fname varchar(50) not null,

lname varchar(50) not null,

key using hash(fname)

) engine =memory;

3. spatial (r-tree)(空間)索引

只有myisam引擎支援,並且支援的不好。可以忽略。

4. full-text索引

主要用來查詢文字中的關鍵字,而不是直接與索引中的值相比較。full-text索引跟其它索引大不相同,它更像是乙個搜尋引擎,而不是簡單的where語句的引數匹配。你可以對某列分別進行full-text索引和b-tree索引,兩者互不衝突。full-text索引配合match against操作使用,而不是一般的where語句加like。

mysql建立使用者表 mysql 建庫建表建使用者

1.建立資料庫 create database school 2.使用資料庫 use school 3.建立使用者 create user jame localhost identified by jame 4.授權使用者 注意這裡是用了 哦,可以自己講school也替換成 號 grant sele...

mysql建表思路 MySQL 建表思路

思想 硬碟如倉庫,表如倉庫中貨架 常用與不常用等分類 欄位如貨物 尺寸是固定或變動 訪問貨物涉及到貨架的佔位 效率。資料型別選用,建表思路,正規化 資料型別特點 資料型別的速度關係 最快 整形 date,time char,enum varchar text blob 最慢 char 與 varch...

mysql建表建索引6 mysql建表建索引

建表 create table sj projects id int 11 not null auto increment,title varchar 255 not null default comment 專案名稱 platform id int 11 not null default 0 co...