了解数据库

数据库演变过程

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

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

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

数据库

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

关系型数据库:

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

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

    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;
# 改
alter table t1 modify name char(16);
# 查
show tables;
show create table t1;
describe t1-----简写 desc t1;

针对数据的增删改查(在指定了库和表之后才可以对数据操作)

# 增
insert into t1 values(1,'jake'); 一条一条加
insert into t1 values(1,'jake')(2,'rose');
# 删
delete from t1 where id > 1;
delete from t1 where name = 'jake';
# 改
updata t1 set name='SB' where name = 'jake';
# 查
select * from t1; 查看所有数据数据多的时候不建议使用
select name from t1;

原文地址:https://www.cnblogs.com/bailongcaptain/p/12828094.html