連接MySQL
1.登錄mysql數據庫:
mysql -u用戶名 -p密碼
示例:
2.登錄遠程主機的mysql:
mysql -h遠程主機IP地址 -u用戶名 -p密碼
示例:
(注:
創建用戶命令格式爲:create user 'hehe' @'192.168.93.151';)
3.退出mysql命令:exit
修改密碼
1.添加密碼:
mysqladmin -u用戶名 -password 密碼
示例:mysqladmin -uroot -password123456
給root用戶添加密碼,爲123456
2.修改密碼:
mysqladmin -u用戶名 -p舊密碼 password 新密碼
示例:mysqladmin -uroot -p123456 password centos
修改root用戶密碼爲centos
3.命令行修改密碼:
mysql>update mysql.user set password='centos' where user='root'
mysql>flush privileges
(修改密碼命令不會馬上生效,需執行flush privileges生效)
4.顯示當前的user:
mysql>select user();
數據庫的操作
1.創建數據庫:
mysql>create database 數據庫名;
2.切換數據庫:
mysql>use 數據庫名;
3.查看數據庫列表:
mysql>show databases;
4.查看支持的所有字符集:
mysql>show character set;
5.查看支持的所有排序規則
mysql>show collation;
6.刪除數據庫:
mysql>drop database 數據庫名;
7.獲取命令使用幫助:
mysql>help;
mysql>help keyword(關鍵字)
示例:mysql>help create database;
數據庫中表的操作
1.創建表:
mysql>create table 表名;
2.刪除表:
mysql>drop table 表名;
3.查看錶結構:
mysql>desc 表名;
4.查看所有表:
mysql>show tables;
5.重命名錶:
alter table 舊錶名 rename 新表名;
6.查看錶狀態:
mysql>show table status like '表名' \G;
(\G:表中信息豎着顯示)
7.查看錶創建命令:
mysql>show create table 表名;
8.顯示錶中記錄:
mysql>select * from 表名;
9.修改表數據:
mysql>update 表名 set 字段名1='a',字段名2='b'where 字段名3='c';
10.清空表記錄:
①mysql>delect from 表名;(清空表記錄)
②mysql>truncate table 表名;(刪除表,慎重使用)
11.往表中插入記錄:
mysql>insert into 表名(字段名1,字段名2,...)values(值1,值2,...);
授權
1.增加新用戶:
grant select on 數據庫.* to 用戶名@登錄主機 identified by '密碼';
示例:
mysql>grant select on student.* to root@localhost identified by '123456';
mysql>grant select on student.* to root@% identified by '123456';
2.刪除授權:
mysql>revoke all privileges on *.* from 'user'@'host';
mysql>flush peivileges;
索引
1.創建索引:
create index index_name on tablename;
2.查看索引:
show indexes from tablename;
3.刪除索引:
drop index index_name on tablename;
4.索引的操作符:
>, <, >=, <=, ==, !=
between ... and ...
like:
%:任意長度的任意字符
_:任意單個字符
5.使用索引的缺點:
1)減慢增刪改數據的速度;
2)佔用磁盤空間;
3)增加查詢優化器的負擔;
當查詢優化器生成執行計劃時,會考慮索引,太多的索引會給查詢優化器增加工作量,導致無法選擇最優的查詢方案;
6.建立索引的原則:
1)定義主鍵的數據列一定要建立索引。
2)定義有外鍵的數據列一定要建立索引。
3)對於經常查詢的數據列最好建立索引。
4)對於需要在指定範圍內的快速或頻繁查詢的數據列;
5)經常用在WHERE子句中的數據列。
6)經常出現在關鍵字order by、group by、distinct後面的字段,建立索引。如果建立的是複合索引,索引的字段順序要和這些關鍵字後面的字段順序一致,否則索引不會被使用。
7)對於那些查詢中很少涉及的列,重複值比較多的列不要建立索引。
8)對於定義爲text、image和bit的數據類型的列不要建立索引。
9)對於經常存取的列避免建立索引
10)限制表上的索引數目。對一個存在大量更新操作的表,所建索引的數目一般不要超過3個,最多不要超過5個。索引雖說提高了訪問速度,但太多索引會影響數據的更新操作。
11)對複合索引,按照字段在查詢條件中出現的頻度建立索引。在複合索引中,記錄首先按照第一個字段排序。對於在第一個字段上取值相同的記錄,系統再按照第二個字段的取值排序,以此類推。因此只有複合索引的第一個字段出現在查詢條件中,該索引纔可能被使用,因此將應用頻度高的字段,放置在複合索引的前面,會使系統最大可能地使用此索引,發揮索引的作用。