44.MySQL数据库1

  • 存储数据的演变过程
  • 数据库的本质
  • MySQL
    • 重要概念介绍
    • MySQL的安装
    • MySQL客户端与服务端
      • 注意事项
    • 启动
    • SQL语句初识
    • 环境变量配置及系统服务制作
    • 设置密码
      • 忘记密码做怎么做
    • 统一编码
    • 基本SQL语句
      • 针对库的增删改查
      • 针对表的增删改查
      • 针对数据的增删改查
数据库
存储过程的演变
  • 随意存到一个文件中,数据格式也是千差万别的,完全取决于我们自己
#小李jason|123|NB#小红egon~123~NB#小王tank-123-NB
  • 软件开发目录,限制了数据的具体存储位置
binconfcoredblibinterfacereadme假设上述是一个单机游戏
那么每个人的游戏记录也只能在自己的计算机上保存
注册登陆的账号也只能在自己的计算机上有效
  • 如何将单机编程联网
先将数据保存部分统一起来,所有人都来同一个地方操作数据数据库的本质
"""数据库的本质其实就是一款基于网络通信的应用程序其实每个人都可以开发一款数据库软件,因为它仅仅就是一个基于网络通信的应用程序也就意味着数据库软件其实有很多种关系型数据库MySQL、oracle、db2、access、SQLserver非关系型数据库redis、mongodb、memcache"""# 关系型1.数据之间彼此有关系或者有约束男生表和前女友表2.存储数据的表现格式通常都是表格namepasswordhobbyjason123readegon123DBJtank123吃生蚝每个字段还有存储类型的限制比如姓名只能存成字符串形式# 非关系型存储数据一般都是以k/v键值对的形式MySQL
"""任何基于网络通信的应用程序底层用的都是socket-服务端-基于socket通信-收发消息-SQL语句-客户端-基于socket通信-收发消息-SQL语句"""MySQL不单单支持MySQL自己的客户端app,还支持其他编程语言来充当客户端操作如何解决语言沟通的障碍# 1.让服务端兼容所有的语言(一个人兼通多国语言)# 2.采用统一的语言(SQL语句)重要概念介绍
"""库》》》》》》》》》文件夹表》》》》》》》》》文件记录》》》》》》》》》文件内的一行行内容表头》》》》》》》》》表格内的第一行字段字段》》》》》》》》》name,age.hobbynameagehobbyjason18reakegon32DBJtank50swwiming"""MySQL的安装
"""在IT界,一般都不会轻易地使用最新版本的软件,因为新版本可能会出现各种
问题(你原本的项目跑的好好地,非要画蛇添足更新版本,然后项目崩溃)"""MySQL有很多版本,目前使用的是5.7的版本"""参考网站:https://www.mysql.com/(官网)--------》DOWNLOADS--------》[MySQL community(GPL)Downloads]----------》
MySQL community server -----------》looking for previous GA versions?------------》
选择 select os verSion:windows(x86-64bit)-----------》
downloads ZIP archive 和zip archive,debug binaries & test suite(两个文件下载好之后,解压即可)注意:5.7版本解压之后,没有data文件夹,这时候以管理员身份打开cmd命令窗口切换到MySQL的bin目录下,然后执行:mysql --initialize-insecure --user=mysql回车,data文件夹安装成功为了学习方便,我们将服务端和客户端都在本地启动,后期到了公司,服务端会专门跑在一台服务器上,所有人基于网络链接服务端操作即可"""MySQL服务端与客户端
"""服务端mysqld.exe客户端mysql.exe"""注意
"""在前期配置MySQL的时候,cmd终端尽量 以管理员身份运行win + r 输入cmd,进入的是普通用户终端,有一些命令是无法执行的在开始菜单里输入cmd,鼠标右键选择以管理员身份运行"""  启动
  • 先切换到mysqld所在的bin目录下,然后输入mysqld即可
  • 保留原来的cmd窗口,重新打开一个cmd窗口
