学习数据库的作用
什么是结构化语言?
雷蒙德·博伊斯(Raymond Boyce)和唐纳德·张伯林(Donald Chamberlin)在1970年代初期在IBM开发了SQL。 创建它是为了获取和修改数据库中保存的数据。最初,它被称为SEQUEL(结构化英语查询语言),但后来需要更改其名称,因为另一家企业声称该名称为商标。此后,SQL已成为ANSI(美国国家标准协会)和ISO(国际标准化组织)的正式标准。
- SQL是一种特殊的编程语言,被用来与数据库对接。
- 通过了解和分析在表中包含数据字段的数据库来工作。
- SQL是一个前端与后端数据库(服务器上的计算机和数据库)相关联的平台
学习SQL的优势
- 通用语言
- 涉及到许多学科,使用SQL时会促使你学习其他的编程语言,例如:c++,python,JavaScript,这些都对SQL有着重大作用。
- 增强自己作为一个开发者,程序员的专业素养。
- 易于学习和使用
- 一种开源语言,拥有庞大的社区团体。
- 比起其他语言(c++)更易于学习。
- 大量的流行数据库(如MySQL、MariaDB)都是开源的。
- 管理数百万行数据
- 几乎能处理所有大小的数据池。
- 能在大量数据上执行活动,而不崩溃。
数据库分类
关系型数据库(SQL):
- 以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。
- 常见的数据库:
- Oracle、DB2、Sybase、MS SQL Server、Informax、MySQL。
非关系型数据库(NoSQL --->Not Only SQL):
- 结构不固定,集合内数据字段可以不一样,自由度高,可以减少一些时间和空间的开销。
- 常见数据库:
- Redis、MongDB。
- 特征:
- 使用键值对存储数据。
- 分布式。
- 一般不支持ACID特性。
- 非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合。
- 优点:
- 无需经过sql层的解析,读写性能很高。
- 基于键值对,数据没有耦合性,容易扩展。
- 存储数据的格式:nosql的存储格式是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,而关系型数据库则只支持基础类型。
- 缺点:
- 不提供sql支持,学习和使用成本较高。
- 无事务处理,附加功能bi和报表等支持也不好。
DBMS(数据库管理系统)
- 数据库的管理软件,科学有效的管理我们的数据,维护和获取数据。
- 特点:
- 控制数据冗余。
- 保证数据一致性。
- 提高数据共享。
MySql介绍
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
- MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
- MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。
- MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站或者大小型的网站的开发都选择 MySQL 作为网站数据库。
- 支持集群处理。
MySQL版本选择:5.7的版本,最稳定。不建议下载exe类型的MySQL,尽量使用zip类型
MySQL安装
-
官网下载5.7的MySQL压缩包
-
随便找一个盘解压压缩包,并在文件夹里创建一个名为my.ini的的文件
-
在my.ini输入以下代码
[mysqld] #文件主目录 basedir=D:\Exploit\mysql-5.7.33\ #文件主目录下的data目录,注意data目录本身不会存在,等到初始化数据库时,data目录会自动生成 datadir=D:\Exploit\mysql-5.7.33\data\ port=3306 skip-grant-tables
-
配置环境变量配置
D:\Exploit\mysql-5.7.33\bin
到系统变量的path里。 -
打开cmd管理员终端,
必须是在管理员权限下打开,否则下面提到的代码效果不会实现
-
使用dos命令在终端下将路径移动到MySQL主目录下,例如:cd D:\Exploit\mysql-5.7.33
-
输入
mysqld -install
安装mysql -
继续输入
mysqld --initialize-insecure --user=mysql
初始化数据文件 -
启动mysql,
net start mysql
,在输入mysql -u root -p
,继续输入update mysql.user set authentication_string=password('新密码') where user='用户名' and Host ='localhost';
设置新密码。 -
输入
flush privileges;
命令刷新权限。 -
删除my.ini文件下的skip-grant-tables或者注释(#)
-
重启mysql,输入
net stop mysql
停止,在输入net start mysql
开启。 -
重新登录连接数据库
mysql -u root -p
-p后面没有空格,出现下面类似的画面即成功了
MySQL会出现的安装问题:
- 缺少dll文件
- 输入错误的MySQL指令
- 指令无误,但运行MySQL指令的路径错误。区分MySQL命令行(mysql>)和windows命令行
MySQL可视化软件SQLyog
登录界面: 密码是MySQL设置的密码,用户名与MySQL一样,端口默认3306
主要功能区:
SQl语言
常见语法:
-- 为单行注释
/**/ --为多行注释
mysql -u root -p --连接数据库
update mysql.user set authentication_string=password('新密码') where user='用户名' and Host ='localhost'; --修改用户密码
flush privileges; --刷新权限
show databases; --查看所有的数据库
use dormitory --切换数据库名
show tables; --查看数据库中的所有表
describe student; --查看数据库中所有表的信息
create databases school; -- 创建一个数据库
DDL(Data Definition Language 数据定义语言): 是用于描述数据库中要存储的现实世界实体的语言。
DML(Data Manipulation Language 数据操控语言): 用于数据库操作,对数据库其中的对象和数据运行访问工作的编程语。
句,通常是数据库专用编程语言之中的一个子集。
DQL(Data QueryLanguage 数据查询语言): 基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块:
SELECT <字段名表>
FROM <表或视图名>
WHERE <查询条件>
DCL(Data Control Language 数据控制语句): 一种可对数据访问权进行控制的指令,它可以控制特定用户账户对数据表、查看表、存储程序、用户自定义函数等数据库对象的控制权。
评论区