这是我参与「第四届青训营 」笔记创作活动的的第 3 天!
数据库简介
数据库与数据库管理系统
- 数据库(DB——DataBase)是一个按数据结构来存储和管理数据的计算机软件系统。数据库的概念实际包括两层意思:
- 数据库是一个实体,它是能够合理保管数据的“仓库”,用户在该“仓库”中存放要管理的事务数据,“数据”和“库”两个概念结合成为数据库。
- 数据库是数据管理的新方法和技术,它能更合适的组织数据、更方便的维护数据、更严密的控制数据和更有效的利用数据。
- 数据库管理系统(DBMS——Data Management System)是数据库系统的核心组成部分,主要完成对数据库的操作与管理功能,实现数据库对象的创建、数据库存储数据的查询、添加、修改与删除操作和数据库的用户管理、权限管理等。它的安全直接关系到整个数据库系统的安全,其防护手段主要有:
- 使用正版数据库管理系统并及时安装相关补丁。
- 做好用户账户管理,禁用默认超级管理员账户或者为超级管理员账户设置复杂密码;为应用程序分别分配专用账户进行访问;设置用户登录时间及登录失败次数限制, 防止暴力破解用户密码。
- 分配用户访问权限时,坚持最小权限分配原则,并限制用户只能访问特定数据库,不能同时访问其他数据库。
- 修改数据库默认访问端口,使用防火墙屏蔽掉对 外开放的其他端口,禁止一切外部的端口探测行为。
- 对数据库内存储的重要数据、敏感数据进行加密存储,防止数据库备份或数据文件被盗而造成数据泄露。
- 设置好数据库的备份策略,保证数据库被破坏后能迅速恢复。
- 对数据库内的系统存储过程进行合理管理,禁用掉不必要的存储过程,防止利用存储过程进行数据库探测与攻击。
- 启用数据库审核功能,对数据库进行全面的事件跟踪和日志记录。
数据库分类
- 关系型数据库
- 关系型数据库,存储的格式可以直观地反映实体间的关系。关系型数据库和常见的表格比较相似,关系型数据库中表与表之间是有很多复杂的关联关系的。 常见的关系型数据库有Mysql,SqlServer等。虽然关系型数据库有很多,但是大多数都遵循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)
- 首先进入DOS命令行窗口,输入(mysql -uroot -pPASSWORD)
- 全部数据库的查询
- SHOW DATABASES;
- 数据的位置
- 选中数据库进行操作
- USE sqlstudy;
- 选中数据库中的全部数据表的查看
- SHOW TABLES;
- 数据库服务器的退出
- EXIT;
2、数据库/表的创建与删除
(1)数据库的创建与删除
- 数据库的创建
- CREATE DATABASE table_name;
- 数据库的删除
- DROP DATABASE database_name;
(2)数据表的创建与删除
- 数据表的创建(括号内元素即字段和数据类型)
- CREATE TABLE test_01(name VARCHAR(20), sex CHAR(1));
- 数据表字段的查看
- DESC table_name;
- DESCRIBE table_name;
- 数据表的删除
- DROP TABLE table_name;
3、数据类型与类型选择
(1)MySQL常用数据类型
- 数值类型
- MySQL 支持所有标准 SQL 数值数据类型。
- 这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL 和 NUMERIC),以及近似数值数据类型(FLOAT、REAL 和 DOUBLE PRECISION)。
- 关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。
- BIT数据类型保存位字段值,并且支持 MyISAM、MEMORY、InnoDB 和 BDB表。
- 作为 SQL 标准的扩展,MySQL 也支持整数类型 TINYINT、MEDIUMINT 和 BIGINT。
- 日期和时间类型
- 表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。
- 每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。
- TIMESTAMP类型有专有的自动更新特性。
- 字符串类型
- 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(' ', " ", ...);
- 查看效果(表中数据)
- SELECT * FROM table_name;
(2)DELETE——数据的删除
- DELETE FROM table_name WHERE 选择条件;
- 查看效果(表中数据)
- SELECT * FROM table_name;
(3)UPDATE——数据的修改
- 数据修改前
- UPDATE table_name SET 字段 = 数据 WHERE 选择条件;
- 数据修改后
- SELECT * FROM table_name;
(4)SELECT——数据的查询
- SELECT 字段 FROM table_name;
- 查看全部
- SELECT * FROM table_name;
- 查看部分
- SELECT * FROM table_name;
- 查看全部
参考:
1、数据库简介:baike.baidu.com/item/%E6%95…
2、数据库基础学习: