一、數據庫的登陸與退出mysql
mysql -u root -p -- 使用root身份登錄當前的數據庫 mysql -u root -p -h server0 -- 使用root身份登錄到server0的數據庫 quit --退出數據庫
二、數據庫linux
2.一、建立sql
create databse db1; -- 建立一個數據庫 create database db1 character set utf8; -- 建立並定義字符集
注:數據庫名在linux下大小寫敏感(跟系統有關係)數據庫
2.二、選中bash
use db1; -- 選中一張表
2.三、查看socket
show databases; -- 顯示數據庫 show create database db1 -- 顯式數據庫建立語句
2.四、刪除ide
drop database db1; -- 刪除數據庫
2.五、數據權限設置函數
grant privileges on db1.tablename to user1@10.168.0.8 identified by "password"; -- 按數據庫授全部權限 grant select,insert,update,delete,create temporary tables,execute,show view on `db1`.* to 'user1'@'10.168.0.8'; -- 按數據庫授特定權限 revoke select,insert,update,delete,create temporary tables,execute,show view on `db1`.* from 'user1'@'10.168.0.8'; -- 按數據庫取消特定權限 drop user 'user1'@'10.168.0.8'; -- 刪除特定的用戶 fluse privileges; -- 刷新權限表
2.六、數據庫的備份與還原ui
mysqldump -u username -p database > /backup/file.dump -- 備份數據庫 mysqldump -uroot -p --all-databases | gzip -9 > file.gz -- 備份並壓縮數據庫 mysqldump -u username -p <./file.dump -- 還原數據庫
2.7 密碼變動spa
方法一
mysql -uroot -p set password for root@localhost = password('123456');
方法二
mysqladmin -uroot -p password "123456"
方法三
use mysql; update user set password=password('123456') where user='root' and host='localhost'; flush privileges;
方法四
service mysqld stop mysqld_safe --skip-grant-tables & mysql -u root use mysql; update user set password=password('123456') where user='root' and host='localhost'; flush privileges; quit; service mysqld restart
三、表
3.一、建立
3.1.一、建立1
create tabale tb1 ( id int not null, name varchar(10) ); -- 建立一張表
3.1.二、建立2
create tabale tb1 ( id int not null, name varchar(10) )engine=MYISAM default charset=utf8; -- 建立一張表
注:表名在linux下大小寫敏感(跟系統有關係)
3.二、查看
show tables; -- 顯示當前庫中的表 show create table tb1; --顯式建立表的語句 describe tb1; -- 查看錶結構 show create table tb1; -- 查看見表命令 show index from tb2; -- 查看錶包含的索引 show table status like '%tb3%'; -- 查看當前表的狀態
3.三、刪除
drop table tb1 drop table if exists tab1
3.四、修改
alter table tb1 engine=myisam;
四、表的列操做
4.一、增長字段
alter table Persons add column `City` varchar(255) DEFAULT NULL;
4.二、修改字段
alter table Persons modify column `City` varchar(255) DEFAULT NULL comment '城市';
4.三、刪除字段
alter table `Persons` drop column `City`;
五、表的行操做
5.一、查詢
select email from user group by email having count(email) > 1; -- 查詢重複的列 select * from user where email in ( select email from user group by email having count(u_email) > 1 ); -- 查詢重複數據列的行
5.二、插入
5.2.一、單行插入
insert into tablename set column1 = value1 , coumn2 = values2...;
5.2.二、多行插入
insert into tablename (column1,column2...) values (value1,value2....); insert into tablename (column1,column2...) values (value1,value2....),(value1,value2....)...;
5.2.三、簡寫
insert into tablename values (value1,value2....);
注:當知足表中全部列都插入數據時纔可簡寫
5.2.四、插入查詢結果
insert into tablename (column1,column2...) select (column1,column2...) from tablename2 [where condition];
簡寫
insert into tablename select (column1,column2...) from tablename2 [where condition];
5.三、更新
update tablename set column1 = valuesl,column2 = values2... [where condition];
注:不寫where會修改整張表數據(危險操做)
5.四、刪除
delete from tablename [where condition];
注:不寫where會清空整張表數據(危險操做)
六、事務
begin; -- 開啓事務(必選) -- 這裏作引發數據變動的操做(可選) rollback; -- 回滾事務(可選) commit; -- 提交事務(必選)
注:數據InnoDB引擎支持表事務性操做
show variables like '%commit'; -- 查詢事務自動提交設置 set autocommit=0; -- 自動提交關閉(須要手動鍵入commit,執行前全部操做當一個事務處理) set autocommit=1; -- 自動提交打開(每一個操做一個事務)
七、版本信息查看
7.一、登陸信息查看
mysql -uroot -p
7.二、函數方式查看
mysql -uroot -p >select @@version;
7.三、狀態信息查看
mysql -uroot -p >status
7.四、命令行方式查看
mysql -V
7.5 幫助方式查看
mysql --help | grep Distrib
7.六、環境變量方式查看
show variables like 'version';
八、其餘查詢或命令
show engines; -- 查看引擎 show variables like '%storage_engine%'; -- 數據庫默認引擎 show create table tabName; -- 查詢某表的引擎 show warnings; -- 查詢警告信息 show variables; -- 查詢變量環境 show variables like '%query_cache%'; -- 查詢基於特定關鍵字環境變量 show variables like "max_connections"; -- 查詢最大鏈接數 show processlist; -- 查詢進程列表 kill processID -- 結束查詢的進程
九、QEP
explan select user,host from user\G
十、MySQLAdmin
mysqladmin -u root -p -P 3306 --socket=/tmp/mysql.sock shutdown
不詳盡請參閱: