mysql筆記集錦4

day4
日期/時間類型:
date/time/datetime/year


tee D:/0708.sql


#date:存儲年-月-日
示例代碼:
create table test3(
star varchar(20) not null default '',
birth date not null default '0000-00-00'
)engine myisam charset utf8;
//
insert into test3
values
('周杰倫','1232-11-03');


##注意:Error1366:這是因爲客戶端沒有聲明字符集;
  //改:set names gbk;
##date類型能存儲哪年到哪年?
  //1000-01-01~9999-12-31;


#time時間類型 :20:20:20
例如:論壇簽到,記錄簽到時間;


示例代碼:
alter table test3
add sign time not null default '00:00:00';
//
insert into test3(
star,sign)
values('cc','19:10:45');


#datetime類型:日期時間類型;
例如:yyyy-mm--dd hh:ii:ss;


示例代碼:
create table test4(
sname varchar(20) not null default '',
logintime datetime not null default '0000-00-00 00:00:00'
)engine myisam charset utf8;
//
insert into test4
values
('oo','2009-10-13 15:34:45');//OK;


思考:
用char來存儲?
##可以,不過用datetime存儲日期時間,可以省空間;


#timestamp:顯示格式和datetime一樣;
示例代碼:
create table test5(
ts timestamp default CURRENT_TIMESTAMP,//current_timestamp隨時取出當前時間
id,int
)engine myisam charset utf8;
//
insert into test5(id)
values
(1),(2);


#year:年份類型
示例代碼:
create table test6(
thing varchar(20) not null default '',
ya year not null default '0000'
)engine myisam charset utf8;
//
insert into test6
values
('feishuizhishan','383');//Error
##超出範圍:year類型只佔1字節,最多能存256種變化:1901-2155;
##如果錯誤,還可以存0000年;
//
insert into test6
values
('chibi','1911'),//OK
('xinhai','2156');//Error


//year類型還可以簡寫爲兩位;
##不推薦這樣寫,換算麻煩:【00-69】+ 2000;【70-99】+ 1000;
//
create table test7(
ya year(2)//2位
)engine myisam charset utf9;
//
insert into test
values
('89'),
('12');






二.建表
#練習:SNS社交
會員表 member
id 主鍵;
username; 
gender; 
weight; 
birth; 
salary; 
logintime; 
description;
列類型:int/(unsigned);
varchar(20);
char(1)/tinyint;
tinyint/(unsigned);
date
decimal(8,2)
datetime
varchar/text;
分析:這張表除了username and description列之外,每一列都是定長的,不滿不妨讓其所有列都定長,可以極大提高查詢速度;
##username char(20);
  //少量的改變是可以的,雖然會造成空間的浪費,但是提高了查詢的速度;
##description char(1500)
  //卻浪費了太多,另一方面,人的簡介一旦確認,改的頻率不高,我們可以把它單獨拿出來,另放一張表裏;


id int/unsigned;
Username char(20);
desctription varchar(1300);


//在開發中,會員的信息優化往往是把頻繁使用的信息,優先考慮效率,存儲到一張表中,不常用到的信息和比較佔據空間的信息,優先考慮空間佔用,存儲到輔表中;


##longin int unsigned;


//代碼示例:
create table  member(
列1聲明,列1參數;
列2聲明,列2參數;
列3聲明,列3參數;
......., .......
)engine myisam/bbdb charset utf8/gbk;


//
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 not null default '0000-00-00',
salary decimal(8,2) not null default 0.00,
lastlogin int unsigned not null default 0
)engine myisam charset utf8;


練習題:建一個電子商城,如何設計商品表?



















































































發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章