连接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、p_w_picpath和bit的数据类型的列不要建立索引。
9)对于经常存取的列避免建立索引
10)限制表上的索引数目。对一个存在大量更新操作的表,所建索引的数目一般不要超过3个,最多不要超过5个。索引虽说提高了访问速度,但太多索引会影响数据的更新操作。
11)对复合索引,按照字段在查询条件中出现的频度建立索引。在复合索引中,记录首先按照第一个字段排序。对于在第一个字段上取值相同的记录,系统再按照第二个字段的取值排序,以此类推。因此只有复合索引的第一个字段出现在查询条件中,该索引才可能被使用,因此将应用频度高的字段,放置在复合索引的前面,会使系统最大可能地使用此索引,发挥索引的作用。