【1.0】数据库知识点小结数据库初识
【1.0】数据库知识点小结数据库初识
【一】存储数据的演变过程
【1】文件存储
- 随意地存放到一个文件中、数据格式也是千差万别的
- 完全取决于个人
【2】软件开发目录规范
(1)概要
- 限制了存储数据的具体位置
- 建立专门的文件夹存储数据
(2)软件开发目录规范
-
bin
- main.py
-
conf
- settings.py
-
lib
- common.py
-
core
- src.py
-
interface
- interface.py
-
db
- moduls.py
- db_hander.py
-
log
- logs.log
-
README.md
假设上面是一个游戏
每一个人的游戏数据只会保存在本地
注册登录账号也只能在本地有效
(3)如何将单机变成联网
- 建立数据库服务端
- 将数据库保存部分统一到一个位置
- 所有的数据操作都会经过这个总的数据库
【3】数据库的本质
- 数据库其实就是一块基于网络通信的应用程序
- 每个人都有开发一块数据库的能力
【4】数据库的介绍
关系型数据库
-
MySQL
-
Oracle
-
db2
-
access
-
sql server
非关系型数据库
- Redis
- MongoDB
- memcache
关系型(存储数据)
- 彼此之间有关联
- 存储数据的表型形式通常以表格形式存储
- 每个字段限制每个字段下的存储数据的格式
非关系型(缓存数据)
- 存储数据通常是
K:V
形式存储数据
【二】MySQL之SQL语句的由来
- 任何基于网络通信的应用程序底层用的都是scoket
- 服务端
- 基于socket通信
- 收发消息
- 客户端
- 基于socket通信
- 收发消息
- 服务端
MySQL不单单支持MySQL自己的客户端app还支持其他语言编程语言来充当客户端操作,如何解决?
- 让服务端兼容所有语言(一人精通多国语言)
- 采用统一的语言(SQL语句)
【三】什么是库/表/记录/表头/表单
库(Database):
库是指在数据库管理系统中用于存储和组织数据的容器。
它可以视为一个文件夹,用于存放相关的数据表。
数据库中可以包含多个库,每个库可以包含多个表。
表(Table):
表是数据库中的一个基本组成单位,用于存储和展示数据。
表由行(记录)和列(字段)组成,每一行表示一个记录,每一列表示一个字段。
表可以看作是一个二维数据结构,类似于电子表格。
记录(Record):
记录也称作行,是表中的一个数据项或实体。
每一行都代表了一个完整的数据记录,其中包含了各个字段的具体数值或信息。
例如,在一个学生信息表中,每一行代表一个学生的具体信息。
表头(Header):
表头是表中的第一行,用于描述每个列字段的含义或名称。
表头通常包含了列的标签或标题,通过表头可以了解每个列字段所代表的意义,方便数据的理解和查询。
表单(Form):
表单是一种用来收集和展示数据的界面形式,常见于数据输入和显示的场景中。表单通常包含了各种输入字段(例如文本框、下拉列表等)和相关的操作按钮,用户可以通过表单进行数据的录入、编辑和提交等操作。
表单的数据可以被存储到相应的表中,用于后续的数据处理和分析。
- 库:
- 相当于我们的文件夹
- 表:
- 相当于我们的文件
- 记录:
- 相当于我们一行行的数据
- 表头:
- 表格的第一行字段
- 表单:
- 表头对应的每一条数据
【四】MySQL的安装
【1】各种服务器的端口
MySQL :3306
Redis : 6379
MongoDB : 27017
Django : 8000
flask : 5000
见博客:
MySQL有很多版本,但是用的比较多的还是 5.6 版本
"""
服务端:
mysqld.exe
客户端:
mysql.exe
"""
配置 MySQL 尽量使用管理员身份的 CMD 终端
【2】启动
-
MySQL所在的bin目录下
mysqld
-
本地客户端连接服务端
- IP PORT USER PWD
mysql -h 127.0.0.1 -P 3306 -uroot -p
【3】制作成系统服务
每次启动都需要分别开客户端和服务端
制作成系统服务,保证服务一直运行
# 注册系统服务
mysqld --install
# 移除系统服务
mysqld --remove
【4】设置MySQL密码
- 终端下运行
mysqladmin -uroot -p (原密码) password (新密码)
mysqladmin -uroot -p password 1314521
【5】跳过授权表重置密码
将登录验证装饰器的校验功能取消
-
关闭MySQL服务
- 命令函运行终端命令
mysqld -skip-grant-tables
-
直接能以无密码的方式链接
mysql -uroot -p
-
修改当前用户的密码
真正存储用户表的密码字段,存储的肯定是密文
只有用户自己知道明文是什么
密码比对只能比对密文
update mysql.user set password=password(你的密码) where user="root" and host="localhost" (上面命令未知,建议使用下面的命令) alter user 'root'@'localhost' identified by '1314521';
-
立刻将修改的数据刷到硬盘
flush privileges;
- 关闭当前服务,以正常方式登入数据库
【6】修改配置文件
.ini一般都是配置文件
在启动程序的时候都会先加载配置文件
(1)统一编码
-
找到MySQL默认配置文件
my-default.ini
-
新建 my.ini 文件
[mysqld] character-set-server=utf8 collation-server=utf8_general_ci [client] default-character-set=utf8 [mysql] # 不需要每次输入验证码即可登陆 user="root" password=你的密码 default-character-set=utf8
【五】MySQL语句的初识
MySQL中的SQL语句是以分好作为结束的标志
如果没有分好,则是一条语句
【1】查看所有的库名
show databases;
【2】连接服务端命令
mysql -uroot -p
【3】命令不对,强制结束命令
Ctrl + c
【4】退出客户端
退出命令加不加分号都会执行
exit;
quit;
【5】只输入MySQL也能链接
但是不是管理员身份,权限不足,无法查看更多的内容
【六】补充命令
【1】查看当前进程
tasklist
tasklist |findstr mysqld
【2】杀死进程
(PID号):8504 ---- 自己的进程号
taskkill /F /PID
【七】基本SQL语句
大部分程序的业务逻辑其实都是增删改查
【1】针对库的增删改查(文件夹)
(1)创建库
create databases db1;
# 设置库的默认编码
create databases db1 charset='gbk';
(2)查看库
# 查看所有库
show databases;
# 查看指定库
show create database db1;
(3)改库
alter database db2 charset='utf8';
(4)删库
drop database db2;
【2】针对表的增删改查(文件)
在操作表的时候要指定所在的库
(1)查看当前所在库的名字
select database();
(2)切换到指定库
use database db1;
(3)创建表
创建表指定字段
create table t1(id int,name char(4));
(4)查看当前库下面的所有表
# 查看所有的表
show tables;
# 查看指定的表
show create table t1;
# 查看当前表的详细信息
describe t1;
# 查看当前表的详细信息(简写)
desc t1;
(5)修改表
alter table t1 modify name char(16);
(6)删除表
drop table t1;
(7)以绝对路径的形式操作不同的库
create table db2.t1(id int);
【3】针对数据的增删改查(一行行数据)
操作数据要有明确的数据库下的数据表
(1)数据的增加
# 插入单条数据
insert into t1 values(1,'dream');
# 插入多条数据
insert into t1 values(1,'dream')(2,'chimeng');
(2)数据的查看
数据量大的时候不建议使用
数据会冲击服务器导致瘫痪
# 查看全部数据
select * from t1
# 根据指定字段查看数据
select name from t1;
(3)数据的更改
# 以限定调价修改指定字段的数据
update t1 set name='mengmeng' where id > 1;
(4)删除数据
# 删除指定字段的数据
delete from t1 where id > 1;
# 删除指定字段的数据
delete from t1 where name='dream';
# 清空当前表的所有数据
delete from t1;
本文来自博客园,作者:Chimengmeng,转载请注明原文链接:https://www.cnblogs.com/dream-ze/p/17517792.html