MySQL可以說是最常用的小型資料庫,加上現在越來越流行的分布式架構,哪怕是一般的中大型項目也可以用MySQL來進行部署。
資料庫的操作最常用的就是增删改查,還有一些切換資料庫等操作。以下指令不加說明的,均是MySQL模式下指令,指令行模式下的指令要設定好系統環境變量才能使用。
增
建立資料庫
create database if not exists 資料庫名 default charset utf8 collate utf8_general_ci;
如果資料庫不存在則建立資料庫 使用utf-8預設字元集為utf8_general_ci
建立表
create table table_name
(字段名1 字段類型 not null,字段名2 字段類型,primary key(字段名2))
建立表的同時,為字段名1添加非空限制,設定字段名2為主鍵
插入資料
Insert into 表名 values(全部字段值)
Insert into 表名(字段名1,字段名2) values(字段1值,字段2值) //資料隻有部分字段值
建立使用者
create user “使用者名”@”host” identified by “密碼” //host為登入ip,可以是localhost或者其他ip位址,若是任意ip可登入,使用%
删
删除資料庫
drop database if exists資料庫名
删除表
drop table if exists表名
删除資料
delete from 表名 where 條件 //不加where 條件,則删除所有資料
删除使用者
drop user “使用者名”@”host”
改
更新資料
Update table_name set 字段名 = 屬性新值 where 條件
授權使用者
grant 權限 on 資料庫.表名 to “使用者名”@”host” with grant option
//權限包括select、update、insert、delete等等,可以使用all表示所有權限;後面的with grant option,表示該使用者可以把自己的該權限賦予其他使用者
撤銷使用者授權把grant改成revoke,其他格式一緻
更改密碼
set password for “使用者名”@”host” = password(“新密碼”)
在指令行模式下,可以使用mysqladmin 指令
mysqladmin -uroot -p舊密碼 password 新密碼 //僅可更改本地MySQL使用者密碼
查
select * from 表名 where條件 (groud by ,order by,having)
select可以說是資料庫中最常用的指令了。
1.*可以使用表中指定字段代替,查詢結果僅顯示指定字段
2.select distinct 去重查詢,distinct要緊接着select
3.select * into 表名2 from 表名1 //使用查詢結果建立一個表2(表2之前不存在),into 表名要在from前面
4.groud by 字段1 ,查詢結果以字段1分組,相同的為一組(查詢字段中要包括字段1)
5.order by 字段 1 ,查詢結果以字段1排序(預設升序),字段1後加上空格,desc排序為降序,升序用asc
6.having 條件,where與having同樣是篩選條件,差別
where是直接篩選表中資料,不能使用函數
having是對篩選出來、分組了的資料再進行篩選,可以使用函數
如果使用having不使用函數的話,直接把條件放在where裡就可以了
查詢表結構
desc 表名
查詢有哪些資料庫
show database
查詢目前使用資料庫名
select datebase()
查詢使用者及對應登入權限host
select host,user from mysql.user
其他常用操作指令
切換資料庫
use 資料庫名
啟動/停止mysql
net start/stop mysql
登入使用者,指令行模式(不是mysql模式下)
mysql -u使用者名 -p密碼 -h目标位址
若是登入本地mysql可以不用-h
退出
exit
導入資料庫
source path/*.sql
導出資料庫,指令行模式下
mysqldump -u使用者名 -p密碼 -h目标ip >path/*.sql
最後
想使用圖形化界面管理資料庫,個人推薦使用navicat,一款很好用的資料庫管理軟體,功能十分強大。
————————————————