MySQL数据库初识

数据库

长期存储在计算机内,有组织的,可共享的大量数据的集合。
优点:(相对与文件存储数据而言)

  • 文件的安全性更高
  • 利于数据查询和管理
  • 利于海量数据存储
  • 在程序中控制更加方便

数据库存储介质:

  • 磁盘
  • 内存

SQL分类

  • DDL数据定义语言,用来维护存储数据的结构
    代表指令: create, drop, alter
  • DML数据操纵语言,用来对数据进行操作
    代表指令: insert,delete,update
    • DML中又单独分了一个DQL,数据查询语言,代表指令: select
  • DCL数据控制语言,主要负责权限管理和事务
    代表指令: grant,revoke,
服务器,数据库,表关系
  • 所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。
  • 为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。
  • 客户端和服务端都是一个程序
  • 数据库相当于服务端程序管理的文件夹,而数据库表相当于文件夹下的文件
  • 数据库服务器、数据库和表的关系如下:
    在这里插入图片描述
    MySQL的原理:
    在这里插入图片描述

mysqld—>守护进程
先启动守护进程,拉起来mysql的服务端,如果在使用过程中mysql的服务端挂掉了,守护进程会重启来起来mysql的服务端
选择连接的协议:

  • 针对本地的mysql客户端,不走网络协议栈,而是通过域套接字来完成客户端和服务端的进程间通信;
  • 域套接字:简单的理解,就是在机器当中创建一个文件,客户端和服务端通过文件来进行通信;

服务端:

 socket: AF_UNIX, SOCK_STREAM, 0
    bind:
        struct sockaddr_un server_un;
        server_un.sun_family = AF_UNIX;
        server_un.sun_path = "[文件名称]"
        bind(sockfd, (struct sockaddr*)&server_un, sizeof(server_un));
    listen 
    accept
    不在调用 send/recv来发送和接收数据了
    而是调用 read/write来读数据和写数据

客户端:

  socket(AF_UNIX, SOCK_STREAM, 0)
    struct sockaddr_un server_un;
    server_un.sun_family = AF_UNIX;
    server_un.sun_path = "[文件名称]"
    connect(sockfd, (struct sockaddr*)&server_un, sizeof(aerver_un));
    read/write;
数据库基本操作

库的操作:

  • 创建数据库
create dabase [库名称];
show create database [库名称]  -->查看如何创建的库
  • 使用数据库
use [数据库名称];
  • 查看当前数据库当中的数据表
show tables;
  • 删除一个数据库
drop database [数据库名称];

删除一个数据库的时候,一定要三思而行!!!

  • 数据库的备份
mysqldump -P[端口] -u [用户] -p[密码] -B [数据库的名称] > 数据库备份的文件路径;
尽量一个星期备份一次,防止有别人删库;
  • 表备份
   mysqldump -u [用户] -p[密码] 数据库名称 表名称1 表名称2 > 数据表备份存储的文件路径;
字符集和校验规则

字符集
查看系统默认字符集

show variables like 'character_set_database';

查看数据库支持的字符集

show charset;

设置数据库字符集

create database [库名称] charset=[字符集];
  • ASCII字符集:采用的是1个字节的低7位表示字符,高位始终为0;
  • LATIN1字符集:相对于ASCII字符集做了一个扩展,启用了最高位
  • GBK字符集:支持中文的,字符可以使用1个字节,也可以使用两个字节
  • UTF8字符集:Unicode字符集(可以表示很多语言)的一种支持了所有国家的文字字符,采用1-4字节来表示字符
    乱码的来源就来自于 前后端的字符集不匹配

【注意】:在设计数据库字符集之初,就需要考虑到 浏览器,mysql客户端(集成在服务端的代码中),mysql服务器编码格式设置成为一样,防止乱码的产生

校对规则:
查看系统默认校验规则

show variables like 'collation_database';

查看数据库支持的字符集校验规则

show collation;
  • 影响用户对数据查询的排序;有些校对规则,大小写敏感的:名称后缀为_cs;
  • 有些是不铭感的:名称后缀为_ci; 后缀为_bin为二进制,大小写敏感
  • mysql当中 都是大小写不敏感的;

校对规则的特征:

  • 不同的字符集有不同的校对规则
  • 每一个字符集有一个默认的校对规则
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值