博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

MySQL基础(一)

Posted on 2022-02-17 19:40  ~sang  阅读(144)  评论(0编辑  收藏  举报

数据库的分类

1.关系型数据库
MySQL、Oracle、PostgreSQL、MariaDB、sqlite、sql server、db2
  MySQL:开源免费 使用非常规范
  Oracle:收费 维护成本高 大型公司可能会使用
       PostgreSQL:支持二次开发
       MariaDB:MySQL的替代产品(并且有自己的特性)
       sqlite:小型数据库(django框架自带该数据库)

2.非关系型数据库
Redis、mongoDB、memcache
  Redis:目前最火的缓存数据库 具有很多数据结构 功能强大
       mongoDB:文档型数据库 可以用在大数据和爬虫领域
       memcache:已经被redis淘汰
'''
两类数据库的区别
关系型数据库
拥有固定的表结构,并且表与表之间可以建立代码层面的关系
非关系型数据库
没有固定的表结构,数据存储采用的是k:v键值对的形式
'''

SQL与NoSQL

数据库的服务端为了能够兼容不同类型的客户端实现数据交互
所以规定了统一的交互方式
关系型数据库:SQL语句
   非关系型数据库:NoSQL语句
# NoSQL有时候也表示非关系型数据库

MySQL

1.主要版本
5.6:使用频率较高的版本
   5.7:目前正在过渡的版本
   8.0:目前最新的版本

2.软件下载
mac:https://www.cnblogs.com/Dominic-Ji/articles/15402755.html
   linux:博客置顶文章
   windows:瞪大眼睛看
  访问官网:https://www.mysql.com/
       具体步骤:
           DOWNLOADS
          MySQL Community (GPL) Downloads
              MySQL Community Server
                  Archives
                      选择版本下载压缩包(客服端 服务端)
                 
3.目录介绍
bin文件夹
  mysqld.exe 服务端
       mysql.exe 客服端
   data文件夹
  存储使用过程中需要保存的数据
   my-default.ini
  配置文件
   redadme
  说明文件

4.基本使用
# 一定要先启动服务端再启动客户端
  """前期在操作的时候最好使用管理员cmd操作"""
   1.环境变量的配置
   2.直接输入mysqld启动服务端(当前cmd窗口不要关闭)
   3.开设一个新的cmd窗口操作客户端
  mysql # 游客模式登陆
       mysql -u用户名 -p密码  # 账号登录(本地使用)
       mysql -hIP地址 -P端口号 -u用户名 -p密码  # 完整命令
       """第一次登录 root用户没有密码 直接连续回车即可"""

系统服务

# 将MySQL的服务端制作成系统服务 开机自启动 关机自关闭
1.先关闭之前的服务端
2.查看当前计算机系统服务列表
services.msc
3.以管理员身份运行cmd并制作系统服务
mysqld --install # 仅仅是添加到了系统服务 第一次需要手动启动
4.启动服务
net start mysql
5.停止服务
net stop mysql
6.移除系统服务
mysqld --remove

密码相关

# 针对管理员用户需要设置密码
方式1:直接在cmd窗口内使用mysqladmin命令
       mysqladmin -uroot -p原密码 password 新密码
      eg:
               mysqladmin -uroot -p password 123
               mysqladmin -uroot -p123 password 666
   方式2:直接在登录状态下修改当前登录用户的密码
       set password=PASSWORD('密码')
           
# 忘记密码如何解决(了解)
方式1:前期数据库里面也没有数据 干脆重来!!!
   方式2:稍作了解
       1.关闭服务端
       2.以跳过授权表的方式重新启动服务端
           只需要提供用户名就可以登录
           mysqld --skip-grant-tables
       3.以管理员身份登录
      mysql -uroot -p
       4.修改管理员用户密码
      update mysql.user set password=password(123) where user="root" and host="localhost";
5.关闭服务端再正常启动
      ctrl  + C
          net start mysql
        6.使用修改之后的密码登录

基本SQL语句

'''SQL语句的结束必须使用分号'''
1.查看所有的数据库名称
show databases;
   use 库名; # 切换库
2.查看所有的表名
show tables;
3.查看所有的记录
select * from 表名;
# 如果内容较多展示补全出现错乱的情况,可以在语句后面加\G

针对库的SQL语句

# 增
create database 数据库名;
# 查
show databases; # 查看所有的库名
   show create database 数据库名; # 定向查看某个库
# 改
alter database 数据库名 charset='gbk';
# 删
drop database 数据库名;

针对表的SQL语句

'''
1.查看当前所在的库名
select database();
2.切换库
use 库名;
'''
# 增
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 表名(字段1,字段2,字段3) values(值1,值2,值3) # 指定字段插入数据
insert into 表名 values(数据,数据,数据...); # 单条数据
   insert into 表名 values(),(),(); # 多条数据
# 查
select * from 表名;
# 改
update 表名 set 字段名='新数据' where 筛选条件;
# 删
delete from 表名 where 筛选条件;

字符编码问题

# 查看MySQL内部默认的编码情况
\s

"""MySQL默认的配置文件>>>:mydefault.ini"""
1.拷贝默认的配置文件并且重新命名为my.ini
2.拷贝固定的配置信息
[mysqld]
   character-set-server=utf8
   collation-server=utf8_general_ci
  [client]
   default-character-set=utf8
  [mysql]
   default-character-set=utf8
3.重启MySQL服务端