"""服务端启动:以管理员身份打开cmd终端,切换到bin目录下,输入mysqld回车即可输入: d:,切换到d盘输入:cd文件夹名称\切换到对应的文件夹下面客户端启动:保留原来的服务端cmd窗口,重新打开一个cmd窗口,输入以下命令mysql -h 127.0.0.1 -P 3306 -uroot -p回车,返回以下内容表示连接成功 Welcome to the MySQL monitor.Commands end with ; or \g.Your MySQL connection id is 2Server version: 5.7.35 MySQL Community Server (GPL)Copyright (c) 2000, 2021, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MySQL首次以管理员身份进入是没有密码的,直接回车即可客户端链接服务端完整命令:mysql -h 127.0.0.1 -P 3306 -uroot -p"""常见软件的默认端口号MySQL3306Redis6379mongodb27017Django8000flask5000Tomcat8080SQL 语句初识
"""1.MySQL中的SQL语句是以分号作为结束的标志的2.基本命令 show databases;查看所有库名返回+--------------------+| Database|+--------------------+| information_schema || mysql|| performance_schema || sys|+--------------------+4 rows in set (0.00 sec)3.连接服务端的命令可以简写为mysql -uroot -p4.当你输入的命令不对,又不想让服务端执行并返回消息的时候,可以再语句后面用\c取消执行错误命令 \c5.客户端退出命令,退出命令可以不用加分号quitexit6.当你在链接服务端的时候,发现输入mysql也能连接但是你不是管理员身份,而只是一个游客模式,只能使用部分功能或者命令"""环境变量配置及系统服务制作
小知识点补充"""1.如何查看当前具体进程tasklisttasklist |findstr mysqld2.如何杀死具体进程(只有管理员cmd窗口下才能成功)tasklkill /F /PID PID号"""环境变量配置"""每次启动mysql需要先切换到对应的文件路径下才可以操作,太过繁琐将mysql所在的文件路径添加到系统环境变量中"""这样设置了之后还是繁琐将mysql服务制作成系统服务(开机自启动)"""查看当前计算机运行的进程win+r :输入services.msc命令将mysql制作成系统服务win+r输入 cmd,在命令窗口输入:mysqld --install移除mysql系统服务win+r输入 cmd,在命令窗口输入:mysqld --remove"""设置密码
"""在终端输入命令,无需进入客户端mysqladmin -uroot -p原密码 password 新密码再次修改密码:mysqladmin -uroot -p123 password 123456"""忘记密码了怎么办?
出去玩了好几个月,回来发现密码忘记了,死活进不去
"""你可以将mysql获取用户名和密码校验的功能看成是一个装饰器装饰在了客户端请求访问的功能上我们如果将该装饰器移除,那么mysql服务端就不会校验用户名和密码了"""#1先关闭当前mysql服务端#命令行的方式启动(让mysql跳过用户名和密码的验证功能)mysqld --skip-grant-tables#2 直接以无密码的方式连接mysql -uroot -p 回车#3 修改当前用户的密码update mysql.user set authentication_string=password(123456) where user='root' and host='localhost';"""真正存储用户表的密码字段,肯定存储的是密文只有用户自己知道明文是什么,其他人都不知道,这样更加的安全密码对比也只能对比密文"""#4 立刻将密码刷到硬盘flush privilege;#5 关闭当前服务端,然后以正常校验表的形式启动统一编码
  • mysql默认的配置文件
"""5.6及之前的版本,有一个默认的配置文件my_default.ini#这个文件不可以修改ini结尾的一般都是配置文件程序启动会先加载配置文件,然后才真正的启动"""[mysqld]#一旦服务端启动会立刻加载下面的配置sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES[mysql]#一旦客户端启动会立刻加载下面的配置...[client]#其他客户端...#需要你自己新建一个my.ini的配置文件#验证配置是否真的是自动加载[mysql]print('hello world!')#修改配置文件后一定要重启服务端才能生效#统一编码的配置无需掌握,只需拷贝#偷懒,将管理员的用户名和密码也写进去[mysqld]character-set-server=utf8collation-server=utf8_general_ci[client]default-character-set=utf8[mysql]user="root"password=123456default-character-set=utf8基本SQL语句
针对库的增删改查
【44.MySQL数据库1】"""#增create database db1;create database db2 charset='utf8';#查show databases;show create database db1;#改alter database db2 charset='gbk';#删drop database db2;"""针对表的增删改查
"""在操作表的时候,需要指定所在的库# 查看当前所在的库名select database();# 切换库use db1;#增create table t1(id int,name char(16));#查show tables;show create table t1;describe t1;desc t1;#改alter table t1 mofify name char(32);#删drop table t1;create table db2.t2(id int) # 也可以采用绝对路径的方式操作不同的库"""针对数据的增删改查
"""一定要先有库,再有表,才可以操作数据#增insert into t1 values(1,'jason');insert into t1 values(1,'jason'),(2,'egon');#查select * from t1;select id,name from t1;#改update t1 set name='jasonNB' where id = 1;#删delete from t1 where id=1;delete from t1;"""