作為一種開放源代碼關系數據庫管理系統,MySQL數據庫占據了中小型數據庫應用程序市場的一半。 在高峰期,全球超過70%的網站后端使用MySQL數據庫。因此很多人都想轉行MySQL數據庫,但是做MySQL數據庫一般都會面臨很多問題,例如MySQL數據庫是如何建立約束的?如何將MySQL默認編碼改為UTF8?下面我們就來解決一下這兩個問題。
MySQL數據庫是如何建立約束的?
MySQL數據庫建立約束有兩種方法,第一種:創建表的時候,第二種:建表完成之后,下文是詳細介紹。
第一種:創建表的時候
create table table_name(
列名1 數據類型 (int) primary key auto_increment,
列名2 數據類型 not null,
列名3 數據類型 unique,
列名4 數據類型 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 列名 數據類型 not null
刪除:alter table table_name modify 列名 數據類型 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 關閉mysql服務
b. 復制my-dafault.ini,重命名為my.ini,進入里面
UBUNTU:
** sudo vim /etc/mysql/my.cnf **進入
執行以下操作:
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服務就生效。注意:[mysqld]字段與[mysql]字段是有區別的。這點在網上沒人反饋過。
注: 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/ |
+--------------------------+----------------------------+
上述就是關于MySQL數據庫是如何建立約束的,以及如何將MySQL默認編碼改為UTF8的全部內容介紹,想了解更多關于MySQL數據庫的信息,請繼續關注中培偉業。