数据库简介

"""
本学习笔记来自哔哩哔哩--老男孩Python全栈开发29期全套
https://www.bilibili.com/video/BV1QE41147hU?p=519
主讲:Jason老师。
这里基于Mysql数据库进行讲解
"""

数据的本质

"""
本质其实就是一款集图网络通信的应用程序,它仅仅就是一个基于网络通信的应用程序。数据库的软件其实有很多,如:
关系型数据库:
MySQL, Oracle, db2, access, SQL Server
非关系性数据库
redis, mongodb, memcache
"""
# 关系型
1 数据之间彼此有关系或者约束
2 存储数据的表现形式通常是以表格形式储存
# 非关系型
1 储存数据通常以键值形式存在 key:values

MySQL

"""
任何基于网络通信的应用程序底层用的都是socket - 服务端
- 基于socket通信
- 收发消息
- SQL语句
- 客户端
- 基于socket通信
- 收发消息
- SQL语句
"""

MySQL的安装

"""
在MySQL官网进行下载
"""
# 注明:在IT届,一般都不会轻易的使用最新版本的软件,因为新版本可能会出现各种问题。这里学习阶段推荐安装MySQL5.6版本。(目前企业里MySQL5.6左右的版本居多)

参考网站:https://www.mysql.com/

下载5.6版本即可,如果你下载了其他版本问题也不大,因为sql语句是一样的学

按照教学方式下载,会将服务端和客户端一并下载到本地

为了学习方便我们将服务端和客户端都在本地启动,后期到了公司服务端会专门跑在一台服务器上,所有人基于网络连接服务端操作

Mysql的服务端与客户端

# 服务端
mysqld.exe # 客户端
mysql.exe """
注意:
在前期配置Mysql的时候 cmd终端尽量以管理员的身份运行
windows+r -> cmd 普通模式
搜索cmd右键以管理员身份运行 管理员模式
"""

启动Mysql (windows)

  • 打开cmd终端窗口(用管理员模式打开),切换到mysqld所在bin目录下,输入mysqld启动。
  • 或者在环境变量中配置启动。
"""
常见软件的默认端口号:
MySQL 3306
redis 6379
Mongodb 27017
"""
# MySQL第一次以管理员身份进入是没有密码的 直接回车即可 # 客户端连接服务端完整命令
mysql -h 127.0.0.1 -P 3306 -uroot -p
"""
-h host
-p post
-u user
-p password
"""

环境变量配置级系统服务制作

知识点补充

"""
1 如何查看当前具体进程
tasklist
tasklist | findstr mysqld 2 如何杀死具体进程(必须在管理员模式下的cmd)
taskkill /F /PID PID号
例如:
taskkill /F /PID 25617
"""

环境变量配置

# 每次启动mysqld需要切到对应的文件路径下才能操作太多繁琐
# 将mysqld所在的文件路径添加到系统环境变量中
# 查看当前计算机的运行进程数
services.msc
# 将MySQL制作成系统服务
mysqld --install
# 移除MySQL系统服务
mysqld --remove

设置密码

# mysqladmin -uroot -p原密码 password新密码
该命令直接在终端输入即可 无需进入客户端
"""
mysqladmin -uroot -p123 password 12345678
密码尽量使用自己常用密码
"""

破解密码

"""
你可以将mysql获取用户名和密码校验的功能看成是一个装饰器,装饰在了客户端请求访问的功能上,我们如果将该装饰器移除,那么mysql服务端就不会校验用户名和密码了。
""" # 1 先关闭当前MySQL服务端
# 命令行的方式启动(让MySQL跳过用户名密码验证功能)
mysqld --skip-grant-tables
# 2 直接以物密码的方式连接
mysql -uroot -p
# 3 修改当前用户的密码
update mysql.user set password=password(123456) where user='root' and host='localhost';
"""
真正储存用户表的密码字段,肯定是密文,只有用户自己知道明文是什么,其他人都不知道,这样更加的安全,密码比对也只能比对密文。
"""
# 4 立即将修改数据刷到硬盘
flush privileges;
# 5 关闭当前服务端 然后以正常检验授权表的形式启动

统一编码

"""
MySQL的默认配置文件
my-default.ini (ini结尾的一般都是配置文件)
"""
[mysqld] # 一旦服务端启动立刻加载下面的配置
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysql] # 一旦客户端启动立刻加载下面的配置
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES # 需要你自己新建一个my.ini的配置文件 # 验证配置是否真的是自动加载
[mysql]
print('hello world') # 修改配置文件后一定要重启服务才能生效 # 统一编码的配置 无需掌握 直接拷贝即可 # 偷懒 将管理员的用户名和密码也添加到配置文件中
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=utf8
[mysql]
user="root"
password=123456
default-character-set=utf8

下篇:基本sql语句

