日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mySQL 教程 第2章 安装和介绍mySQL

發(fā)布時間:2025/3/17 数据库 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mySQL 教程 第2章 安装和介绍mySQL 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

第2章 安裝和介紹mySQL

設(shè)置mySQL字符集

支持中文的字符集是utf8,該設(shè)置可以更改mySQL配置文件進(jìn)行全局設(shè)置,也可以針對數(shù)據(jù)庫設(shè)置,也可以針對表設(shè)置,也可以針對列設(shè)置。字符集更改后新插入的數(shù)據(jù)生效,對以前不生效。

練習(xí)1:更改MySQL的默認(rèn)字符集

直接修改 my.cnf,增加一行內(nèi)容,然后重啟 MySQL,使之全局生效,影響新建的所有數(shù)據(jù)庫。

default-character-set = utf8

重啟mySQL服務(wù)

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

查看全局默認(rèn)字符集

查看支持的所有字符集

mysql> show character set;

練習(xí)2:為一個數(shù)據(jù)庫指定字符集

指定數(shù)據(jù)庫字符集后,該數(shù)據(jù)庫下創(chuàng)建的表默認(rèn)都采用該庫指定的字符集。

1、創(chuàng)建數(shù)據(jù)庫時,指定其字符集

CREATE DATABASE db DEFAULT CHARSET UTF8;

2、或者采用 ALTER 語法來轉(zhuǎn)換字段的字符集

ALTER DATABASE db DEFAULT CHARSET UTF8;

使用圖形管理界面也可以為數(shù)據(jù)庫指定字符集

練習(xí)3:為 一個數(shù)據(jù)表指定字符集

指定數(shù)據(jù)表字符集后,該數(shù)據(jù)表里的所有字符型字段默認(rèn)都使用該表指定的字符集。

1、創(chuàng)建數(shù)據(jù)表時,指定其字符集

CREATE TABLE tbl

(

......

) ENGINE = MyISAM DEFAULT CHARSET UTF8;

2、或者采用 ALTER 語法來轉(zhuǎn)換字段的字符集

ALTER TABLE tbl CONVERT TO CHARACTER SET utf8;

3、采用其他客戶端工具來設(shè)定,例如 Navicat/MySQL Front/PhpMyAdmin

練習(xí)4:為一個字段指定字符集

盡管數(shù)據(jù)表創(chuàng)建時已經(jīng)指定默認(rèn)字符集了,但是該表里面的字段還是可以指定自己的字符集的。

1、創(chuàng)建數(shù)據(jù)表時,指定其字符集

CREATE TABLE tbl

(

......

name CHAR(20) CHARACTER SET UTF8,

......

) ENGINE = MyISAM DEFAULT CHARSET UTF8;

2、或者采用 ALTER 語法來轉(zhuǎn)換字段的字符集

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

3、采用其他客戶端工具來設(shè)定,例如 Navicat/MySQL Front/PhpMyAdmin

練習(xí)5:設(shè)定客戶端字符集

為客戶端連接指定字符集,最好服務(wù)器的字符集一致。

設(shè)置putty字符集

查看姓名是亂碼

點擊“應(yīng)用”。

MySQL存儲引擎

MySQL存儲引擎概述

插件式存儲引擎是MySQL數(shù)據(jù)庫最重要的特性之一,用戶可以根據(jù)應(yīng)用的需要選擇如何存儲和索引數(shù)據(jù)庫,是否使用事物等。mySQL默認(rèn)支持多種存儲引擎,以適應(yīng)不同領(lǐng)域的數(shù)據(jù)庫應(yīng)用需要。用戶可以通過選擇使用不同的存儲引擎提高應(yīng)用的效率,提供靈活的存儲,用戶設(shè)置可以按照自己的需要定制和使用自己的存儲引擎,以實現(xiàn)最大程度的可定制性。

MySQL常用的存儲引擎為MyISAM、InnoDB、MEMORY、MERGE,其中InnoDB提供事務(wù)安全表,其他存儲引擎都是非事務(wù)安全表。

MyISAM是MySQL的默認(rèn)存儲引擎。MyISAM不支持事務(wù)、也不支持外鍵,但其訪問速度快,對事務(wù)完整性沒有要求。

InnoDB存儲引擎提供了具有提交、回滾和崩潰恢復(fù)能力的事務(wù)安全。但是比起MyISAM存儲引擎,InnoDB寫的處理效率差一些并且會占用更多的磁盤空間以保留數(shù)據(jù)和索引。MySQL支持外鍵存儲引擎只有InnoDB,在創(chuàng)建外鍵的時候,要求附表必須有對應(yīng)的索引,子表在創(chuàng)建外鍵的時候也會自動創(chuàng)建對應(yīng)的索引。

存儲引擎各自的一些特點

上面提到的四種存儲引擎都有各自適用的環(huán)境,這取決于它們獨有的一些特征。主要體現(xiàn)在性能、事務(wù)、并發(fā)控制、參照完整性、緩存、 故障恢復(fù),備份及回存等幾個方面

