初识MySQL

数据库的分类

数据库主要分为两大类,关系型数据库与非关系型数据库

关系型数据库

关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组
织。
优点:
1、易于维护:都是使用表结构,格式一致;
2、使用方便:SQL语言通用,可用于复杂查询;
3、复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。

缺点:
1、读写性能比较差,尤其是海量数据的高效率读写;
2、固定的表结构,灵活度稍欠;
3、高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。

MySQL、Oracle、PostgreSQL、MariaDB、sqlite、sql server、db2
        MySQL:开源免费 使用非常规范
        Oracle:收费 维护成本高 大型公司可能会使用
        PostgreSQL:支持二次开发
        MariaDB:MySQL的替代产品(并且有自己的特性)
        sqlit

 

e:小型数据库(django框架自带该数据库)

 

 

非关系型数据库

非关系型数据库严格上不是一加粗样式种数据库,应该是一种数据结构化存储方法的集合,可以是文档或者键值对等

优点:
1、格式灵活:存储数据的格式可以是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,使用灵活,应用场景广泛,而关系型数据库则只支持基础类型。
2、速度快:nosql可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘;
3、高扩展性;
4、成本低:nosql数据库部署简单,基本都是开源软件。

缺点:
1、不提供sql支持,学习和使用成本较高;
2、无事务处理;
3、数据结构相对复杂,复杂查询方面稍欠。

Redis、mongoDB、memcache
        Redis:目前最火的缓存数据库 具有很多数据结构 功能强大
        mongoDB:文档型数据库 可以用在大数据和爬虫领域 
        memcache:已经被redis淘汰

 

 

SQL与NoSQL

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

 

 

 

MYSQL简介

MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

  • MySQL 是开源的,目前隶属于 Oracle 旗下产品。
  • MySQL 支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
  • MySQL 使用标准的 SQL 数据语言形式。
  • MySQL 可以运行于多个系统上,并且支持多种语言。这些编程语言包括 C、C++、Python、Java、Perl、PHP、Eiffel、Ruby 和 Tcl 等。
  • MySQL 对PHP有很好的支持,PHP 是目前最流行的 Web 开发语言。
  • MySQL 支持大型数据库,支持 5000 万条记录的数据仓库,32 位系统表文件最大可支持 4GB,64 位系统支持最大的表文件为8TB。
  • MySQL 是可以定制的,采用了 GPL 协议,你可以修改源码来开发自己的 MySQL 系统。

 

 

 

 

MySQL的安装方式

windows系统下载安装

数据库官网下载地址 https://downloads.mysql.com/archives/community/

① 添加环境变量(方便使用命令行直接使用mysql启动)

 

 

 

 

 

 

 

 

 

 

 

② 将MySQL服务制作成windows系统服务

1.检查服务端是否开启,如果开启首先关闭服务端
2.查看当前计算机系统服务列表 services.msc 3.以管理员身份运行cmd并制作系统服务 mysqld --install # 仅仅是添加到了系统服务 第一次需要手动启动 4.启动服务 方式1:鼠标右键选择启动即可 方式2:命令行方式启动 net start mysql """ 停止服务 net stop mysql 移除系统服务 mysqld --remove """

 

 

MySQL密码相关

设置密码

① 未登录状态

mysqladmin -uroot -p原密码 password 新密码
eg:
mysqladmin -uroot -p password 123
mysqladmin -uroot -p123 password 666

②登录状态

set password = PASSWORD('新密码')
set password = PASSWORD('123')

 

忘记密码

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语句

在mysql中,库就相当于windows中的文件夹,表就相当于文件,记录就相当于文件中一行行的内容

针对库的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);
  alter table 表名 add 字段名 数据类型 [完整性约束条件]
  alter table 表名 add 字段名 数据类型 [完整性约束条件] first;
  alter table 表名 add 字段名 数据类型 [完整性约束条件] after 字段名;
# 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 表名;
  alter table 表名 drop 字段名;

针对记录的SQL语句

"""
肯定得先确定库和表
"""
#
    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服务端

 

posted @ 2022-02-17 17:03  椰子皮0oo0  阅读(81)  评论(0)    收藏  举报
1