MySQL数据库(一)
数据库
MySQL是一个数据库管理系统, 而数据库是一个储存数据的仓库,SQL是操作数据库的编程语言。
MySQL绿色版本安装和卸载
绿色版本即是解压缩版本,博主这里使用的MySQL
是8.0版本
MySQL数据库的默认运行端口是3306
MySQL官网地址: https://www.mysql.com/
解压到自己创建的目录之后,自己创建可执行文件.bat
后缀。
1initialization.bat
:初始化MySQL服务,只执行一次。
2install.bat
:安装MySQL服务 (将MySQL安装为Windows服务)
3startup.bat
:启动MYSQL服务
4reboot.bat
:重启MYSQL服务安装时,依次执行 前三个 bat 文件
5stop.bat
: 将MYSQL服务停止
6uninstall.bat
:删除MySQL服务卸载时,只执行最后两个bat文件,随后删除整个MySQL数据库的文件夹即可
MySQL绿色版本配置和启动
配置.bat
文件
1initialization.bat
@echo 正在初始化 MySQL8 . . .
@echo 初始化完成后,当前窗口会自动关闭,请耐心等待 . . .
bin\mysqld --initialize-insecure
2install.bat
@echo 安装 MySQL8 服务 . . .
bin\mysqld --install mysql8
3startup.bat
@echo 正在启动MySQL8服务 . . .
net start mysql8
4reboot.bat
@echo 正在重启 MySQL8 服务 . . .
net stop mysql8
net start mysql8
5stop.bat
@echo 正在关闭 MySQL8 服务 . . .
net stop mysql8
6uninstall.bat
@echo 正在移除 MySQL8 服务 . . .
net stop mysql8
bin\mysqld --remove mysql8
配置系统环境变量
Path内新建两个环境变量:
- 系统变量里配置:
MYSQL_HOME D:\biancheng\java\mysql-8.0.30-winx64
- 系统变量的path里面配置
%MYSQL_HOME%\bin
启动
- Windows系统以管理员身份启动CMD
- 命令行终端进入文件夹目录后按照上面的步骤执行
.bat
文件 - MySQL启动成功
数据库操作
管理员终端内执行数据库操作命令
mysql -u root -p # MYSQL内置一个 用户账号为root,密码为空
select version(); # 查询MySQL版本
# 解决root无密码登录不了的问题
# 以不检查权限的方式启动 先停止mysql服务
mysqld --console --skip-grant-tables --shared-memory
ALTER USER root@localhost IDENTIFIED BY '123456';
flush privileges;
# 解决端口冲突问题
netstat -ano|findstr 3306 # 查询正在执行3306端口的程序,如果有在任务栏找到对应程序结束任务就可以了
# 退出数据库,exit / quit 都可以退出数据库
exit
quit
登录数据库
mysql [-h 127.0.0.1] [-P 3306] -u 用户名 -p
# 参数:
-h : MySQL服务所在的主机IP
-P : MySQL服务端口号, 默认3306
-u : MySQL数据库用户名
-p : MySQL数据库用户名对应的密码
SQL通用语法
-
单行或者多行书写,以分号结束
-
可以使用空格或者缩进来增强语句的可读性
-
mysql数据库中,SQL语句不区分大小写,关键
字建议使用大写
-
注释
- 单行注释 # –
- 多行注释, /* */
分类
- DDL 数据定义语言,用来定义数据库对象(数据库,表,字段)
- DML 数据操作语言,用来对数据表中的数据进行增删改
- DQL 数据查询语言,用来查询数据库中表的记录
- DCL 数据控制语言,用来创建数据库用户,控制数据库的访问权限
DDL 语句
数据库
-
查看数据库
show databases; # 查看当前用户可操作的所有数据库
-
创建新数据库
CREATE DATABASE [IF NOT EXISTS] 数据库名字 [DEFAULT CHARSET utf8mb4]; # mysql8 中创建的数据库默认编码是'utf8mb4'
-
选择数据库
use 数据库名; # 选择数据库之后可以在其中创建数据库表 select database(); #查看当前所在数据库
-
删除数据库
drop database 数据库名;
DDL– 表管理
-
查看表
show tables; # 查看当前被选中的数据库中的所有表
-
创建表
CREATE TABLE [IF NOT EXISTS] tab_name( col_name datatype [COMMENT '注释'], col_name datatype )[CHARACTER set 编码格式];
-
查看表结构
describe 表名; desc 表名; show create table 表名;
-
删除表
drop table 表名;
用户管理
-
查看当前登录的用户
select user() [from dual]; # 查看当前登录的用户
dual
虚拟表,为了让select语句完整 -
创建新用户
create user 用户名@'ip主机地址' identified by '密码';
-
修改密码
alter user 用户名@'ip主机地址' identified by '密码' password expire never; # 修改密码之后不需要重新登录 # 指定加密方式重置密码 alter user 用户名@'ip主机地址' identified with mysql_native_password by '';
-
查询用户信息
select user,host from mysql.user;
-
用新用户登录
mysql -u 用户名 [-h ip地址] -p # 新创建的用户只有登录权限,需要使用管理员账户授权
-
为用户授权
show grants for 用户名@localhost; # 查询用户的权限 show grants for 用户名@'ip主机地址'; # 查询用户的权限 # kfm.carts == 数据库名.表名 *.* == 所有的数据库.所有的表 grant all on kfm.carts to txsy@localhost; # 授权的新用户需要重新登录才能使用新权限
all
:所有权限select
:查询权限insert
:插入权限update
:更新权限 -
删除用户
drop user 用户名@'ip主机地址';