数据库:存储数据的仓库,数据是有组织进行存储。
数据库管理系统:操纵和管理数据库的大行软件。
SQL:操纵数据库的编程语言。
MySQl数据库的优点:
开源、免费
功能强大,足够应付web应用开发
查询MySQL版本
select version();
解决root 无密码登录不了的问题,以不检查权限的方式启动 先停止mysql服务
safe_MySQLd --skip -grant -tables
登录数据库
mysql -u root -p
-u 数据库用户名
-p 密码
关系型数据库:
建立在关系模型基础上,由多张相互连接的二维表组成的数据库。
分类:
DDL数据定义语言,用来定义数据库对象(数据库中的表,字段,数据库)
DML数据操作语言,用来对数据表中的数据进行增删改
DQL数据查询语言,用来查询数据库中表的记录
DCL数据控制语言,用来创建数据库用户,控制数据库的访问权限
DDL数据库
查询当前用户可操作的数据库
show databases;
创建新数据库
creat databases [if not exist] 数据库名 [default charset utf8mb4];
# mysql8 中创建的数据库默认编码是'utf8mb4'
选择数据库
use 数据库名 ; #选择数据库后可在其中创建表
select database(); 查询当前使用的数据库
DDL表管理
查看表
show tables; # 查看当前数据库中的表
创建表
create table [if not exist] 表明(
id int comment '编号',
name varchar(20) comment '姓名',
age int comment '年龄')[character set 编码格式];
查看表结构
desc 表名;
查看创表时语句
show create tabe 表名;
删除表
drop table 表名;
用户管理
查看当前登录的用户
select user() [from dual]; #dual虚拟表,为了让select语句完整
创建新用户
create user 用户名@'ip主机地址' identified by '密码';
修改密码
alter user 用户名@'ip主机地址' identified by '密码' password expire never;
#修改密码之后不需重新登录
查询用户信息
select user,host from mysql.user;
用新用户登录
mysql -u 用户名 [-h ip主机地址] -p;
#新创建的用户只有登录权限,需要使用管理员账户授权
为用户授权
grants for 用户名@ip主机地址;
#查询用户的权限
grant all on 数据库名.表名 to 用户@ip主机地址;
#all 代表所有权限
#授权的新用户需重新登录才能使用新权限
任意ip可以访问
update mysql.user set host='%' where user='用户名';
flish privileges;
#跟新所有用户权限
删除用户
drop user 用户名@ip主机地址;