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...