当前位置:Gxlcms > 数据库问题 > 了解数据库

了解数据库

时间:2021-07-01 10:21:17 帮助过:33人阅读

  • 随意的存储到文件中,存储的格式也取决于自己

  • 软件开发目录规范——初步规范存储位置(单机)

  • 数据库——基于网络通讯的一个应用程序

数据库

本质:一款基于网络通讯的应用程序

关系型数据库:

  • 彼此之间有关系或者约束

  • 存储数据的表现形式往往是表格的形式

    name password hobby

    jake 123 eat

    • 每一个字段还会有存储类型的限制——姓名只能存字符串类型

非关系型数据库:

  • 通常是以k,v键值对的形式存储

MySQL

任何基于网络通讯的应用程序底层使用都是socket

服务端:

  • 基于socket通讯

  • 收发消息

  • SQL语句

客户端:

  • 基于socket通讯

  • 收发消息

  • SQL语句

MySQL不但支持自己的客户端,也支持其他的语言充当客户端

解决语言沟通的障碍——统一的语言(SQL语句)

概念介绍

库——文件夹

表——文件

记录——文件内的一行数据

name     password       hobby
jason   123 学习
egon   123 女教练
tank   123 吃生蚝
表头: 表格的第一行字段
字段:name     password hobby

MySQL安装

官网:https://www.mysql.com/

服务端——mysqld.exe

客户端——mysql.exe

PS:服务端最好以管理员身份运行终端

MySQL启动

  • 切换到mysql的bin目录下,输入服务端——mysqld

  • 保留原先的终端,以客户端的身份链接到服务端

    mysql -h 127.0.0.1 -p 3306 -uroot -p

启动中可能遇到的问题

MSVCP100.dll文件缺失——安装vc2010即可

SQL语句入门

  • MySQL中的sql语句是以分号作为结束的标志

  • 基本命令

  • show databases; 查看所有的库的名字

  • mysql -uroot -p 链接服务端的命令简写

  • 输入了不想执行的命令 \c

  • 客户端的求出quit exit 加不加分号都可以

环境变量的配置

  • 查看当前的具体进程——tasklist

  • 杀死进程——taskkill /F /PID

如何将mysql服务端制作成系统服务(开机自启动)

  • 查看当前计算机的运行进程数——services.msc

  • 将mysql添加到系统服务——mysqld --install

  • 移除服务—— mysql --remove

设置密码

mysqladmin -uroot -p原密码,password 新密码

直接在终端输入即可,无需进入客户端

破解密码

"""
你可以将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# 一旦客户端启动立刻加载下面的配置
...
[client# 其他客户端
...
?
# 需要你自己新建一个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语句(增删改查)

针对库的增删改查

# 增
create database db1;
create database db2 charset=‘gbk‘;
# 删
drop database db2;
# 改
alter database db2 charset = ‘utf8‘;
# 查
show databases;

针对表的增删改查(需要先指定库)

# 查看当前库名
select database();
# 切换库
use db1;
# 增
create table t1(id int,name char(4));
# 删
drop table t1;
# 改

人气教程排行