1. ASCII
用途:用來映射簡單的單位元組字元,比如大小寫英文字母、阿拉伯數字、常用的標點符、運算符、控制字元等。
編碼范圍:U+0000 - U+007F
注意:對於用這類字元的場景夠用了,但是卻無法表達比如漢字,日文等編旅羨碼。
2. UNICODE
用途:用來映射包含 ASCII 以內的其他的所有字元。
編碼范圍:U+0000 - U+10FFFF
注意:ASCII 是 UNICODE 的子集,ASCII 編碼的字元可以無損轉換為 UNICODE 編碼的字元。
MySQL 常用字元集
1. Latin1
Latin1 是 cp1252 或者 ISO-8859-1 的別名。ISO-8859-1 編碼是單位元組編碼,向下兼容 ASCII。
編碼范圍:U+0000 - U+00FF
ISO-8859-1 收錄的字元除 ASCII 收錄的字元外,拆臘拍還包括西歐語言、希臘語、泰語、阿拉伯語、希伯來語對應的文字元號。
單位元組內的空間都被 ISO-8859-1 編碼佔用,所以能夠用 ISO-8859-1 編碼存儲、傳輸其他任何編碼的位元組流。
比如把一個 Utf8mb4 的編碼或者 GBK 的編碼存入 Latin1,局消不會有任何問題。因為 Latin1 保留了原始的位元組流,這也就是 MySQL 長期以來把 Latin1 做默認字元集的原因。
但是由於 Latin1 對任何字元都存放位元組流,造成了字元個數的浪費。
比如:
CHAR(10) CHARACTER SET LATIN1;CHAR(10) CHARACTER SET UTF8;
該欄位中存儲字元個數 UTF8 是 Latin1 的三倍!!!
2. GB18030
GB18030 是中國官方標准字元集,向前兼容 GBK、GB2312,是這兩個的超集。用 1、2、4 個位元組分別表示一個符號。比如對一般中文字元,默認是用兩個位元組編碼存儲。Windows 系統,默認用的就是 GB18030。
若只是存儲中文字元,那 GB18030 最佳。
原因有兩點:
1)佔用空間小,比如比 UTF8 小。
2)存儲的漢字根據拼音來排序,檢索快。
3. UTF8
UTF8 是 Unicode 的編碼實現,可以存儲 UNICODE 編碼對應的任何字元, 這也是使用最多的一種編碼。最大的特點就是變長的編碼方式,用 1 到 4 個位元組表示一個符號,可以根據不同的符號編碼位元組長度。
字母或數字用 1 位元組,漢字用 3 位元組,emoji 表情符號用 4 位元組。UTF8 字元集目前是使用最廣泛的。
注意!MySQL 里常說的 UTF8 是 UTF8MB3 的別名,UTF8MB3 是 UTF8MB4 的子集,UTF8MB4 才是真正的 4 位元組 UTF8 字元集!
UTF8MB3 表示最大支持 3 個位元組存儲字元,UTF8MB4 表示最大 4 個位元組存儲字元。根據實際需要和未來展望,MySQL 8.0 已經默認用 UTF8MB4 基礎字元集。
⑵ 如何創建一個使用gbk字元集的mydb2資料庫
一、創建和查看資料庫
1.創建資料庫
CREATE DATABASE [IF NOT EXISTS]#可選內容 db_name [create_specification]#如下定義:
[DEFAULT] CHARACTER SET charset_name#字元集 | [DEFAULT] COLLATE collation_name#校對規則
(1)創建一個名稱為mydb1的資料庫
create database mydb1;
(2) 創建一個使用gbk字元集的mydb3的資料庫
create database mydb2 character set gbk;
(3)創建一個使用utf8字元集,並帶校對規則的mydb3資料庫
create database mydb3 character set utf8 collate utf8_bin;
2.查看資料庫
(1)顯示資料庫 語句:
show databases;
(2) 顯示資料庫創建語句:
show create database mydb3;
3.修改資料庫
ALTER DATABASE [IF NOT EXISTS] db_name [alter_specification [, alter_specification [,........#規格如下
[DEFAULT] CHARECTER SET charset_name [DEFAULT] COLLATE collation_name
(1) 查看伺服器中的資料庫,並把其中某一個庫的字元集修改為utf8
alter database mydb2 character set utf8;
4.修改資料庫
DROP DATABASE [IF EXISTS] db_name
(1)刪除資料庫mydb3
drop database mydb3;
5.選擇資料庫
use 資料庫;
select database();#查看資料庫
二、資料庫中表的操作
1.學習資料庫的數據類型
2.增加表
CREATE TABLE table_name(
field1 datatype
field2 datatype
field3 datatype
field4 datatype
) character set 字元集 collate 校對規則 #建議默認
field:指定列名 datatype:指定列類型
(1)創建一個員工表employee
create table employee (
id int,
name varchar(20),
gender char(1),
birthday date,
entry_data date,
job varchar(50),
salay double,
resume text
);
3.查看錶
查看錶結構:desc tab_name;
查詢當前資料庫中的所有表:show tables;
查看錶的建表語句:show create table;
4.修改表
ALTER TABLE table_name ADD (column datatype [DEFAUL expr] [,column datatype]......);
ALTER TABLE table_name MODIFY (column datatype [DEFAUL expr] [,column datatype]......);
ALTER TABLE table_name DROP (column );
修改列的名稱:ALTER TABLE table_name change [column]
old_col_name column_definition;
修改表的名稱:rename table 表名 to 新表名;
修改表的字元集編碼:alter table tab_name character set utf8;
(1)在上面員工表基本上增加一個image列
alter table employee add image blob;
(2)修改job列,使其長度為60
alter table employee modify job varchar(60);
(3)刪除gender列
alter table employee drop gender;
(4)表名改為user
alter table employee to user;
(5)修改表的字元集為utf8
alter table user character set utf8;
(6)列名name修改為username
alter table user change name username varchar(20)
5.刪除表
drop table table_name;
三、表的約束
1.PRIMARY KEY 主鍵約束:非空&唯一
create table employee (
id int primary key,
name varchar(20),
gender char(1),
birthday date,
entry_data date,
job varchar(50),
salay double,
resume text
);
2.NOT NULL非空約束:不能為空
create table employee (
id int primary key,
name varchar(20),
gender char(1) not null,
birthday date,
entry_data date,
job varchar(50),
salay double,
resume text
);
3.UNIQUE唯一約束:唯一
create table employee (
id int primary key,
name varchar(20) unique,
gender char(1) not null,
birthday date,
entry_data date,
job varchar(50),
salay double,
resume text
);
4.DEFAULT默認約束:
create table employee (
id int primary key,
name varchar(20) unique,
gender char(1) not null,
birthday date,
entry_data date,
job varchar(50) DEFAULT 『sxs『,
salay double,
resume text
);
⑶ mysql 查詢一個時間之前的值
select * from Biz_ExamCollection where collectionType = 5 AND date_format(createDTM,'%Y-%m-%d') <= date_format(DATE_SUB(curdate(), INTERVAL 1 MONTH),'%Y-%m-%d')
MySQL查詢指定時間的數據:
#獲取當月數據
SELECT * FROM user_event WHERE DATE_FORMAT(create_time,'%Y-%m') = DATE_FORMAT(NOW(),'%Y-%m')
#獲取3月份數據
SELECT * FROM user_event WHERE DATE_FORMAT(create_time,'%Y-%m') = DATE_FORMAT('2016-03-01','%Y-%m')
#獲取三月份數據
SELECT * FROM user_event WHERE YEAR(create_time)='2016' AND MONTH(create_time)='3'
#獲取本周數據
SELECT * FROM user_event WHERE YEARWEEK(DATE_FORMAT(create_time,'%Y-%m-%d')) = YEARWEEK(NOW());
#查詢上周的數據
SELECT * FROM user_event WHERE YEARWEEK(DATE_FORMAT(create_time,'%Y-%m-%d')) = YEARWEEK(NOW())-1;
#查詢距離當前現在6個月的數據
SELECT * FROM user_event WHERE create_time BETWEEN DATE_SUB(NOW(),interval 6 month) and NOW();
#查詢上個月的數據
SELECT * FROM user_event WHERE DATE_FORMAT(create_time,'%Y-%m')=DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH),'%Y-%m')
擴展資洞飢飢料
MYSQL基礎知識:
資料庫增刪查改
創建資料庫:語法:create database 資料庫 [character 字元集 collate 校對規則]
查看資料庫:
查看所有資料庫:show databases;
查看某個資料庫:show create database 資料庫名;
修改資料庫:語法:alter database 資料庫名 character 字元集 collate 校對規則
刪除資料庫:語法:drop database 資料庫名;
切換資料庫:use 資料庫名;
查看當前使用資料庫:select database();
資料庫表操作
創建肢正表語法:
create table 表名 (
欄位名 類型(長度) 約束,
欄位名 類型(長度) 約束,
字納返段名 類型(長度) 約束
);
⑷ 創建一個StudentMis資料庫,資料庫採用gb2312和校對規則gb2312_chinese_
不需要重新安裝,找到前碼mysql的安裝目錄,打開my.ini,在裡面查找default-character-set ,改成你需要的字元集,然後點我的電卜明腦,右鍵,管理,服務,找到MYSQL的服務,重啟動服務就可以了型悔告
答案補充
點開始-程序-Mysql -Mysql server-mysql command line client
登錄一下,看能否登錄
⑸ 可以通過alterdatabase修改資料庫,但只能修改其使用的
在 MySQL 資料庫中只能對資料庫使用的字元集和校對規則進行修改,資料庫的這些特性都儲存在 db.opt 文件中。下面我們來介紹一下修改資料庫的基本操作。
在 MySQL 中,可以使用 ALTER DATABASE 來修改已經被創建或者存在的資料庫的相關參數。修改資料庫的語法格式為:
ALTER DATABASE [資料庫名] {
[ DEFAULT ] CHARACTER SET <字元集名> |
[ DEFAULT ] COLLATE <校對規則名>}
語法說明如下:
ALTER DATABASE 用於更改資料庫的全局特性。
使用 ALTER DATABASE 需要獲得資料庫 ALTER 許可權。
資料庫名談沒稱可以忽略,此時語團侍如句對應於默認資料庫。
CHARACTER SET 子句用於更塌啟改默認的資料庫字元集。
⑹ CREATE DATABASE `thinkcmf` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_c
資料庫字元集和校對
每一個資料庫有一個資料庫字元集和一個資料庫校對規則,它不能夠為空。CREATE DATABASE和
ALTER DATABASE語句有一個可選的子句來指定資料庫字元集和校對規則:
CREATE DATABASE db_name
[[DEFAULT] CHARACTER SET charset_name]
[[DEFAULT] COLLATE collation_name]
ALTER DATABASE db_name
[[DEFAULT] CHARACTER SET charset_name]
[[DEFAULT] COLLATE collation_name]
例如:
CREATE DATABASE db_name
DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
MySQL這樣選擇資料庫字元集和資料庫校對規則:
·如果指定了襪亮CHARACTER SET X和COLLATE Y,那麼採用字元集X和校對規則Y。
·如果指定了CHARACTER SET X而沒有指定COLLATE Y,那麼採用CHARACTER SET X和CHARACTER SET X的默認校對規則。
·否則,採用伺服器字元集和伺服器校對規鄭好橘則。
如果在CREATE TABLE語句中沒有指定表字元集和校對規則,則使喊團用資料庫字元集和校對規則作為默認值。
⑺ 創建一個StudentMis資料庫,資料庫採用gb2312和校對規則gb2312_chinese_
搜段轎一下:創建一個StudentMis數絕做據庫,並燃衡資料庫採用gb2312和校對規則gb2312_chinese_
⑻ MySQL資料庫可視化工具SQLyogEnt怎麼用
方法/步驟
打開SQLyogEnt,進入配置界面,點擊左上方【新建】
在彈出的對話欄里,填寫連接名稱,方便以後區分使用
創建連接完成,輸入
mysql主機地址 localhost
用戶名 root
資料庫連接密碼(一般默認為root)
埠3306
數據配置完成,點擊【立即連接】
資料庫連接成功,我們可以在右側命令行欄欄里輸入相應的sql語句,進行操作
也可以使用簡便的操作,右鍵點擊左上方【連接用戶】,在彈出的菜單欄選擇【創建資料庫】
然後設置資料庫編碼,資料庫名稱以及校對規則
如果我們已有資料庫文件,可以導入到SQLyog中進行操作,右鍵點擊選擇【導入sql語句即可】
⑼ 如何用sql建立資料庫
在 MySQL 中,可以使用 CREATE DATABASE 語句創建資料庫,語法格式如下:CREATE DATABASE [IF NOT EXISTS] <資料庫名>[[DEFAULT] CHARACTER SET <字元集名>][[DEFAULT] COLLATE <校對規則名>];
[ ]中的內容是可選的。語法說明如下:
<資料庫名>:創建資料庫的名稱。MySQL 的數據存儲區將以目錄方式表示 MySQL 資料庫,因此資料庫名稱必須符合操作系統的文件夾命名規則,不能以數字開頭,盡量要有實際意義。注意在 MySQL 中不區分大小寫。
IF NOT EXISTS:在創建資料庫之前進行判斷,只有該資料庫目前尚不存在時才能執行操作。此選項可以用來避免資料庫已經存在而重復創建的錯誤。
[DEFAULT] CHARACTER SET:指定資料庫的字元集。指定字元集的目的是為了避免在資料庫中存儲的數據出現亂碼的情況。如果在創建資料庫時不指定字元集,那麼就使用系統的默認字元集。
[DEFAULT] COLLATE:指定字元集的默認校對規則。
MySQL 的字元集(CHARACTER)和校對規則(COLLATION)是兩個不同的概念。字元集是用來定義 MySQL 存儲字元串的方式,校對規則定義了比較字元串的方式。後面我們會單獨講解 MySQL 的字元集和校對規則。
⑽ 可以通過alterdatabase修改資料庫,但只能修改其使用的
1. 在 MySQL 中,可以使用 alter database 來修改已經被創建或者存在的資料庫的相亮虧櫻關參數。修改資料庫的語法格式為:
alter database [數敬叢據庫名] {
[ default ] character set <字空碧符集名> |
[ default ] collate <校對規則名>}
語法說明如下:
alter database 用於更改資料庫的全局特性。
使用 alter database 需要獲得資料庫alter許可權
資料庫名稱可以忽略,此時語句對應默認資料庫
character set 子句用於更改默認的資料庫字元集
實例1:
查看test_db資料庫的定義聲明
使用命令行工具將資料庫test_db的指定字元集修改為gb2312,默認校對規則修改為gb2312_unicode_ci
alter database test_db default character set gb2312 default collate gb2312_chinese_ci;
查看修改後的test_db資料庫的dinginess聲明