使用者相關
建立使用者
create user kingfan@'%' identified by '123'
刪除使用者
drop user '使用者名稱'@'ip位址';
修改使用者
rename user '使用者名稱'@'ip位址' to '新使用者名稱'@'ip位址'
修改密碼:
set password for '使用者名稱'@'ip位址' =password('密碼');
update mysql.user set password=password('密碼') where user='kingfan';
授權相關
授權# 語法: grant 許可權 on 庫.表 to 使用者名稱@ip位址;
#給kingfan使用者對test庫有檢視和插入許可權
grant select,insert, on test to kingfan@'%';
#所有許可權
grant all privileges on '*' to kingfan@'%';
#重新整理許可權,使許可權修改立馬生效
flush privileges;
# 檢視許可權
show grants for '使用者'@'ip位址'
revoke 許可權 on 資料庫.表 from '使用者'@'ip位址'
庫相關# 建立庫:create database 庫名 default charset utf8;
create database db1;
# 檢視庫: show databases;
# 刪除庫:
drop database 庫名;
# 進入庫:
use 庫名;
表相關# 檢視表
show tables;
# 建立表
create table 表明(字段 資料型別 約束條件) engine=innodb default charset=utf8
# 刪除表
drop table 表名;
# 清空表的資料
delete from 表名;
truncate table 表名; #初始化表的設定,比如自增主鍵會重新從1開始。效率比delete高
引擎innodb
支援事物,回滾,原子性操作
myisam
約束條件
# 表裡面只能有1個主鍵和自增列,一般搭配使用
auto_increment #自增預設不為空,從1開始
primary key #索引唯一標識,唯一且不能為空,加速查詢
not null #不能為空
資料型別
# 數字:
tinyint
intbigint
smallint
float
double
decimal(底層按字串儲存)
decimal(10,5) #10是總長,5是小數字數
# 字串:
char(num) #定長,不足則補充至定長
vachar(num) #不定長,節省空間,但是查詢速度沒char快
## char和vachar最大字元255
## text 存較大文字,文章
# 時間型別
time
datatime
year
timestamp
# enum列舉型別(多選1)
enum(選項1,選項2,選項2)
# set 集合,可多選
create table t1(
hobby set(a,b,c,d)
insert into t1 values('a'/'a,b'/'a,b,c')
表操作增
insert into t1 values(id,name)
刪:delete from t1 where id<6
改update t1 set age =18 where id=12;
查select * from t1;
# 檢視表資訊
show create table 表名
desc 表名
外來鍵foreinkey
create table department(
id int auto_increment primary key,
title char(12)
) engine=innodb default charset=utf8;
create table userinfo(
uid int auto_increment primary key,
name varchar(12),
department_id int,
constraint fk_userinfo_dep foreign key(department) references department(id)
) engine=innodb default charset=utf8 ;
修改自增列的起始(auto_increment)
alter table 表名 auto_increment=num;
# 設定的num一定滿足比當前表中資料最大的數值大
# 自增步長
# mysql:基於會話
# 檢視當前會話的步長
show session variables like 'auto_inc%';
# 修改步長,重新登陸會重置
set session auto_increment_increment=2;
# 全域性步長,修改之後重新登入所有使用者都變了
show global variables like 'auto_inc%';
約束條件相關
唯一索引unique
create table db1(
id int primary key auto_increment,
name char(12),
phone char(11) unique
聯合唯一索引
create table db1(
id int primary key auto_increment,
name varchar(12),
phone char(11),
unique uq1 (name,phone)
注意:唯一可以為null,主鍵是唯一且不為null
外來鍵的額外使用
一對一關係
foreign key和unique聯合使用
# 使用者表
create table userinfo(
id int primary key auto_increment,
username varchar(32) not null unique,
password varchar(32) not null unique,
# 部落格表
create table blog(
id int primary key auto_increment,
title varchar(32) not null,
user int unique not null,
constraint fk1 foreign key(user) references userinfo(id)
多不多例項
# 使用者表
create table user(
id int primary key auto_increment,
name varchar(32)
# 電腦表
create table computer(
id primary key auto_increment,
name varchar(32)
# 使用者電腦關係表
create table user_cpu(
id primary key auto_increment,
user int not null,
cpu int not null,
constraint fk1 foreign key(user) references user(id),
constraint fk2 foreign key(cpu) references computer(id),
unique u1 (user,cpu)
# 當多不多關係時需要建立第三張表,建立兩個外來鍵關係並且這兩個外來鍵聯合唯一。
mysql鎖命令 MySQL鎖定狀態檢視命令
1 show processlist show processlist顯示哪些執行緒正在執行。您也可以使用mysqladmin processlist語句得到此資訊。如果您有super許可權,您可以看到所有執行緒。否則,您只能看到您自己的執行緒 也就是,與您正在使用的mysql賬戶相關的執行緒 如果...
mysql 常規命令操作 mysql常用的命令操作
檢視正在執行的sql mysql show full processlist 檢視正在執行的sql mysql show variables like max 檢視mysql的一些配置引數 mysql show status 檢視當前會話下mysql的一些狀態。mysql show global s...
nohup 執行mysql命令 nohup命令
在應用unix linux時,我們一般想讓某個程式在後台執行,於是我們將常會用 在程式結尾來讓程式自動執行。比如我們要執行mysql在後台 usr local mysql bin mysqld safe user mysql 可是有很多程式並不想mysqld一樣,這樣我們就需要nohup命令,怎樣使...