mySQL 教程 第2章 安裝和介紹mySQL

設置mySQL字符集mysql

支持中文的字符集是utf8,該設置能夠更改mySQL配置文件進行全局設置,也能夠針對數據庫設置,也能夠針對表設置,也能夠針對列設置。字符集更改後新插入的數據生效,對之前不生效。sql

練習1:更改MySQL的默認字符集數據庫

直接修改 my.cnf,增長一行內容,而後重啓 MySQL,使之全局生效,影響新建的全部數據庫。ubuntu

default-character-set = utf8緩存

重啓mySQL服務安全

root@ubuntuServer:~# /etc/init.d/mysql restart服務器

查看全局默認字符集併發

查看支持的全部字符集工具

mysql> show character set;性能

<img width="" height="" " src="http://img.ddvip.com/2013/0226/201302260159334210.png"/>

練習2:爲一個數據庫指定字符集

指定數據庫字符集後,該數據庫下建立的表默認都採用該庫指定的字符集。

一、建立數據庫時,指定其字符集

CREATE DATABASE db DEFAULT CHARSET UTF8;

二、或者採用 ALTER 語法來轉換字段的字符集

ALTER DATABASE db DEFAULT CHARSET UTF8;

使用圖形管理界面也能夠爲數據庫指定字符集

練習3:爲 一個數據表指定字符集

指定數據表字符集後,該數據表裏的全部字符型字段默認都使用該表指定的字符集。

一、建立數據表時,指定其字符集

CREATE TABLE tbl

(

......

) ENGINE = MyISAM DEFAULT CHARSET UTF8;

二、或者採用 ALTER 語法來轉換字段的字符集

ALTER TABLE tbl CONVERT TO CHARACTER SET utf8;

三、採用其餘客戶端工具來設定,例如 Navicat/MySQL Front/PhpMyAdmin

練習4:爲一個字段指定字符集

儘管數據表建立時已經指定默認字符集了,可是該表裏面的字段仍是能夠指定本身的字符集的。

一、建立數據表時,指定其字符集

CREATE TABLE tbl

(

......

name CHAR(20) CHARACTER SET UTF8,

......

) ENGINE = MyISAM DEFAULT CHARSET UTF8;

二、或者採用 ALTER 語法來轉換字段的字符集

ALTER TABLE tbl CHANGE name name CHAR(20) CHARACTER SET utf8;

三、採用其餘客戶端工具來設定,例如 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命令都能看到些什麼東西,可使用以下命令。

查看數據庫

查看建立數據庫的命令

查看建立表的命令

相關文章
相關標籤/搜索