mySQL 教程 第2章 安装和介绍mySQL
第2章 安裝和介紹mySQL
設置mySQL字符集
支持中文的字符集是utf8,該設置可以更改mySQL配置文件進行全局設置,也可以針對數據庫設置,也可以針對表設置,也可以針對列設置。字符集更改后新插入的數據生效,對以前不生效。
練習1:更改MySQL的默認字符集
直接修改 my.cnf,增加一行內容,然后重啟 MySQL,使之全局生效,影響新建的所有數據庫。
default-character-set = utf8
重啟mySQL服務
root@ubuntuServer:~# /etc/init.d/mysql restart
查看全局默認字符集
查看支持的所有字符集
mysql> show character set;
練習2:為一個數據庫指定字符集
指定數據庫字符集后,該數據庫下創建的表默認都采用該庫指定的字符集。
1、創建數據庫時,指定其字符集
CREATE DATABASE db DEFAULT CHARSET UTF8;
2、或者采用 ALTER 語法來轉換字段的字符集
ALTER DATABASE db DEFAULT CHARSET UTF8;
使用圖形管理界面也可以為數據庫指定字符集
練習3:為 一個數據表指定字符集
指定數據表字符集后,該數據表里的所有字符型字段默認都使用該表指定的字符集。
1、創建數據表時,指定其字符集
CREATE TABLE tbl
(
......
) ENGINE = MyISAM DEFAULT CHARSET UTF8;
2、或者采用 ALTER 語法來轉換字段的字符集
ALTER TABLE tbl CONVERT TO CHARACTER SET utf8;
3、采用其他客戶端工具來設定,例如 Navicat/MySQL Front/PhpMyAdmin
練習4:為一個字段指定字符集
盡管數據表創建時已經指定默認字符集了,但是該表里面的字段還是可以指定自己的字符集的。
1、創建數據表時,指定其字符集
CREATE TABLE tbl
(
......
name CHAR(20) CHARACTER SET UTF8,
......
) ENGINE = MyISAM DEFAULT CHARSET UTF8;
2、或者采用 ALTER 語法來轉換字段的字符集
ALTER TABLE tbl CHANGE name name CHAR(20) CHARACTER SET utf8;
3、采用其他客戶端工具來設定,例如 Navicat/MySQL Front/PhpMyAdmin
練習5:設定客戶端字符集
為客戶端連接指定字符集,最好服務器的字符集一致。
設置putty字符集
查看姓名是亂碼
點擊“應用”。
MySQL存儲引擎
MySQL存儲引擎概述
插件式存儲引擎是MySQL數據庫最重要的特性之一,用戶可以根據應用的需要選擇如何存儲和索引數據庫,是否使用事物等。mySQL默認支持多種存儲引擎,以適應不同領域的數據庫應用需要。用戶可以通過選擇使用不同的存儲引擎提高應用的效率,提供靈活的存儲,用戶設置可以按照自己的需要定制和使用自己的存儲引擎,以實現最大程度的可定制性。
MySQL常用的存儲引擎為MyISAM、InnoDB、MEMORY、MERGE,其中InnoDB提供事務安全表,其他存儲引擎都是非事務安全表。
MyISAM是MySQL的默認存儲引擎。MyISAM不支持事務、也不支持外鍵,但其訪問速度快,對事務完整性沒有要求。
InnoDB存儲引擎提供了具有提交、回滾和崩潰恢復能力的事務安全。但是比起MyISAM存儲引擎,InnoDB寫的處理效率差一些并且會占用更多的磁盤空間以保留數據和索引。MySQL支持外鍵存儲引擎只有InnoDB,在創建外鍵的時候,要求附表必須有對應的索引,子表在創建外鍵的時候也會自動創建對應的索引。
存儲引擎各自的一些特點
上面提到的四種存儲引擎都有各自適用的環境,這取決于它們獨有的一些特征。主要體現在性能、事務、并發控制、參照完整性、緩存、 故障恢復,備份及回存等幾個方面
目前比較普及的存儲引擎是MyISAM和InnoDB.而MyISAM又是絕大部分Web應用的首選。MyISAM與InnoDB的主要的不同點在于性能和事務控制上。
MyISAM是早期ISAM(Indexed Sequential Access Method,我現在用的MySQL5.0已經不支持ISAM了)的擴展實現,ISAM被設計為適合處理讀頻率遠大于寫頻率這樣一種情況,因此ISAM以及后來的MyISAM都沒有考慮對事物的支持,不需要事務記錄,ISAM的查詢效率相當可觀,而且內存占用很少。MyISAM在繼承了這類優點的同時,與時俱進的提供了大量實用的新特性和相關工具。例如考慮到并發控制,提供了表級鎖。而且由于MyISAM是每張表使用各自獨立的存儲文件(MYD數據文件和MYI索引文件),使得備份及恢復十分方便(拷貝覆蓋即可),而且還支持在線恢復。
所以如果你的應用是不需要事務,不支持外鍵。處理的只是基本的CRUD(增刪改查)操作,那么MyISAM是不二選擇。
1. 設置mysql的默認存儲引擎
編輯my.cnf配置文件,在服務器端配置信息[mysqld]下面添加:
default-storage-engine = MyISAM
即可設置mysql數據庫的默認引擎為MyISAM
2. 指定表的存儲引擎
如:
create table t_innodb( id int(3))
engine = innodb;
然后使用
mysql> show table status like 't_innodb';
查看表的詳細信息。
3. 修改表的存儲引擎
ALTER TABLE t_name ENGINE = innodb;
更改默認存儲引擎和表的存儲引擎
4. 更改默認存儲引擎
查看默認存儲引擎
更改默認存儲引擎
編輯配置文件
在[mysql]下添加
default-storage-engine = InnoDB
再次查看默認引擎,發現已經被更改
重啟mySQL服務
5. 更表的存儲引擎
雙擊某個表,可以更改表的存儲引擎
使用命令更改
mysql> use schoolDB;
mysql> alter table TStudent engine=InnoDB;
使用管理工具更改
InnoDB存擎的特點
6. 自動增長列
自動增長列可以送給插入,但是插入的如果是空或者為0,則實際插入的值是自動增長后的值。
創建一個表,指定自動增長列,存儲引擎innoDB。
create table au
(
studentid int not null auto_increment,
name varchar(10),
primary key(studentid)
)
engine=innodb CHARACTER SET UTF8,
插入記錄,有空值且自增列也沒按順序
insert au values (1,'韓立剛'),(3,'韓立輝'),(2,'張京'),(null,'楊帥')
可以看到自增列的值
select * from au
外鍵約束
MySQL支持外鍵存儲引擎只有InnoDB,在創建外鍵的時候,要求父表必須有對應的索引,子表在創建外鍵的時候也會自動創建索引
在刪除更新父表時,對子表進行相應的操作,包括restrict、cascade、set null和no action
使用InnoDB存儲引擎數據按主鍵順序存放
如果不創建索引,數據以插入順序存放
create table au1
(
studentid int,
name varchar(10),
)
engine=innodb
insert au1 values (1,'韓立剛'),(3,'韓立輝'),(2,'張京'),(8,'楊帥'),(6,'楊柳青')
select * from au1
給表添加主鍵
alter TABLE `au1` ADD PRIMARY KEY (studentid)
select * from au1
創建數據庫和表
練習7:創建數據庫
也可使用命令創建數據庫
輸入以下命令 create database SchoolDB; 選中執行
練習8:創建表
選中剛才創建的數據庫 執行創建表的語句
創建學生表
create table TStudent
(StudentID nvarchar(15),
Sname nvarchar(10),
sex nchar(1),
cardID nvarchar(20),
Birthday datetime,
Email nvarchar(40),
Class nvarchar(20),
enterTime datetime )
創建課程表
create table TSubject
(
subJectID nvarchar(10),
subJectName nvarchar(30),
BookName nvarchar(30),
Publisher nvarchar(20)
)
創建分數表
create table TScore
(
StudentID nvarchar(15),
subJectID nvarchar(10),
mark decimal
)
練習9:使用圖形界面產生表的SQL語句
使用圖形界面可以產生創建、刪除、更改對象的SQL語句。
使用mySQL幫助
查看mySQL幫助
練習10:查看幫助
如果你不知道幫助能夠提供什么?輸入
? contents
可以查看可用的幫助
輸入? Data definition
查看創建表的語法
快速查閱幫助
在實際應用當中,如果需要快速查看某項語法時,可以使用關鍵字進行快速查詢。比如想知道show命令都能看到些什么東西,可以使用如下命令。
查看數據庫
查看創建數據庫的命令
查看創建表的命令
?
廣告
新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!總結
以上是生活随笔為你收集整理的mySQL 教程 第2章 安装和介绍mySQL的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 修改程序的形而上学思考(随笔)
- 下一篇: [PAL规范]SAP HANA PAL演