mysql篇第三課:庫的建立和表的詳解
這節課我們講講怎麼建庫,以及對錶的建立詳細分析一下:
建庫特別簡單:
create database dbname;
來試試
接下來講建表,先把建表語句粘一下:
課件裡的不通用啊。。百度一個吧
CREATE TABLE IF NOT EXISTS 表明(
欄位名 型別 鍵的型別 自增 是否為空 ,
...
)ENGINE=引擎名 DEFAULT CHARSET=預設編碼;
上面的鍵的型別、自增、是否為空皆為可選項,即可寫可不寫
if not exist也是可寫可不寫
說明一下,sql大小寫不敏感,所以create 和 CREATE 和 creaTE都是一樣的
下面來舉個例子:
Create table if not exists t_user (
‘id’ int(11) primary key auto_increment not null,
‘name’ varchar(12) not null,
age int(2)
) engine=innodb default charset=utf8
終於成功啦,不簡單
說一下剛才的錯誤: 我剛把 exists 寫成了exist,少寫了個s,所以一直報錯
然後,欄位名和表名加不加’’都一樣,加’’的話欄位名和表名可以包含空格
但是,不推薦欄位名和表名包含空格
加’’也可以防止欄位名和mysql關鍵字衝突,但是建議在發生衝突的時候解決辦法是給欄位名加字首或者字尾而不是加’’,所以一般情況下我們不加’’,當然加了也是對的,看個人習慣。
然後,if not exists 表示如果不存在,如果不加這個就會強制建立表,但由於表名唯一,所以如果庫裡已經存在同名表則會直接報錯,如果加上if not exists,如果庫裡有同名表,則該建表sql不會被執行,但不會報錯,即不會影響後續sql繼續執行,所以在建表的時候建議加上 if not exists,注意exists最後一個s別忘了寫
接下來,解釋下剛剛那個例子:
- int(11),括號裡的11表示這個整數的最大長度
- primary key是主鍵, 主鍵的作用是該列的值必須唯一,不可重複
- not null 表示該列的值不能為空,不加就表示可以為空
- auto increment 表示自動增長,mysql會以自增的方式自動提供該列的資料
- varchar(12) varchar是可變長度的字串,varchar(12)表名這個字串長度最大為12
- char(12) char是不可變長度的字串,char(12)表示這個字串的長度 必須是12
- mysql裡還有很多資料型別,常用的還有float,double,text等
下面介紹一款mysql視覺化工具 Navicat for mysql
來看看怎麼使用,我先把舊有連線刪了
使用步驟;
- 建立連線
連線名隨便取,IP地址由於用的是本地資料庫所以就localhost
Mysql預設埠號是3306
然後輸入一下使用者名稱和密碼就可以了
- 雙擊建立好的連線
這樣你mysql裡的庫就都能顯示出來,想 開啟哪個庫就雙擊哪個庫,現在我要用teach庫
可以看到表裡有我們剛剛建好的t_user表
都是漢字,不用我過多解釋,最後那個鑰匙就是key,有鑰匙就表示該列是主鍵
注意: 主鍵可以是多列,多列當主鍵的話只要這兩列的值不完全相同即合法
比如:
如果id和name是主鍵
那麼兩行資料(12,’小葉’,20)和(12,’徒弟’,18)是可以共存的
當然在這個例子裡主鍵就是id
查看錶的資料的話雙擊表就可以了
目前還沒有資料
- 如何用navicat建立庫和表?
看視訊
其他功能自行探索或百度,以後我會直接在navicat裡操作
最後,儲存引擎預設是Innodb,不要改,字元編碼一定要選uft-8,否則中文亂碼