MySQL相关知识

一、什么是数据库?

数据库(Database,简称DB)概念: 长期存放在计算机内,有组织、可共享的大量数据的集合,是一个 数据“仓库”。

二、数据库的特点: 

1.结构化:数据在数据库中的存储可以依靠二维表结构来逻辑的存储数据,可以参考数据原有的依赖关系和结构关系去存储数据。

2.共享性:多个用户可以共同分享计算机数据 库中的数据资源,同一数据可以同 时被多人使用,从而实现了数据的 高效共享性。

3.独立性:存储在数据库的数据和应用程序之 间相互独立, 互不影响。数据在磁盘 上怎样存储由数据库管理而不依赖 于应用程序,这样当数据的物理存 储改变了,应用程序不用改变。

4.安全性:数据库在安全性的控制上也有很多 措施,比如访问数据库时对用户的 口令,用户的权限进行限制,再比 如对数据的存储进行限制。

三、数据库的作用:

       数据库的作用是: 存放、管理数据

四、数据库的分类

        数据库分为 ①关系型数据据②NoSQL数据库

五、常见的数据库有哪些?

关系型数据库:MySQL、ORACLE

NoSQL数据库:redis、mogongDB

五、为什么使用MySQL?

MySQL数据库的特点:①操作便捷、小巧但功能齐全②免费、开源的数据库③可运行于windows或linux系统。④操作方便,适合于中小型甚至大型网站应用

六、数据库结构

数据库(Database) 文件的形式存放在磁盘上,即 对应于一个或多个物理文件。
数据表(Table) 简称表,由一组数据记录组成, 数据库中的数据是以表为单位进 行组织的。一个表是一组相关的 按行排列的数据;每个表中都含 有相同类型的信息。

字段(Field)

也称域。表中的每一列称为一个 字段。每个字段都有相应的描述 信息。
记录(Record) 表中的每一行称为一个记录,它 由若干个字段组成。实体
索引(Index) 索引实际上是一种特殊类型的表, 其中含有关键字段的值和指向实 际记录位置的指针,可以提高访 问数据库的效率。
SQL语句 结构化查询语句命令,用来从一 个或多个表中获取一组指定的记 录,或者对某个表执行指定的操 作。

七、SQL语句分类

        SQL语句,即结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,是一 种数据库查询程序设计语言,用于存取数据以及查询更新管理关系数据库系统,同时也是数据库脚本文件的扩展名。

名词 解释 命令

DDL

(数据定义语言)

定义和管理数据对象, 如数据库,数据表等 CREATE、DROP、ALTER

DML

(数据操作语言)

用于操作数据库对象中所包含的数据 INSERT、UPDATE、DELETE

DQL

(数据查询语言)

用于查询数据库数据 SELECT

DCL

(数据控制语言)

用来管理数据库的语言,包括管理权 限及数据更改 GRANT、COMMIT、ROLLBACK

八、DDL语句操作数据库

创建数据库

CREATE DATABASE  [IF NOT EXISTS]  dbname

  • "[IF NOT EXISTS] " :内容可以省略
  • "dbname"  :需要创建的数据库名称
删除数据库

DROP DATEBASE [IF EXISTS] dbname

  • " [IF NOT EXISTS] " : 内容可以省略
  • "dbname"  :需要删除的数据库名称
查看数据库

SHOW DATABASES

  • 注意不要省略 “S
选择数据库

USE dbname

  • "dbname"  :需要创建的数据库名称

九、DDL创建数据表

