初识MySQL

    xiaoxiao2023-11-08  150

    初识MySQL

    主流的数据库和数据库分类

    数据库概念

    **数据库:**按照数据结构来组织、存储和管理数据的一种建立在计算机存储设备上的仓库。

    数据库的优势:

    可以持久化存储大量的数据、方便我们进行检索可以保证数据的安全和数据的一致性(事务…)可以很轻松的通过数据库来提取出新的有效信息(计算平均分、统计人数)

    数据库的分类

    RDB(Relational DataBase)关系型数据库

    ​ 例如:在关系型数据库中 有一张存储了学生数据的表格 还有一张存储了学生年级的表格

    学生姓名 性别 年级

    没头脑 男 1

    不高兴 男 2

    年级编号 年级名称 年级…

    1 大学一年级

    2 大学二年级

    性能方面 关系型数据库受限于技术实现,所以有瓶颈。

    但是它在安全方面比较可靠。(事务支持好)

    NoSQL(Not only SQL)不仅仅是SQL 非关系型数据库

    ​ 文档型数据库

    ​ 键值对数据库 key value

    ​ 图形数据库

    ​ …

    这种概念正式兴起于web2.0时代 2006-2009… 它的性能非常优异 。

    但是它的安全方面要比较差。(事务支持不太好)

    RDB(主) + NoSQL(副)

    主流数据库

    RDB:

    ​ MySQL Oracle SQLServer PostgreSQL MariaDB SQLlite…

    MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。

    MySQL 是开源的,所以你不需要支付额外的费用。小巧、功能齐全使用便捷可运行于Windows或Linux操作系统可适用于中小型甚至大型网站的应用

    NoSQL:

    ​ Redis Memcached MongoDB HBase Solr ElasticSearch…

    RDBMS 术语

    ​ 数据表是数据库的基本单位

    数据库: 数据库是一些关联表的集合。数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。列: 一列(数据元素) 包含了相同的数据, 例如邮政编码的数据。**行:**一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。**外键:**外键用于关联两个表。复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。**索引:**使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。

    SQL介绍

    **SQL:(**Structured Query Language)结构化查询语言 它也是一种规范、标准。

    关系型数据库都是采用SQL来进行操作的,不同的数据库对SQL进行了一些改造,但是类似。CRUD

    DDL:数据定义语言(Data Definition Language) 创建Create 删除Drop 修改Alter table…

    DML:数据操作语言(Data Manipulation Language) CUD 增Insert 删Delete 改Update

    DQL:数据查询语言(Data Query Language) Select 查询

    DCL:数据控制语言(Data Control Language) Grant 、Roll back 、 commit…

    数据表操作的语句/命令

    数据库相关操作命令

    -- 创建数据库命令 create database 数据库名; -- 删除数据库命令 drop database 数据库名; -- 查看数据库 show databases; -- 切换数据库 use 数据库名;

    创建数据库表

    create table 表名( 列名1 数据类型(数据长度) 列约束/属性, 列名2 数据类型 列约束.... ); -- 创建用户信息表 如果有敏感字/关键字可以添加反引号`(重音符号)来解决。 create table `user`( id int, username varchar(25) );

    5.2 查看数据库中的数据表

    -- 查看数据库的所有表 show tables; -- 查看表定义/结构 desc/describe 表名;

    5.3 删除数据库

    -- 删除数据库表 drop table 表名;

    常见的数据列属性和类型

    列属性

    not null 不允许字段为空 unique 字段必须唯一 unsigned 无符号 无负号 不能与unique关键字同时存在 zerofill 以0补全某个字段类型的剩余长度 不能与unsigned同时使用 default 默认值 comment 注释 primary key 主键:用来唯一标识一条数据的列就是主键 它的默认效果为 非空not null且唯-unique 它还能提升查询速度 auto_increment 自动增长 用于主键列的值自增

    6.2 列类型

    数值:可写可不写 tinyint(1字节整型)smallint(2字节整型) mediumint(3字节整型) [int](整数型) bigint(8字节整型) float(4字节浮点数) double(双精度浮点数,8字节) 字符串:字符串必须写长度 varchar (可变字符串 最大长度255 0-65535 字节) char(0-255字节 不可变字符串) 假设设置了varchar长度为10 char长度也为10 当真实存了1个字符 varchar占用1个 char占用10个(效率高) tinytext(短文本 0-255字节) text (长文本 0-65 535字节) longtext(极长文本, 0-4 294 967 295字节) blob(二进制形式 长文本数据,0-65 535字节) 日期类型:日期类型不能写长度 date(日期值 YYYY-MM-DD) time(时间值 HH:MM:SS) year(年份值 YYYY) datetime(混合日期和时间值 YYYY-MM-DD HH:MM:SS) timestamp(混合日期和时间值,时间戳 YYYYMMDD HHMMSS)

    char 和 varchar:

    char(n) 若存入字符数小于n,则以空格补于其后,查询之时再将空格去掉。所以 char 类型存储的字符串末尾不能有空格,varchar 不限于此。char(n) 固定长度,char(4) 不管是存入几个字符,都将占用 4 个字节,varchar 是存入的实际字符数 +1 个字节(n<=255)或2个字节(n>255),所以 varchar(4),存入 3 个字符将占用 4 个字节。char 类型的字符串检索速度要比 varchar 类型的快。

    varchar 和 text:

    varchar 可指定 n,text 不能指定,内部存储 varchar 是存入的实际字符数 +1 个字节(n<=255)或 2 个字节(n>255),text 是实际字符数 +2 个字节。text 类型不能有默认值。varchar 可直接创建索引,text 创建索引要指定前多少个字符。varchar 查询速度快于 text, 在都创建索引的情况下,text 的索引似乎不起作用。
    最新回复(0)