sql学习笔记 - 1 数据库简介的更多相关文章

  1. SQL学习笔记之 数据库基础(一)

    数据库基础 数据库系统的组成:由数据库,数据库管理软件,数据库管理员DBA,支持数据库系统的硬件和软件组成,其中数据库管理员是对数据库进行规划.设计.维护.和监视的专业管理人员,在数据库系统中起着非常 ...

  2. SQL学习笔记——创建数据库显示:文件激活错误,物理文件名不存在>>解决方案

    今天在创建数据库时,跟着老师一步一步的操作创建成功,但出于在厌恶冗长的数据库存储路径,于是,擅自更改了数据filename,让他保存在电脑桌面新建的文件夹,可是一执行就报错了. 老师源码: 1 cre ...

  3. Mysql数据库学习笔记之数据库索引(index)

    什么是索引: SQL索引有两种,聚集索引和非聚集索引,索引主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间. 聚集索引:该索引中键值的逻辑顺序决定了表中相应行的物 ...

  4. MongoDB学习笔记:MongoDB 数据库的命名、设计规范

    MongoDB学习笔记:MongoDB 数据库的命名.设计规范     第一部分,我们先说命名规范. 文档 设计约束 UTF-8 字符 不能包含 \0 字符(空字符),这个字符标识建的结尾 . 和 $ ...

  5. C#.NET学习笔记1---C#.NET简介

    C#.NET学习笔记1---C#.NET简介 技术qq交流群:JavaDream:251572072  教程下载,在线交流:创梦IT社区:www.credream.com -------------- ...

  6. ORALCE PL/SQL学习笔记

    ORALCE  PL/SQL学习笔记 详情见自己电脑的备份数据资料

  7. Linux学习笔记-Linux系统简介

    Linux学习笔记-Linux系统简介 UNIX与Linux发展史 UNIX是父亲,Linux是儿子. UNIX发行版本 操作系统 公司 硬件平台 AIX IBM PowerPC HP-UX HP P ...

  8. Oracle之PL/SQL学习笔记

    自己在学习Oracle是做的笔记及实验代码记录,内容挺全的,也挺详细,发篇博文分享给需要的朋友,共有1w多字的学习笔记吧.是以前做的,一直在压箱底,今天拿出来整理了一下,给大家分享,有不足之处还望大家 ...

  9. SQL学习笔记

    SQL(Structured Query Language)学习笔记 [TOC] Terminal登录数据库 1.登录mysql -u root -p ; 2.显示所有数据库show database ...

  10. Android学习笔记--Sqlite数据库

    前几天学习了Android中的数据存储,包括文件存储,SharedPreferences存储,还有就是Acndroid中的特色:SQLite数据库存储了.让我比较惊讶的是Android中竟然内嵌了一个 ...

随机推荐

  1. QT如何安装?

    Qt安装教程 OLD HELPS <oldhelps@126.com > 目录 Qt安装教程 下载 注册.登录 接受验证邮件 安装 下载 从https://download.qt.io/n ...

  2. tomcat前后端项目部署及调优

    第1章 tomcat简介Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache,Sun和其他一些公司及个人共同 ...

  3. VBoxNetAdpCtl: Error while adding new interface: failed to open /dev/vboxnetctl: No such file or directory.

    macOS VirtualBox Bridged Adapter 不能用 I'm running macOS High Sierra 10.13.1 and VirtualBox 5.2.2. Thi ...

  4. matplotlib 中文乱码的解决方法

    关于报错信息 Glyph 26426 missing from current font. 这个错误的原因是:本地没有可支持中文字体显示的配置文件,所以第一步需要先去下载相关的配置文件. 下载链接 h ...

  5. lsyncd-实时同步(镜像)守护程序

    本文作者: 五行哥 QQ: 1226032602 E-mail: 1226032602@qq.com 官方文档 https://axkibe.github.io/lsyncd/ https://git ...

  6. Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:3.0.0-M5:test (default-test) on project

    updated to from jdk16 Java jdk 8 or 11 to support jenkins Build run. Plugin management tags aligned ...

  7. 淘淘商城项目技术点-7:Nginx

    Nginx--Ngine X,是一款自由的.开源的.高性能HTTP服务器和反向代理服务器:也是一个IMAP.POP3.SMTP代理服务器:也就是说Nginx本身就可以托管网站(类似于Tomcat一样) ...

  8. C语言学习--指针函数与函数指针

    #include<stdio.h> #include<string.h> //指针函数: 是一个函数, 但是这个函数的返回值类型是一个指针 //函数指针: 是一个指针, 这个指 ...

  9. vector 搜罗最强版

    vector 常见用法(以int类型为例) https://www.cnblogs.com/YJthua-china/p/6550960.html 概括描述总体vector,包括内存的探讨 https ...

  10. ARC(Automatic Reference Counting)自动引用计数 unowned、weak 使用区别

    自动引用计数 引用类型(类.函数.闭包) 当声明一个变量指向某个引用类型时 当前引用类型的引用计数就会加1 当变量不指向该类型时 引用类型就会 -1 当引用计数为0时  当前引用类型就会被系统回收 i ...