删除数据库:
drop database if exists 数据库名;
创建数据库:
CREATE DATABASE 数据库名 CHarset=utf8 ;
创建表:
Create table stu(
id int auto_increment primary key,
name varchar(12),
age int,
Phone char(15),
rid int,
cid int,
foreign key(rid) references room(id),
foreign key(cid) references class(id)
)charset=utf8;
进入数据库
use mysql
显示数据库
show tables
更新user表中对应用户的authentication_string字段的值
mysql> update user set authentication_string=password(123456) where User=‘root’
and Host=‘localhost’;
如果忘记密码怎么办
- 修改配置文件
在mysqld 下面添加
skip-grant-tables 跳过权限认证 - 重新启动服务
不用密码登录root用户 - 执行修改密码
- 把配置文件改回来
- 重启服务 使用密码登录
创建用户
格式: create user ‘用户名’@‘ip地址’ identified by ‘密码’
添加一个李四的账户 只能允许在本地登录
Create user ‘lisi’@’localhost’ identified by ‘123456’;
添加一个wangwu用户 只允许10.10.91.3ip去登录
Create user ‘wangwu’@’10.10.91.3’ identified by ‘123456’;
添加一个 zl用户 不限制登录地址(不限制来源地)
Create user ‘zl’@’%’ identified by ‘123456’;
给用户授权允许远程连接
格式:grant 权限 on 库名.表名 to 用户名@‘地址’
给lisi授权,允许操作(select,insert,update)demo6库中的user表
GRANT select,insert,update ON demo6.user TO ‘lisi’@’localhost’;
给zl授权,允许操作(select,insert,update) 所有的库和所有的表
GRANT select,insert,update ON . TO ‘zl’@’%’;
删除用户:
格式:drop user ‘用户名’@‘ip地址’
2.索引
什么是索引:是一种提升查询数据速度的存储结构,类似于字典的目录
Key:value
为什么要使用索引:提升查询速度,降低i/o
缺点: 当我们添加索引时,数据库会单独创建一张表来去维护和管理索引,索引本身要比数据更大,谁哟因占用的资源会更多
占用更多资源 后期维护不方便
索引分类:
主键索引: 不能为空且唯一 primary key
唯一索引: 可以为空但是不能重复 unique
普通索引: 可以为空可以重复 index
多列索引: 给多个字段添加一个索引
索引支持的数据结构: b+tree b-tree 哈希
添加索引:
格式:alter table 表名 add 索引类型 【索引名】(字段名);
主键索引操作:
添加
Alter table 表名 add primary key(字段名)
删除 alter table 表名 drop primary key;
添加唯一索引:
如果不指定索引名 索引的名字默认以字段命名
Alter table 表名 add unique(字段);
添加多列索引:给多个字段添加索引
Alter table 表名 add index(字段1,字段2)
使用索引:
将索引字段作为where条件去使用
多列索引的使用 有几个列,那么这几个列必须同时要用作where条件 而且要注意索引字段的顺序
使用索引查询要遵循最左原则
将有索引的字段 放在最左边
添加普通索引:
查看索引:
格式:show index from 表名;