MySQL —— 数据库浅学 | 青训营笔记

154 阅读6分钟

这是我参与「第四届青训营 」笔记创作活动的的第 3 天!

数据库简介


数据库与数据库管理系统

  • 数据库(DB——DataBase)是一个按数据结构来存储和管理数据的计算机软件系统。数据库的概念实际包括两层意思:
    • 数据库是一个实体,它是能够合理保管数据的“仓库”,用户在该“仓库”中存放要管理的事务数据,“数据”和“库”两个概念结合成为数据库。
    • 数据库是数据管理的新方法和技术,它能更合适的组织数据、更方便的维护数据、更严密的控制数据和更有效的利用数据。
  • 数据库管理系统(DBMS——Data Management System)是数据库系统的核心组成部分,主要完成对数据库的操作与管理功能,实现数据库对象的创建、数据库存储数据的查询、添加、修改与删除操作和数据库的用户管理、权限管理等。它的安全直接关系到整个数据库系统的安全,其防护手段主要有:
    • 使用正版数据库管理系统并及时安装相关补丁
    • 做好用户账户管理,禁用默认超级管理员账户或者为超级管理员账户设置复杂密码;为应用程序分别分配专用账户进行访问;设置用户登录时间及登录失败次数限制, 防止暴力破解用户密码。
    • 分配用户访问权限时,坚持最小权限分配原则,并限制用户只能访问特定数据库,不能同时访问其他数据库。
    • 修改数据库默认访问端口,使用防火墙屏蔽掉对 外开放的其他端口,禁止一切外部的端口探测行为。
    • 对数据库内存储的重要数据、敏感数据进行加密存储,防止数据库备份或数据文件被盗而造成数据泄露。
    • 设置好数据库的备份策略,保证数据库被破坏后能迅速恢复。
    • 对数据库内的系统存储过程进行合理管理,禁用掉不必要的存储过程,防止利用存储过程进行数据库探测与攻击。
    • 启用数据库审核功能,对数据库进行全面的事件跟踪和日志记录。

数据库分类

  • 关系型数据库
    • 关系型数据库,存储的格式可以直观地反映实体间的关系。关系型数据库和常见的表格比较相似,关系型数据库中表与表之间是有很多复杂的关联关系的。 常见的关系型数据库有MysqlSqlServer等。虽然关系型数据库有很多,但是大多数都遵循SQL(结构化查询语言,Structured Query Language)标准。 常见的操作有查询,新增,更新,删除,求和,排序等。
    • SQL(Structure Query Language——结构化查询语言)
      • 查询语句:SELECT param FROM table WHERE condition 该语句可以理解为从 table 中查询出满足 condition 条件的字段 param。
      • 新增语句:INSERT INTO table (param1,param2,param3) VALUES (value1,value2,value3) 该语句可以理解为向table中的param1,param2,param3字段中分别插入value1,value2,value3。
      • 更新语句:UPDATE table SET param=new_value WHERE condition 该语句可以理解为将满足condition条件的字段param更新为 new_value 值。
      • 删除语句:DELETE FROM table WHERE condition 该语句可以理解为将满足condition条件的数据全部删除。
      • 去重查询:SELECT DISTINCT param FROM table WHERE condition 该语句可以理解为从表table中查询出满足条件condition的字段param,但是param中重复的值只能出现一次。
      • 排序查询:SELECT param FROM table WHERE condition ORDER BY param1该语句可以理解为从表table 中查询出满足condition条件的param,并且要按照param1升序的顺序进行排序。
      • 总体来说, 数据库的SELECT,INSERT,UPDATE,DELETE对应了我们常用的增删改查四种操作
  • 非关系型数据库
    • 暂时不做深入

关系型数据库(MySQL版本)的学习


1、利用终端操作数据库

(数据库的下载与安装不做解析)

  • 数据库服务器的登陆
    • 首先进入DOS命令行窗口,输入(mysql -uroot -pPASSWORD) image.png
  • 全部数据库的查询
    • SHOW DATABASES;
    • image.png
  • 数据的位置
    • image.png
    • image.png
  • 选中数据库进行操作
    • USE sqlstudy;
    • image.png
  • 选中数据库中的全部数据表的查看
    • SHOW TABLES;
    • image.png
  • 数据库服务器的退出
    • EXIT;
    • image.png

2、数据库/表的创建与删除

(1)数据库的创建与删除

  • 数据库的创建
    • CREATE DATABASE table_name;
    • image.png
  • 数据库的删除
    • DROP DATABASE database_name;
    • image.png

(2)数据表的创建与删除

  • 数据表的创建(括号内元素即字段和数据类型)
    • CREATE TABLE test_01(name VARCHAR(20), sex CHAR(1));
    • image.png
  • 数据表字段的查看
    • DESC table_name;
    • image.png
    • DESCRIBE table_name;
    • image.png
  • 数据表的删除
    • DROP TABLE table_name;
    • image.png

3、数据类型与类型选择

(1)MySQL常用数据类型

  • 数值类型 image.png
    • MySQL 支持所有标准 SQL 数值数据类型。
    • 这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL 和 NUMERIC),以及近似数值数据类型(FLOAT、REAL 和 DOUBLE PRECISION)。
    • 关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。
    • BIT数据类型保存位字段值,并且支持 MyISAM、MEMORY、InnoDB 和 BDB表。
    • 作为 SQL 标准的扩展,MySQL 也支持整数类型 TINYINT、MEDIUMINT 和 BIGINT。
  • 日期和时间类型 image.png
    • 表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。
    • 每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。
    • TIMESTAMP类型有专有的自动更新特性。
  • 字符串类型 image.png
    • char(n) 和 varchar(n) 中括号中 n 代表字符的个数,并不代表字节个数,比如 CHAR(30) 就可以存储 30 个字符。
    • CHAR 和 VARCHAR 类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。
    • BINARY 和 VARBINARY 类似于 CHAR 和 VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值值。
    • BLOB 是一个二进制大对象,可以容纳可变数量的数据。有 4 种 BLOB 类型:TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。它们区别在于可容纳存储范围不同。
    • 有 4 种 TEXT 类型:TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT。对应的这 4 种 BLOB 类型,可存储的最大长度不同,可根据实际情况选择。

(2)数据类型的选择

  • 数值和字符串按照大小选择
  • 日期和时间按照格式选择

4、数据表元素的增删改查操作

(1)INSERT——数据的增加

  • INSERT INTO table_name VALUES(' ', " ", ...);
  • image.png
  • 查看效果(表中数据)
    • SELECT * FROM table_name;
    • image.png

(2)DELETE——数据的删除

  • DELETE FROM table_name WHERE 选择条件;
    • image.png
  • 查看效果(表中数据)
    • SELECT * FROM table_name;
    • image.png

(3)UPDATE——数据的修改

  • 数据修改前
    • image.png
  • UPDATE table_name SET 字段 = 数据 WHERE 选择条件;
    • image.png
  • 数据修改后
    • SELECT * FROM table_name;
    • image.png

(4)SELECT——数据的查询

  • SELECT 字段 FROM table_name;
    • 查看全部
      • SELECT * FROM table_name;
      • image.png
    • 查看部分
      • SELECT * FROM table_name;
      • image.png

参考:

1、数据库简介:baike.baidu.com/item/%E6%95…

2、数据库基础学习: