MySQL建表過程 資料型別

2021-08-18 21:06:36 字數 3417 閱讀 7789

a.主要學習列型別的儲存範圍與佔據的位元組關係

b.儲存同樣的資料不同列型別所佔據的空間和效率是不一樣的

c.乙個位元組八個位

d.參考

1、 數值型

b.整形:

tinyint(佔1個位元組-128~127 or 0~255)、smallint(2個位元組)、mediuint(3個位元組)、int(4個位元組)、bigint(8個位元組)

<1>學習tinyint的引數並驗證位元組與範圍的關係

(m) unsigned zerofill —-位數不夠用0補充到m位,無符號

alter

table class add snum smallint(5) zerofill not

null

default

0;#

<2>unsinged表示無符號,可以影響儲存範圍

a.浮點型:

<1>float(m,d),整數字和小數字一起儲存

<2>decimal(m,d),整數字和小數字分開儲存,精度更高

m代表總位數,d代表小數點右邊的位數。

alter

table salary add bonus float(5,2) unsigned not

null

default

0.0;

2、字元型

<1>char(m)定常型別,不夠m個長度就在尾部補上空格,湊齊m個長度,利用率<=100%

<2>varchar(m)變長型別,不用空格補全,利用率<100%

<3>text文字型別,不用加預設值,儲存文章內容,新聞內容等

create

table test(article text); #不用加not default

<4>blob二進位制型別,用來儲存影象/音訊等二進位制資訊

3、日期時間型

<1>日期型date,3個位元組,儲存範圍1000-01-01到9999-12-31

create

table test3(

star varchar(20) not

null

default

'', birth date

notnull

default

'0000-00-00'

)engine myisam charset utf8;

<2>時間型time,3個位元組

alter

table test3 add sign time

notnull

default

'00:00:00';

insert

into test3 (star,sign) values ('李旭','19:12:22');

<3>日期時間型datetime,8個位元組

create

table test4 (

sname varchar(20) not

null

default

'',logintime datetime not

null

default

'0000-00-00 00:00:00'

)engine myisam charset utf8;

desc test4;

<4>年份型別year,1個位元組

<5>timestamp,4個位元組

#建資料庫

create

database test;

use test;

#建立表

#所謂的建表就是宣告列的過程,所以要首先分析列

create

table member(

id int unsigned auto_increment primary

key,

username char(20) not

null

default

'',gender char(1) not

null

default

'',weight tinyint unsigned not

null

default

0,birth date

notnull

default

'0000-00-00',

salary decimal(8,2) not

null

default

0.00,

lastlogin int unsigned not

null

default

0)engine myisam charset utf8;

#修改表的語法

create

table m1(

id int unsigned auto_increment primary

key)engine myisam charset utf8;#建表

desc m1;#檢視

#增加列

alter

table m1 add username char(20) not

null

default

'';#在最後一列,增加一列

desc m1;#檢視

alter

table m1 add birth date

notnull

default

'0000-00-00';#在最後一列,增加生日列

desc m1;#檢視

alter

table m1 add gender char(1) not

null

default

''after username;#增加性別列,加在username後

desc m1;#檢視

alter

table m1 add pid int

notnull

default

0first;#在第一列增加一列

desc m1;#檢視

#刪除列

alter

table m1 drop pid;#刪除pid列

desc m1;#檢視

#修改列型別

alter

table m1 modify gender char(4) not

null

default

'';#吧char(1)改為char(4)

desc m1;#檢視

#修改列名和型別

alter

table m1 change id uid int unsigned ;#注意檢視表的變化,自增長丟失了,但是主鍵還在

desc m1;#檢視

MYSQL建表時資料型別的選擇

對於相同級別的資料型別,應該優先選擇占用空間小的資料型別。大小範圍 signed 範圍 unsigned 用途tinyint 1 位元組 128,127 0,255 小整數值,如年齡 smallint 2 位元組 32768,32 767 0,65535 大整數值 mediumint 3 位元組 8...

msyql如何建表及mysql資料型別介紹

這樣做就可以建立乙個資料庫 格式 create database 資料庫名稱建立乙個表 這樣做就可以建立乙個資料庫中的表 create table 表名稱 列名稱1 資料型別,列名稱2 資料型別,例項 本例演示如何建立名為 person 的表,有四個列。列名是 lastname firstname ...

Oracle 建表常用資料型別詳解

前言 為列指定資料型別並不難,難的是指定合適的資料型別。同樣是字串型別,選擇定長還是變長,其中大有文章。所以需要耐心而細緻的學習下面的內容。建立表時,必須為表的各個列指定資料型別。如果實際的資料與該列的資料型別不相匹配,則資料庫會拒絕儲存。如為學生指定出生日期為 1980 13 31 在oracle...