语法:

        CREAT TABLE [ IF NOT EXISTS `表名`  (

                `字段名1`  字段类型 [ 属性 ] [ 索引 ] [ 注释],

                `字段名2`  字段类型 [ 属性 ] [ 索引 ] [ 注释],

                ... ...

                `字段名n`  字段类型 [ 属性 ] [ 索引 ] [ 注释]

[ 表类型 ] [ 表字符集 ];

  • “[]” 包含的内容可以省略;
  • “`” 当前符号为反引号,用于区别MySQL保留字与普通字符而引入的。

十、数据库表的字段类型 

        1.字符串类型
类型 说明 取值范围 存储需求
char[(M)] 固定长字符串,检索快但费空间, 0 <= M <= 255 M字符 char[(M)]
varchar[(M)] 可变字符串 0 <= M <= 65535 变长度 varchar[(M)]
tinytext 微型文本串 16777215长度+3个字节 tinytext
text 文本串(4个G左右) 4294967295长度+4个字节 text
        2.数值类型
类型 说明 取值范围 储存需求
tinyint 非常小的数据 有符值: -2 ^7 ~ 2^7-1,无符号值:0 ~ 28-1 1字节
smallint 较小的数据 有符值: -2 15 ~ 215 -1 ,无符号值: 0 ~ 216 -1 2字节
mediumint 中等大小的数据 有符值: -2 23 ~ 223 -1 ,无符号值: 0 ~ 224 -1 3字节
int 标准整数 有符值: -2^31 ~ 2^31-1,无符号值:0 ~ 2^32-1 4字节
bigint 较大的整数 有符值: -2^63 ~2^63-1,无符号值:0 ~2^64-1 8字节
float 单精度浮点数 ±1.1754351e -38 4字节
double 双精度浮点数 ±2.2250738585072014e -308 8字节
Decimal(钱) 字符串形式的浮点数 点数 decimal(m, d)  m个字节
        3.日期和时间类型
类型 说明 取值范围 储存需求
DATE YYYY-MM-DD,日期格式 1000-01-01~ 9999-12-31 DATE
TIME Hh:mm:ss ,时间格式 -838:59:59~838:59:59 TIME
DATETIME YY-MM-DD hh:mm:ss 1000-01-01 00:00:00 至 9999-12-31 23:59:59 DATETIME
TIMESTAMP YYYYMMDDhhmmss格式表示的时间戳 197010101000000 ~2037年 的某个时刻 TIMESTAMP
YEAR YYYY格式的年份值 1901~2155 YEAR

设置当前 创建时间,或者是更新时间时给TIMESTAMP或者DATETIME字段 设置 DEFAULT CURRENT_TIMESTAMP 添加当前默认时间 

 NULL类型:

  •  理解为“没有值”或“未知值”;
  •  不要用NULL进行算术运算,结果仍为NULL;
  •  MySQL中,0或NULL都意味着为假,1为真。

十一、数据库表的字段注释

 CREATE TABLE [ IF NOT EXISTS ] `表名` (

                 `字段名1` 字段类型 [ 属性 ] [ 索引 ] [注释] ,

                `字段名2` 字段类型 [ 属性 ] [ 索引 ] [注释] ,

                … …

                `字段名n` 字段类型 [ 属性 ] [ 索引 ] [注释]

) [ 表类型 ] [ 表字符集 ] ;

注释:可以给字段增加注释,即给字段增加描述,方便后续修改和维护字段。

十一、数据库表的字段注释

查询创建的数据库结构: 
        方式一:
                describe 表名
或 
                desc 表名 
        方式二: 
                show create table 表名 

十二、数据库存储引擎

查看当前数据库支持的存储引擎: show engines;

查询结果显示,MySQL 8支持9种存储引擎,分别为MEMORY、MRG_ MYISAMCSV FEDERATED PERFORMANCE_ SCHEMA MyISAMInnoDB 、BLACKHOLE 和ARCHIVE

  • Engine参数 表示存储引擎名称。
  • Support参 数表示MySQL数据库管理系统是否支持该存储引擎: YES表示支持,NO表示不支持。
  • DEFAULT表示系统默认支持的存储引擎。
  • Comment 参数表示对存储引擎的评论。
  • Transactions参数表示存储引擎是否支持事务: YES表示支持,NO表示不支持。
  • XA参数表示存储引擎所支持的分布式是否符合XA规范: YES表示支持,NO表示不支持。代表着该存储引擎是否支持分布式事务。
  • Savepoints参 数表示存储引擎是否支持事务处理的保存点: YES表示支持,NO表示不支持。也就是说,该存储引擎是否支持部分事务回滚。
     

十四、 数据库存储引擎-MyISAM 和InnoDB区别

对比项 MyISAM InnoDB
外键 不支持 支持
事务 不支持

支持

行表锁 表锁,即使操作一条记录也会锁住整个表,不适合高并发操作 行锁,操作时只锁某一行,不对其它行有 影响,适合高并发操作
缓存 只缓存索引,不缓存真实数据 不仅缓存索引还要缓存真实数据,对内存 要求较高,而且内存大小对性能有决定性 的影响
默认安装 Y
默认使用 N Y
关注点 性能:节省资源、消耗少、简单业务 事务:并发写,事务、更大资源

两种存储引擎各有特点,当然你也可以在MySQL中,针对不同的数据表,可以选择不同的存储引擎

十五、修改和删除数据表

修改表名 ALTER【ɔːltə(r)】 TABLE 旧表 名 RENAME AS 新表名
修改字段 ALTER TABLE 表名 MODIFY 【mɒdɪfaɪ】 字段名 列类型 [ 属性 ] ALTER TABLE 表名 CHANGE 旧字段 名 新字段名 列类型 [ 属性 ]
删除字段 ALTER TABLE 表名 DROP 字 段名
添加字段 ALTER TABLE 表名 ADD 字段 名 列类型 [ 属性 ]
删除表 DROP TABLE [ IF EXISTS ] 表名

后续更新中......

相关推荐

  1. MySql相关知识

    2024-07-19 16:02:02       35 阅读
  2. mysql相关知识

    2024-07-19 16:02:02       24 阅读
  3. mysql相关知识总结

    2024-07-19 16:02:02       30 阅读
  4. 学习mysql相关知识记录

    2024-07-19 16:02:02       30 阅读
  5. Mysql相关

    2024-07-19 16:02:02       42 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-19 16:02:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-19 16:02:02       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-19 16:02:02       58 阅读
  4. Python语言-面向对象

    2024-07-19 16:02:02       69 阅读

热门阅读

  1. spring boot 实现token验证登陆状态

    2024-07-19 16:02:02       22 阅读
  2. nginx的安装和使用

    2024-07-19 16:02:02       21 阅读
  3. 深入了解 GCC

    2024-07-19 16:02:02       21 阅读
  4. 【MyBatis】Mybatis中的动态SQL——bind标签

    2024-07-19 16:02:02       21 阅读
  5. GreenDao实现原理

    2024-07-19 16:02:02       20 阅读
  6. 分布式缓存设计:深入理解 Memcached 架构

    2024-07-19 16:02:02       22 阅读
  7. 项目相关方不配合,项目经理怎么办?

    2024-07-19 16:02:02       21 阅读
  8. oneos虚拟文件系统vfs源码分析

    2024-07-19 16:02:02       17 阅读
  9. 富格林:正规手段识破欺诈套路

    2024-07-19 16:02:02       18 阅读
  10. Redis生产问题

    2024-07-19 16:02:02       19 阅读
  11. Makefile: 解决.c文件依赖.h文件的问题

    2024-07-19 16:02:02       17 阅读
  12. chrome总是打开hao123

    2024-07-19 16:02:02       17 阅读