数据库简介

"""
本学习笔记来自哔哩哔哩--老男孩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. 【文献阅读】Automatic berthing for an underactuated unmanned surface vehicle: A real-time motion planning approach

    (1)文章工作 This paper presents Extended Dynamic Window Approach (EDWA) for the automatic berthing of an ...

  2. Linux 扩容 / 根分区(LVM+非LVM)

    目录: 1,概述 2,CentOS7,LVM根分区扩容步骤 3,CentOS7,非LVM根分区扩容步骤: 一.背景,概述 MBR(Master Boot Record)(主引导记录)和GPT(GUID ...

  3. mysql表关联更新

    UPDATE enterprise_test t1, enterprise_development_relation t2 SET t1.development_area_id = t2.develo ...

  4. 1.java 开始

    WelloWorld 随便新建一个文件夹,存放代码 新建一个java文件 编写代码 编译javac java文件,生成一个class文件 运行class文件,java class 可能遇到的情况 每个 ...

  5. ubuntu扩容

    VMware虚拟机 Linux系统 Ubuntu 16.04 硬盘/磁盘扩容效果查看硬盘大小及使用情况 终端:df -h 没有扩容前: 成功扩容后: 主要流程扩展硬盘大小到100G将未分配的60G分配 ...

  6. VC 运行时库的引用区别 /MD、/MDd 和 /MT、/MTd和DllMain函数

    /MT和/MTd表示采用多线程CRT库的静态lib版本.该选项会在编译时将运行时库以静态lib的形式完全嵌入.该选项生成的可执行文件运行时不需要运行时库dll的参加,会获得轻微的性能提升,但最终生成的 ...

  7. 1.Easy Touch 3.1

    Easy Touch 3.1 Hedgehog Team(导入 Easy Touch 插件时自动在菜单栏) Extensions: 拓展 Adding a new joytick: 虚拟摇杆 Addi ...

  8. flex布局的相关注意事项

    文献参考地址:https://www.cnblogs.com/qcloud1001/p/9848619.html 重点事项: 弹性容器的属性 作用于交叉轴 align-items :对单行起作用 al ...

  9. java三级菜单遍历

    java 三级菜单遍历 @Override public List<YjztCity> getYjzt(){ List<YjztCity> yjztCities = yjztC ...

  10. vue data functions should return an object

    报错: 原因:data里没写return{}