1. 程式人生 > >MySQL基本操作

MySQL基本操作

val case sql基本操作 中文字符集 編碼 修改表 註意 change var

啟動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基本操作