1. 程式人生 > >MySQL建表過程/資料型別

MySQL建表過程/資料型別

須知

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

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

C.一個位元組八個位

D.參考

MySQL三大字元型別

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 not null default '0000-00-00'
 )engine myisam charset utf8;

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

alter table
test3 add sign time not null 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 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;

#修改表的語法
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 not null 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 not null default 0 first;#在第一列增加一列
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;#檢視