MySQL的下载与基础知识
数据库分类
#关系型数据库
特点:
有固定的表结构(最主要的特征)
表与表之间可以建立代码层面的关系
常见数据库名称:
MySQL Oracle PostgreSQL MariaDB sqlite sql server
#非关系型数据库
特点:
没有固定的表结构,数据存取采用K:V键值对的形式(最主要的特征)
表与表之间无法建立代码层面的关系
常见数据库名称:
Redis MongoDB Memcache
SQL与NoSQL
数据库服务端支持多客户端链接使用,数据库自带的客户端、python代码编写的,java代码编写的...那么如何让服务端兼容诸多客户端从而实现正常交互呢?
方式1:让服务端识别并自动切换对应语言
方式2:统一沟通标准
相较之下方式2更加合理>>>即SQL语句与NoSQL语句
#SQL语句:与关系型数据库交互的语言
#NoSQL语句:与非关系型数据库交互的语言
SQL有时候用来表示关系型数据库,有时候表示SQL语句;NoSQL有时候用来表示非关系型数据库,有时候表示NoSQL语句
MySQL简介及下载与安装
#下载使用
https://www.mysql.com/
#下载步骤
downloads
(GPL) Downloads
MySQL Community Server
Archives
选择版本和系统(以5.6.44为例)
点击下载对应的zip压缩包即可
# 解压处理
解压至除C盘以外的盘符,根目录以便查找
mysql-5.6.44-winx64.zip >>> mysql-5.6.44-winx64
# 目录结构
bin文件夹
>> mysqld.exe 服务端
>> mysql.exe 客户端
'''学习阶段服务端在本地启动即可'''
data文件夹 存放数据
my-default.ini文件 默认配置文件
README文件 说明书
基本使用
以D:\mysql-5.6.44-winx64为例
1.以管理员身份运行cmd
切换到bin路径下
D:
cd mysql-5.6.44-winx64\bin
2.启动服务端
mysqld
# 维持cmd窗口不要关闭 重新打开一个新的cmd窗口
3.启动客户端链接服务端
先切换到bin路径下
D:
cd mysql-5.6.44-winx64\bin
# 然后直接输入mysql即可登录服务端
注意:可以把bin路径直接添加到环境变量,然后直接输入mysqld即可启动服务端,输入mysql启动客户端
'''不带用户名和密码 是游客模式(只能体验基本功能)'''
# 报错情况:启动服务端的时候 有些同学的电脑可能会报错
解决策略:
拷贝报错信息,百度搜索>>>mysql启动报错+错误代码
eg:一般情况下是系统C盘下的windows文件下system32文件夹下缺失或者需要更换一些文件,如msvcr100.dll,msvcp100.dll
MySQL系统服务制作
#1.添加环境变量
#2.设置服务端开机自启动
#3.修改密码:
1.直接输入mysql登录:
默认是游客模式,没有太多操作的权限
"""
如何区分当前是否是游客模式?
登陆后可以执行show database;
结果如果是两条 表示是游客
结果如果是四条及以上 表示是用户
"""
2.使用用户名和密码的方式登录
mysql -u用户名 -p密码
# 学习阶段暂不考虑用户管理,直接使用root用户(管理员账号)
mysql -uroot -p # 直接回车,先不输入密码,可以密码输入
Enter password: ********
3.修改管理员密码
(1)在cmd窗口下直接修改(不要登录进去)
mysqladmin -u用户名 -p原密码 password 新密码
eg:mysqladmin -uroot -padmin123 password jason123
# Warning: Using a password on the command line interface can be insecure.提示在命令行界面上使用密码可能不安全
'''第一次无密码修改 -p后面不写即可'''
(2)登录状态下修改当前用户密码(初次登录或者已密码登录)
set password = PASSWORD('新密码'); # 最新版不支持
eg:set password = PASSWORD('jason123')
重要概念
库 类似于>>> 文件夹
表 类似于>>> 文件
记录 类似于>>> 文件中一行行数据
"""
show databases; 查看所有的库名称
类似于查看data文件夹内文件夹的名称
"""
# SQL语句使用分号作为结束符
基本SQL语句操作
# 查
show databases; # 查看所有的库名称
show create database 库名 # 指定查看某个库的信息
# 增
create database 库名; # 创建新的库
# 改
alter database 库名 charset='utf8'; # 修改库的字符编码
# 删
drop database 库名;
'''进入公司 每个账号都会有权限管理 不可能轻易做到'''
# 切换到指定库
use 库名;
操作表的基本SQL语句
表是存放于库下面的,所以操作表之前,应该先确定库如何查看当前在哪个库下:
select database();
结果如果是null则表示当前没有切换到任何库下
切换到指定库:
use 库名;
# 查
show tables # 查看当前库下所有的表名称
show create table 表名; # 指定查看某个表的信息
describe 表名; # 指定查看表的详细信息,简写:desc 表名;
# 增
create table 表名(字段名称1 字段类型2,字段名称2 字段类型2);
# 改
alter table 表名 rename 新表名; # 修改表名
# 删
drop table 表名; # 指定删除某表
操作记录的基本SQL语句
# 查
select * from 表名; # 查看表里面的所有数据
select * from 库名.表名; # 查看指定库下面的指定表的所有数据
select * from 表名\G; # 逐行展示表的信息
select Host,User from mysql.user # 查看指定字段
# 增
insert into 表名 values(值1,值2); # 增加单条数据
insert into 表名 values(值1,值2),(值3,值4); # 增加多条数据
# 改
update 表名 set 字段=新值 where 筛选条件;
eg: update t1 set name='jason' where id=1; # 将id是1的数据中name字段对应的值改成jason
# 删
delete from 表名 where 筛选条件;
eg: delete from t1 where id=3;
# 如果不加筛选条件就是删除所有的数据
delete from t1;