MySQL的基本使用
数据库的分类
1、关系型数据库
MySQL、Oracle、PostgreSQL、MariaDB、sqlite、sql server、db2
MySQL:开源免费 使用非常规范
Oracle:收费 维护成本高 大型公司可能会使用
PostgreSQL:支持二次开发
MariaDB:MySQL的替代产品(并且有自己的特性)
sqlite:小型数据库(django框架自带该数据库)
2、非关系型数据库
Redis、mongoDB、memcache
Redis:目前最火的缓存数据库 具有很多数据结构 功能强大
mongoDB:文档型数据库 可以用在大数据和爬虫领域
memcache:已经被redis淘汰
3、两类数据库的区别
关系型数据库:拥有固定的表结构 并且表与表之间可以建立代码层面的关系
非关系型数据库:没有固定的表结构 数据存储采用的是K:V键值对的形式
SQL与NoSQL
数据库的服务端为了能够兼容不同类型的客户端实现数据交互,所以规定了统一的交互方式
关系型数据库>>>:SQL语句
非关系型数据库>>>:NoSQL语句(NoSQL有时候也表示 非关系型数据库)
软件下载
官网:https://www.mysql.com/
基本使用
一定要先启动服务端再启动客户端,前期在操作的时候最好使用管理员cmd操作
步骤:
1、环境变量的配置
2、直接输入mysql启动服务端
3、开设一个新的cmd窗口操作客户端
登录方式
mysql # 游客模式登陆 mysql -u用户名 -p密码 # 账号登录(本地使用) mysql -hIP地址 -P端口号 -u用户名 -p密码 # 完整命令 """第一次登录 root用户没有密码 直接连续回车即可"""
系统服务
将MySQL的服务端制作成系统服务,开机自启动,关机自关闭
1、先关闭之前的服务端
2、查看当前计算机系统服务列表
3、以管理员身份运行cmd并制作系统服务
mysql --install (这仅仅是添加到了系统服务,第一次需要手动启动)
4、启动服务
方式1:鼠标右键选择启动即可
方式2:命令行方式启动
net start mysql
停止服务
net stop mysql
移除系统服务
mysqld --remove
密码相关
1、针对管理员用户需要设置密码
方式1:直接在cmd窗口内使用mysqladmin命令
mysqladmin -uroot -p原密码 password 新密码
mysqladmin -uroot -p password 123 mysqladmin -uroot -p123 password 666
方式2:直接在登录状态下修改当前登录用户的密码
set password=PASSWORD('密码')
2、忘记密码怎么解决
2.1、关闭服务端
2.2、以跳过授权表的方式重新启动服务端,只需要提供用户名就可以登录
mysqld --skip-grant-tables
2.3、以管理员身份登录
mysql -uroot -p
2.4、修改管理员用户密码
update mysql.user set password=password(123) where user="root" and host="localhost";
2.5、关闭服务端再正常启动
ctrl + C net start mysql
2.6、使用修改之后的密码登录
重要概念介绍
1、库就相当于文件夹
2、表就相当于文件夹里面的文件
3、记录就相当于文件夹里面的文件里面的一行内容
基本SQL语句
SQL语句的结束必须使用分号
1、如何查看所有的数据库名称
show databases; '''会有一个临时产生在内存的库:in...sc'''
2、如何查看所有的表名称
use 库名; '''切换库(类似于双击了文件夹)''' show tables;
3、如何查看所有的记录
select * from 表名; 如果内容较多展示补全出现错乱的情况 可以在语句后面加\G
针对库的SQL语句
# 增 create database 数据库名; # 查 show databases; # 查看所有的库名 show create database 数据库名; # 定向查看某个库 # 改 alter database 数据库名 charset='gbk'; # 删 drop database 数据库名;
针对表的SQL语句
想要操作表必须的先有库
1、先创建库
create database db1;
2、查看当前所在的库名
select database();
3、切换库
use bd1;
具体操作
# 增 create table 表名(字段名1 字段类型1,字段2 字段类型2); # 查 show tables; # 查看当前库下面所有的表名 show create table 表名; # 查看指定的表信息 describe 表名; # 查看表的具体信息(常用) 简写 desc 表名; # 改 alter table t1 rename ttt; # 修改表名 alter table ttt change id nid int; # 修改字段名和类型 alter table ttt modify nid char(4); # 修改字段类型 # 删 drop table 表名;
针对记录的操作
得先确定库和表
# 增 insert into 表名 values(数据,数据,数据); '''单条数据''' insert into 表名 values(),(),(); '''多条数据''' # 查 select * from 表名; '''查询表中所有的数据''' # 改 update 表名 set 字段名='新数据' where 筛选条件; # 删 delete from 表名 where 筛选条件;
字符编码问题
1、查看MySQL内部默认的编码情况
\s
2、解决步骤
MySQL默认的配置文件>>>:mydefault.ini
2.1、拷贝默认的配置文件并且重新命名为my.ini
2.2、拷贝固定的配置信息
[mysqld] character-set-server=utf8 collation-server=utf8_general_ci [client] default-character-set=utf8 [mysql] default-character-set=utf8
2.3、重启MySQL服务端