mysqldump -uroot -p register > register.sql // 備份register數據庫並生成register.sql數據庫文件
mysqldump -u root -p register user > backups.sql // 備份register數據庫中user表到backups.sql數據庫文件中
mysql -u root -p register < backups.sql // 將backups.sql文件寫入到register數據庫中,這裏請注意:mysql -u root -p 後面只能跟數據庫,而不能跟sql文件! 這裏backups.sql中若是隻含有user中的數據,那麼執行這個寫入過程的時候,不會對logs有任何影響。
mysqldump -d -uroot -p register user > user.sql // 將register數據庫中的user表結構導出
mysqldump -u root -p --all-databases > database_dump.txt // 將全部的數據庫都備份到database_dump.txt文件中去
// 顯示建立 user 表的 sql 語句 SHOW CREATE TABLE workflow_oa
mysql -h[主機地址] -u[用戶名] -p[用戶密碼] //舉例:鏈接本地數據庫 mysql -h 127.0.0.1 -u root -p 123456 (有些狀況下能夠不須要輸入主機地址):mysql -u root -p
create database [庫名]; //舉例:建立thinkcms數據庫 create database thinkcms; create database [庫名] charset utf8; //建立數據庫並存儲字符集爲utf8 create database [庫名] DEFAULT CHARSET utf8 COLLATE utf8_general_ci; # utf8編碼 create database [庫名] DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci; # gbk編碼
show databases;
use [庫名]; //舉例:使用thinkcms數據庫 use thinkcms
drop database [庫名]; //舉例:刪除thinkcms數據庫 drop database thinkcms
CREATE TABLE [表名] ([字段名] [字段類型] [字段參數]); //舉例:建立reg數據表並將id設置成自增主鍵,並將innodb設置成存儲引擎,字符集設置成utf8 mysql> CREATE TABLE reg( -> id INT NOT NULL AUTO_INCREMENT, -> user VARCHAR(100) NOT NULL, -> pwd VARCHAR(40) NOT NULL, -> create_time DATE, -> PRIMARY KEY (id) -> )ENGINE=InnoDB DEFAULT CHARSET=utf8;
desc [表名]; (或者使用:show columns from [表名];) // 舉例:顯示reg表的字段名 desc reg; show columns from reg; // 顯示字段名包含備註 show full columns from reg;
show tables;
drop table [表名]; //舉例:刪除reg表 drop table reg;
truncate [表名]; //舉例:清除 reg 表中全部內容, truncate reg;
alter table [舊錶名] rename as [新表名]; //舉例:將register表名稱修改成users alter table register rename as users;
alter table 表名 add 列名 類型 // 舉例: ALTER TABLE menus ADD status TINYINT(1) DEFAULT 1 COMMENT '是否顯示'
alter table 表名 drop column 列名
alter table 表名 modify column 列名 類型; -- 類型 alter table 表名 change column 原列名 新列名 類型; -- 列名,類型 ALTER TABLE students CHANGE COLUMN birth birthday VARCHAR(20) NOT NULL;
alter table 表名 add primary key(列名);
alter table 表名 drop primary key; alter table 表名 modify 列名 int, drop primary key;
alter table 從表 add constraint 外鍵名稱(形如:FK_從表_主表) foreign key 從表(外鍵字段) references 主表(主鍵字段); // 例子 ALTER TABLE students ADD CONSTRAINT fk_class_id FOREIGN KEY (class_id) REFERENCES classes (id); 其中,外鍵約束的名稱fk_class_id能夠任意,FOREIGN KEY (class_id)指定了class_id做爲外鍵,REFERENCES classes (id)指定了這個外鍵將關聯到classes表的id列(即classes表的主鍵)
alter table 表名 drop foreign key 外鍵名稱 // 例子 (不會刪除外鍵字段) ALTER TABLE students DROP FOREIGN KEY fk_class_id;
ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000;
ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;
插入數據: INSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( value1, value2,...valueN ); //舉例:在register表中插入一行數據: insert into register (`user`,`time`,`pwd`) values ('小明', '2016-04-22 15:25:33', '1'); //插入多行數據: INSERT INTO employee_tbl (`pid`,`user`,`time`,`pwd`) VALUES ('1', '小明', '2016-04-22 15:25:33', '1'), ('2', '小王', '2016-04-20 15:25:47', '3'), ('3', '小麗', '2016-04-19 15:26:02', '2'), ('4', '小王', '2016-04-07 15:26:14', '4'), ('5', '小明', '2016-04-11 15:26:40', '4'), ('6', '小明', '2016-04-04 15:26:54', '2'); 更新數據: UPDATE table_name SET field1=new-value1, field2=new-value2 [WHERE Clause]; //舉例:在register表中更新第一條數據: update register set user="王五",pwd=555 where id=1; // 全部80分如下的同窗成績加10分 UPDATE students SET score=score+10 WHERE score<80; 刪除數據: DELETE FROM table_name [WHERE Clause]; //舉例:在register表中刪除第一條數據: delete from register where id=1; 查詢語句: SELECT column_name,column_name FROM table_name [WHERE Clause]; =====================where 條件===================== //舉例:在register表中查詢id=1的數據: select * from register where id=1; select * from 表 where id > 1 and name != 'aylin' and num = 12; select * from 表 where id between 5 and 16; select * from 表 where id in (11,22,33) select * from 表 where id not in (11,22,33) select * from 表 where id in (select nid from 表) =====================通配符 like===================== //在register表中查詢全部名字name含有張三的人 select * from register where name like "%張三%"; select * from register where name like '張三_' # 張三開頭的全部(一個字符) =====================限制 limit===================== select * from 表 limit 5; - 前5行 select * from 表 limit 4,5; - 從第4行開始的5行 select * from 表 limit 5 offset 4 - 從第4行開始的5行 =====================排序 asc,desc===================== select * from 表 order by 列1 desc,列2 asc - 根據 「列1」 從大到小排列,若是相同則按列2從小到大排序 =====================分組 group by===================== select num from 表 group by num select num,nid from 表 group by num,nid select num,nid from 表 where nid > 10 group by num,nid order nid desc select num,nid,count(*),sum(score),max(score),min(score) from 表 group by num,nid select num from 表 group by num having max(id) > 10 特別的:group by 必須在where以後,order by以前
select now();
select user();
// 方法0一、命令行中直接敲如下命令 mysql -V (大寫的V) // 方法0二、命令行中輸入如下命令 mysql --help | grep Distrib // 方法0三、鏈接數據庫以後輸入 status // 方法0四、直接查詢版本 select version();
select database();
select current_date;
SELECT DATEDIFF(CURDATE(), FROM_UNIXTIME(1527782400, '%Y-%m-%d')) // 1527782400對應的是2018-06-01 00:00的時間戳,若是今天是2018-06-07,那麼返回的值就是6
// 時間戳轉換成時間 SELECT FROM_UNIXTIME(1234567890); SELECT FROM_UNIXTIME(1234567890, '%Y-%m-%d %H:%i:%S') // 會輸出 2009-02-14 07:31:30 // 時間轉換成時間戳 SELECT unix_timestamp("2018-6-1 00:00:00"); // 會輸出 1527782400
create user '用戶名'@'IP地址' identified by '密碼';
drop user '用戶名'@'IP地址';
rename user '用戶名'@'IP地址'; to '新用戶名'@'IP地址';
set password for '用戶名'@'IP地址' = Password('新密碼');
show grants for '用戶'@'IP地址'
grant 權限 on 數據庫.表 to '用戶'@'IP地址'
2.1. 建立一個alex用戶,並賦予權限mysql
grant all privileges on *.* to alex@"%" identified by "qazwsx" with grant option; //grant 是受權命令,其中 alex 是咱們鏈接用的用戶名、"qazwsx"是鏈接密碼,用戶名後面的 "%" 通用符表示容許各 host 操做。
revoke 權限 on 數據庫.表 from '用戶名'@'IP地址'
flush privileges;
grant all privileges on db1.tb1 TO '用戶名'@'IP' grant select on db1.* TO '用戶名'@'IP' grant select,insert on *.* TO '用戶名'@'IP' revoke select on db1.tb1 from '用戶名'@'IP'