作為一種開放源代碼關(guān)系數(shù)據(jù)庫管理系統(tǒng),MySQL數(shù)據(jù)庫占據(jù)了中小型數(shù)據(jù)庫應(yīng)用程序市場的一半。 在高峰期,全球超過70%的網(wǎng)站后端使用MySQL數(shù)據(jù)庫。因此很多人都想轉(zhuǎn)行MySQL數(shù)據(jù)庫,但是做MySQL數(shù)據(jù)庫一般都會面臨很多問題,例如MySQL數(shù)據(jù)庫是如何建立約束的?如何將MySQL默認編碼改為UTF8?下面我們就來解決一下這兩個問題。
MySQL數(shù)據(jù)庫是如何建立約束的?
MySQL數(shù)據(jù)庫建立約束有兩種方法,第一種:創(chuàng)建表的時候,第二種:建表完成之后,下文是詳細介紹。
第一種:創(chuàng)建表的時候
create table table_name(
列名1 數(shù)據(jù)類型 (int) primary key auto_increment,
列名2 數(shù)據(jù)類型 not null,
列名3 數(shù)據(jù)類型 unique,
列名4 數(shù)據(jù)類型 default '值',
constraint 索引名 foreign key(外鍵列)references 主鍵表(主鍵列)
on delete cascade | on delete set null
)
第二種:建表完成之后
1.主鍵約束
添加:alter table table_name add primary key (字段)
刪除:alter table table_name drop primary key
2.非空約束
添加:alter table table_name modify 列名 數(shù)據(jù)類型 not null
刪除:alter table table_name modify 列名 數(shù)據(jù)類型 null
3.唯一約束
添加:alter table table_name add unique 約束名(字段)
刪除:alter table table_name drop key 約束名
4.自動增長
添加:alter table table_name modify 列名 int auto_increment
刪除:alter table table_name modify 列名 int
5.外鍵約束
添加:alter table table_name add constraint 約束名 foreign key(外鍵列)
references 主鍵表(主鍵列)
刪除:
第一步:刪除外鍵
alter table table_name drop foreign key 約束名
第二步:刪除索引
alter table table_name drop index 索引名
[^1]:
約束名和索引名一樣
6.默認值
添加:alter table table_name alter 列名 set default '值'
刪除:alter table table_name alter 列名 drop default
如何將MySQL默認編碼改為UTF8?
windows:
a. WIN+R net stop mysql 關(guān)閉mysql服務(wù)
b. 復(fù)制my-dafault.ini,重命名為my.ini,進入里面
UBUNTU:
** sudo vim /etc/mysql/my.cnf **進入
執(zhí)行以下操作:
1、在[client]字段里加入default-character-set=utf8,如下:
[client]
port = 3306
socket = /var/lib/mysql/mysql.sock
default-character-set=utf8
2、在[mysqld]字段里加入character-set-server=utf8,如下:
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
character-set-server=utf8
3、在[mysql]字段里加入default-character-set=utf8,如下:
[mysql]
no-auto-rehash
default-character-set=utf8
修改完成后,service mysql restart重啟mysql服務(wù)就生效。注意:[mysqld]字段與[mysql]字段是有區(qū)別的。這點在網(wǎng)上沒人反饋過。
注: show variables like 'character%' 可查看mysql編碼方式,修改完成后是這樣的:
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
上述就是關(guān)于MySQL數(shù)據(jù)庫是如何建立約束的,以及如何將MySQL默認編碼改為UTF8的全部內(nèi)容介紹,想了解更多關(guān)于MySQL數(shù)據(jù)庫的信息,請繼續(xù)關(guān)注中培偉業(yè)。