初识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服务端


浙公网安备 33010602011771号