目前比較普及的存儲引擎是MyISAM和InnoDB.而MyISAM又是絕大部分Web應(yīng)用的首選。MyISAM與InnoDB的主要的不同點在于性能和事務(wù)控制上。

MyISAM是早期ISAM(Indexed Sequential Access Method,我現(xiàn)在用的MySQL5.0已經(jīng)不支持ISAM了)的擴(kuò)展實現(xiàn),ISAM被設(shè)計為適合處理讀頻率遠(yuǎn)大于寫頻率這樣一種情況,因此ISAM以及后來的MyISAM都沒有考慮對事物的支持,不需要事務(wù)記錄,ISAM的查詢效率相當(dāng)可觀,而且內(nèi)存占用很少。MyISAM在繼承了這類優(yōu)點的同時,與時俱進(jìn)的提供了大量實用的新特性和相關(guān)工具。例如考慮到并發(fā)控制,提供了表級鎖。而且由于MyISAM是每張表使用各自獨立的存儲文件(MYD數(shù)據(jù)文件和MYI索引文件),使得備份及恢復(fù)十分方便(拷貝覆蓋即可),而且還支持在線恢復(fù)。

所以如果你的應(yīng)用是不需要事務(wù),不支持外鍵。處理的只是基本的CRUD(增刪改查)操作,那么MyISAM是不二選擇。

1. 設(shè)置mysql的默認(rèn)存儲引擎

編輯my.cnf配置文件,在服務(wù)器端配置信息[mysqld]下面添加:

default-storage-engine = MyISAM

即可設(shè)置mysql數(shù)據(jù)庫的默認(rèn)引擎為MyISAM

2. 指定表的存儲引擎

如:

create table t_innodb( id int(3))

engine = innodb;

然后使用

mysql> show table status like 't_innodb';

查看表的詳細(xì)信息。

3. 修改表的存儲引擎

ALTER TABLE t_name ENGINE = innodb;

更改默認(rèn)存儲引擎和表的存儲引擎

4. 更改默認(rèn)存儲引擎

查看默認(rèn)存儲引擎

更改默認(rèn)存儲引擎

編輯配置文件

在[mysql]下添加

default-storage-engine = InnoDB

再次查看默認(rèn)引擎,發(fā)現(xiàn)已經(jīng)被更改

重啟mySQL服務(wù)

5. 更表的存儲引擎

雙擊某個表,可以更改表的存儲引擎

使用命令更改

mysql> use schoolDB;

mysql> alter table TStudent engine=InnoDB;

使用管理工具更改

InnoDB存擎的特點

6. 自動增長列

自動增長列可以送給插入,但是插入的如果是空或者為0,則實際插入的值是自動增長后的值。

創(chuàng)建一個表,指定自動增長列,存儲引擎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,在創(chuàng)建外鍵的時候,要求父表必須有對應(yīng)的索引,子表在創(chuàng)建外鍵的時候也會自動創(chuàng)建索引

在刪除更新父表時,對子表進(jìn)行相應(yīng)的操作,包括restrict、cascade、set null和no action

使用InnoDB存儲引擎數(shù)據(jù)按主鍵順序存放

如果不創(chuàng)建索引,數(shù)據(jù)以插入順序存放

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

創(chuàng)建數(shù)據(jù)庫和表

練習(xí)7:創(chuàng)建數(shù)據(jù)庫

也可使用命令創(chuàng)建數(shù)據(jù)庫

輸入以下命令 create database SchoolDB; 選中執(zhí)行

練習(xí)8:創(chuàng)建表

選中剛才創(chuàng)建的數(shù)據(jù)庫 執(zhí)行創(chuàng)建表的語句

創(chuàng)建學(xué)生表

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 )

創(chuàng)建課程表

create table TSubject

(

subJectID nvarchar(10),

subJectName nvarchar(30),

BookName nvarchar(30),

Publisher nvarchar(20)

)

創(chuàng)建分?jǐn)?shù)表

create table TScore

(

StudentID nvarchar(15),

subJectID nvarchar(10),

mark decimal

)

練習(xí)9:使用圖形界面產(chǎn)生表的SQL語句

使用圖形界面可以產(chǎn)生創(chuàng)建、刪除、更改對象的SQL語句。

使用mySQL幫助

查看mySQL幫助
練習(xí)10:查看幫助

如果你不知道幫助能夠提供什么?輸入

? contents

可以查看可用的幫助

輸入? Data definition

查看創(chuàng)建表的語法

快速查閱幫助

在實際應(yīng)用當(dāng)中,如果需要快速查看某項語法時,可以使用關(guān)鍵字進(jìn)行快速查詢。比如想知道show命令都能看到些什么東西,可以使用如下命令。

查看數(shù)據(jù)庫

查看創(chuàng)建數(shù)據(jù)庫的命令

查看創(chuàng)建表的命令

?

廣告

新人創(chuàng)作打卡挑戰(zhàn)賽發(fā)博客就能抽獎!定制產(chǎn)品紅包拿不停!

總結(jié)

以上是生活随笔為你收集整理的mySQL 教程 第2章 安装和介绍mySQL的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。