標籤:解決亂碼 UI 資料類型 一個 大小 databases att desc 轉義
啟動MYSQL:mysql.exe -hlocalhost -p3306 -uroot –p
退出:exit,quit,\q
資料庫操作:
1、 新增資料庫
create database 資料庫名稱 【選項】
庫選項:用來約束資料庫
-字元集設定:charset/character set 具體字元集(資料存放區的編碼格式):常用的字元集:GBK和UTF8
-校對集設定:collate 具體校對集(資料比較的規則)
例:create database mydatabase charset utf8
資料庫名字不能用關鍵字或保留字(將來可能用到的)如果非要用,那麼必須加上反引號(Esc鍵下面的鍵在英文狀態下輸入)
中文資料庫也是可以的,但要保證伺服器能識別,但最好不用,當然也可以告訴伺服器當前的中文字元集是什麼—set names gbk
2、 查看資料庫
1) 查看所有資料庫
show databases
2)查看指定資料庫:模糊查詢
show databases likes ‘pattern‘ --pattern是匹配模式
%:表示匹配多個字元
_:表示匹配單個字元
但含有萬用字元時通過“\”轉義。
3)查看“資料庫建立語句“
show create database 資料庫名字
3、 更新資料庫
資料庫的修改僅限庫選項:字元集和校對集(校對集依賴字元集)
alter database 資料庫名字【庫選項】
alter database mydatabase charset utf8
4、 刪除資料庫
drop database 資料庫名字
表操作
1、 新增資料表
create table [if not exists] 表名(
欄位名字 資料類型,
欄位名字 資料類型,
。。。。。最後一行不需要逗號
)【表選項】
[if not exists]:如果表不存在,就建立,否則不建立
表選項:
-字元集設定:charset/character set 具體字元集
-校對集設定:collate 具體校對集
-儲存引擎:engine 具體的儲存引擎(innodb和myisam)
注意:資料表建立要指定資料庫
1) 顯示指定表所屬資料庫:create table if not exists mydatabase.student
2) 先進入資料庫:use 資料庫名字
例:
create table if not exists mydatabase.student (
name varchar(10),
gender varchar(10),
number varchar(10),
age int
)charset utf8;
2、 查看資料表
1) 查看所有表
show tables
2) 查看指定資料庫:模糊查詢
show tables likes ‘pattern‘
3) 查看錶建立語句
show create table 表名【\g或\G】
\g縱向顯示 \G橫向顯示
4) 查看錶中欄位資訊
yfDesc\describe\show columns from 表名
例:desc\describe student ; show columns from student
欄位名 欄位類型 是否允許為空白 索引 預設值 擴充
3、 修改資料表
1) 修改表名
rename table 老表名 to 新表名
2) 修改表選項
alter table 表名 表選項
例:alter table student charset gbk
3) 修改欄位
-新增欄位
alter table 表名 add【column】欄位名 資料類型【列屬性】【位置】
位置:First:第一個位置
After: 在哪個欄位之後;預設在最後一個欄位
-修改欄位
alter table 表名 modify 欄位名 資料類型【屬性】【位置】
例:alter table student modify number char(10) after name;
-重新命名欄位
alter table 表名change 舊欄位 新欄位 資料類型 【屬性】【位置】
例; alter table student change gender sex char(10) after name
-刪除欄位
alter table 表名 drop 欄位名
4、 刪除資料表
drop table 表名1,表名2.......
資料操作
1、 新增資料(char,中文加單引號)
1) 給全表插入資料,不需要指定欄位列表,但資料順序要和欄位順序一致。
insert into values(值列表)【,(值列表)】.......可以一次性插入多條記錄
2) 給部分欄位插入資料
insert into (欄位列表)values(值列表)【,(值列表)】.......可以一次性插入多條記錄
2、 查看資料(同SQL Server)
select 欄位1,欄位2.....
from table
where 條件
3、 更新資料
Updata 表名
set 欄位=值
[where 條件]
4、刪除資料
delete from table
[where條件]
中文資料問題
中文資料問題實際上是字元集問題
查看伺服器支援的所有字元集
show character set;
查看伺服器預設的對外處理的字元集
show variables like ‘character_set%’
解決插入問題:
修改伺服器字預設的接收的字元集為用戶端字元集
set character_set_client=”字元集”
解決亂碼問題;
修改伺服器字預設的發送給用戶端的字元集為用戶端字元集
set character_set_results=”字元集”
串連層:character_set_connection,是字元集轉變的中介,如果同意,效率更高,也可以不改
set names “字元集”的作用等價於修改以上三者
set 變數=值 修改的知識會話層級(當前用戶端,當次串連有效)
校對集問題
校對集:資料比較的方式
校對集的三種格式:
_bin:binary,二進位比較,去除二進位位,一位一位比較區分大小寫
_cs:case sensitive,大小寫敏感,區分大小寫
_ci:case insensitive, 大小寫不敏感,不區分大小寫
查看資料庫所支援的所有校對集:
show collation
常見的校對集:utf8_bin,utf8_general_ci, gbk_chinese_ci,gbk_bin
校對集必須在沒有資料之前設定好,如果有了資料在進行校對集修改,那麼修改無效
MySQL基本操作