day44 初识数据库
一、数据的演变
在python学习的过程中,我们一开始的数据是存放在文件中的,这都是按照自己的习惯风格去定制的。后来为了更规范的记录数据,有了一条软件开发目录规范。
Foo/
|-- core/
| |-- core.py
|
|-- api/
| |-- api.py
|
|-- db/
| |-- db_handle.py
|
|-- lib/
| |-- common.py
|
|-- conf/
| |-- settings.py
|
|-- run.py
|-- setup.py
|-- requirements.txt
|-- README
但这也只是对我们本地的数据做一些操作,真正要联网统一管理数据,需要用到数据库
二、数据库
数据库的本质是一款基于网络通信的应用程序
数据库大致上分为两种:
- 关系型数据库
- MySQL、oracle、db2、access、sql sever
- 非关系型数据库
- redis、mongodb、memcache
关系型数据库和非关系型数据库的区别:
- 关系型:
- 数据之间有彼此的关系或者约束
- 存储数据的表现形式通常是以表格存储
- 字段名: name pwd age
- 数据 : hz 123 18
- 数据 : lxt 123 18
- 每个字段都可以设定不同的存储类型限制
- 非关系型:
- 储存数据通常是以kv键值对的方式存储
三、MySQL
1 基本原理
任何基于网络通信的应用程序底层都是用socket
- 服务端
- 基于socket通信
- 收发消息
- SQL语句
- 客户端
- 基于socket通信
- 收发消息
- SQL语句
MySQL能支持其他编程语言当成客户端来操作,用的是统一的SQL语言
2 重要概念介绍
- 数据库 = 文件夹
- 表 = 文件
- 数据 = 文件内的一行行数据
- 表头 = 表格内的第一行数据
- 字段 = 第一行数据的元素
3 安装
4 启动
MySQL要在终端启动,要先启动一个服务端,然后我们在客户端对数据进行操作
先切换到mysqld所在的bin目录下,然后输入mysqld即可
保留原来的cmd窗口重新打开一个
"""
常见软件的默认端口号
MySQL 3306
redis 6379
mongodb 27017
django 8000
flask 5000
... MySQL第一次以管理员身份进入是没有密码的 直接回车即可 客户端连接服务端完整命令
mysql -h 127.0.0.1 -P 3306 -uroot -p
"""
5 sql基本语句
MySQL的sql语句都是以;最为结束的标志
- 查看所有的库名: show databases
- 连接服务端的命令简写: mysql -uroot -p
- 如果不想让服务端执行自己写的错误命令:\c
- 客户端退出:quit 或者 exit
- 如果输入mysql也连接到了服务端,这只是游客模式,不是管理员模式,功能阉割。
6 环境变量的配置及系统服务制作
小知识点补充
- 如何查看具体进程
- 查看全部进程:tasklist
- 查看具体进程:tasklist | findstr mysqld
- 如何杀死具体进程(必须在管理员cmd窗口下才能成功)
- taskkill/F / PID号
环境变量配置
每次启动mysqld服务端都要在mysql的bin文件目录下才能启动,这样的方式明显很麻烦,我们可以通过把mysqld文件所在路径添加到系统的环境变量中
这样虽然不用到特定目录下启动服务,但是还是要启动两个cmd
最优解是把mysql服务端制作成系统服务(开机自启动)
- 查看当前计算机运行的进程数
- services.msc
- 把mysql制作成系统服务
- mysqld -- install
- 移除mysql系统服务
- mysqld -- remove
7 关于密码
设置密码指令
mysqladmin -uroot -p原密码 passwprd 新密码
直接终端修改即可,不需要进入客户端
破解密码
- 先关闭mysql服务端
- mysql获取账号密码的效验可以看做是一个装饰器,装饰在客户端访问的功能上
- mysqld --skip-grant-tables
- 直接以无密码的方式连接
- mysql -uroot -p 直接回车
- 修改当前用户的密码
- update mysql .user set password = password(123456)where user='root' and host = 'localhost'
- 立刻修改数据刷新到硬盘
- flush privileges
- 关闭当前服务器,以正常授权形式启动
mysql的密码储存是密文形式,如果忘记了就必须重置
8 统一编码
mysql在主文件下有一个ini后缀的配置文件
这个配置文件会在程序刚开始运行的时候先加载,再启动
但是一般情况不会再这个自带的ini文件内对mysql配置信息进行修改,通常是自己写一个ini文件让程序运行前加载
my.ini
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=utf8
[mysql]
user="root"
password=123456
default-character-set=utf8
9 基本sql语句
ps:大部分的程序的业务逻辑都是增删改查
针对库的增删改查(文件夹)
# 增加数据库
create database db2;
create database db2 charset = 'gbk';
# 查询数据库
show databases; # 查所有
show create database db2; # 查询指定的数据库
# 修改数据库属性
alter database db2 charset = ‘utf8’;
# 删除数据库
drop database db2
针对表的增删改查(文件)
我们要修改表/文件的时候,先要找到这个表/文件所在的数据库/文件夹
# 查看当前所在的库的名字
select database();
# 切换库
use db2;
# 增加表
create table t1(id int,name char(4)) # 内涵字段名和字段的数据类型
# 查询表
show tables # 查询当前库所有的表
show create table t1;# 查询当前库指 定名称的表
# 这种语句查出来的结果是select语句的形式
describe t1; # 支持简写 desc t1;
# 这种语句的查询结果是以表格的形式
# 修改表
alter table t1 modify name char(16) # 修改表某一字段的数据类型
# 删除表
drop table t1;
'''
可以用绝对路径操作不同库的表进行操作
create table db1.t1(id int);
'''
针对数据的增删改查(一行行数据)
# 对数据的操作一定要先有库,有表,最后才能操作
# 增加数据
insert into t2 values(1,'hz'),(2,'egon');
# 查询数据
select * from t2;
# 修改数据
update t2 set name=‘hzdsb’ where id= 1;
# 删除数据
delete from t2 where id = 1;
# 清空表数据
delete from t2;
day44 初识数据库的更多相关文章
- 第一章 初识数据库Mysql
初识数据库Mysql(my) 在企业中 percona: 一.数据库基础知识 Mysql是一个开放源代码的数据库管理系统(DBMS),它是由Mysql AB公司开发.发布并支持的.Mysql是一个 ...
- Task01:初识数据库
本章主要讲解数据库安装和数据库基本介绍,考虑易用性及普及度,本课程采取mysql进行教学. 1.1 初识数据库 数据库是将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合.该数据集合称 ...
- Mysql(一):初识数据库
一 数据库管理软件的由来 基于我们之前所学,数据要想永久保存,都是保存于文件中,毫无疑问,一个文件仅仅只能存在于某一台机器上. 如果我们暂且忽略直接基于文件来存取数据的效率问题,并且假设程序所有的组件 ...
- MySQL之初识数据库
一 数据库管理软件的由来 基于我们之前所学,数据要想永久保存,都是保存于文件中,毫无疑问,一个文件仅仅只能存在于某一台机器上. 如果我们暂且忽略直接基于文件来存取数据的效率问题,并且假设程序所有的组件 ...
- 【MySQL】初识数据库及简单操作
一.数据库概述 1.1 什么是数据(Data) 描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是文字.图片,图像.声音.语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机. ...
- 初识数据库、初识MySQL
一.为什么要用数据库 # 1.将文件和程序存在一台机器上是很不合理的. # 2.操作文件是一件很麻烦的事. 所以就出现了一个新的概念 —— 数据库 你可以理解为 数据库 是一个可以在一台机器上独立工作 ...
- MySQL 第一篇:初识数据库
一 数据库管理软件的由来 基于我们之前所学,数据要想永久保存,都是保存于文件中,毫无疑问,一个文件仅仅只能存在于某一台机器上. 如果我们暂且忽略直接基于文件来存取数据的效率问题,并且假设程序所有的组件 ...
- SQL学习笔记一之初识数据库
阅读目录 一 数据库管理软件的由来 二 数据库概述 三 mysql介绍 四 下载安装 五 mysql软件基本管理 六 初识sql语句 一 数据库管理软件的由来 基于我们之前所学,数据要想永久保存,都是 ...
- Mysql初识数据库《五》初识sql语句
初识sql语句 有了mysql这个数据库软件,就可以将程序员从对数据的管理中解脱出来,专注于对程序逻辑的编写 mysql服务端软件即mysqld帮我们管理好文件夹以及文件,前提是作为使用者的我们,需要 ...
随机推荐
- Java实现圆柱体表面积和体积的计算
题目描述: Java编程实现圆柱体表面积和体积的计算,要求从键盘上输入圆的半径和高,然后输出结果. 题目分析: 首先定义Circle类,然后在main方法中创建Circle类的对象c,利用对象c访问其 ...
- javaCV开发详解之12:视频转apng动态图片实现,支持透明通道,也支持摄像机、桌面屏幕、流媒体等视频源转apng动态图
wjavaCV系列文章: javacv开发详解之1:调用本机摄像头视频 javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG. ...
- Java 多线程基础(五)线程同步
Java 多线程基础(五)线程同步 当我们使用多个线程访问同一资源的时候,且多个线程中对资源有写的操作,就容易出现线程安全问题. 要解决上述多线程并发访问一个资源的安全性问题,Java中提供了同步机制 ...
- C#数据结构与算法系列(二):稀疏数组(SparseArray)
1.介绍 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组. 稀疏数组的处理方法是: 1.记录数组一共有几行几列,有多少个不同的值 2.把具有不同值的元素的 ...
- Remap 后的 USART1 不能发送数据
最近在使用 STM32 的 USART1 时,遇到一点问题,记录一下. 如果 USART1 不是使用 PA9 和 PA10 作接收和发送引脚,而是 PB6 和 PB7,那么有一点就一定得注意了:此时 ...
- springboot整合oss
原文链接:https://blog.csdn.net/weixin_42370891/article/details/99102508 登录阿里云,进入到控制台 创建Bucket 导入如下依赖 < ...
- 容器技术之Docker Machine
前文我们聊了下docker容器的资源限制,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13138725.html:今天我们来聊一聊docker machine ...
- 专家解读:利用Angular项目与数据库融合实例
摘要:面对如何在现有的低版本的框架服务上,运行新版本的前端服务问题,华为云前端推出了一种融合方案,该方案能让独立的Angular项目整体运行在低版本的框架服务上,通过各种适配手段,让Angular项目 ...
- SpringCloud 入门(二)
前文我们介绍了创建注册中心的过程以及配置,接下来我们再简单的创建一个客户端 基本操作和前文一样,不一样的是选择的依赖 然后下一步,修改启动类和配置,结构如下图 修改配置文件application-te ...
- 四层发现-TCP和UDP发现简介
虽然这里使用到了端口发现,但是四层发现阶段并不对端口进行解析,而是通过端口进行对ip是否存活的判断. 这里是对主机的发现,而不是对端口的识别. 四层发现的结果比三层发现的结果更加精确,基本不会被防火墙 ...