数据库
数据库就是用来存储数据的一种特殊文件。
数据库类别
数据库主要分为两种:
关系型数据库RDBMS
非关系型数据库NoSQL
关系型数据库的主要产品:
oracle:在以前的大型项目中使用,银行,电信等项目
mysql:web时代使用最广泛的关系型数据库
ms sql server:在微软的项目中使用
sqlite:轻量级数据库,主要应用在移动平台
查看数据库排名:https://db-engines.com/en/ranking
关系型数据库解释
关系型数据库是一种基于关系模型的数据库系统,它使用表格(也称为关系)来组织和存储数据。这种数据库管理系统(DBMS)是建立在关系型代数和关系操作理论之上的。
以下是关系型数据库的几个核心概念:
表(Table):关系型数据库中的数据以表的形式进行组织。表由行和列组成,每行表示一个记录,每列表示一个字段或属性。表中的记录是无序的,但通过主键可以唯一标识每个记录。
主键(Primary Key):主键是表中用于唯一标识每个记录的一列或一组列。它的值必须是唯一的,并且不能为空。主键用于在表中进行数据的唯一性约束和关联操作。
外键(Foreign Key):外键是一个表中的字段,它引用了另一个表的主键。外键用于建立表与表之间的关联关系。通过外键,可以在多个表之间进行数据的关联和连接操作。
关系(Relationship):关系是指不同表之间的联系或关联。通过外键,可以在关系型数据库中建立表与表之间的关系,实现数据的一致性和完整性。
查询语言:关系型数据库使用结构化查询语言(SQL)进行数据的操作和检索。SQL 提供了一组丰富的命令和语法,用于创建表、插入数据、更新数据、删除数据以及查询数据。
关系型数据库的优点包括数据结构清晰、支持事务处理、具备强大的数据完整性和安全性等。常见的关系型数据库软件包括Oracle、MySQL、Microsoft SQL Server和PostgreSQL等。
然而,对于某些特定的应用场景,关系型数据库也存在一些限制,比如无法很好地处理大规模数据集和高并发访问。为了应对这些挑战,出现了一些非关系型数据库(NoSQL),如键值存储数据库、文档数据库和列族数据库等。这些数据库系统提供了不同的数据模型和存储方式,以满足各种不同的需求。
SQL
SQL是结构化查询语言,是一种用来操作RDBMS的数据库语言,当前关系型数据库都支持使用SQL语言进行操作,也就是说可以通过 SQL 操作 oracle,sql server,mysql,sqlite 等等所有的关系型的数据库
SQL语句主要分类
DQL:数据查询语言,用于对数据进行查询,如select
DML:数据操作语言,对数据进行增加、修改、删除,如insert、udpate、delete
TPL:事务处理语言,对事务进行处理,包括begin transaction、commit、rollback
DCL:数据控制语言,进行授权与权限回收,如grant、revoke
DDL:数据定义语言,进行数据库、表的管理等,如create、drop
CCL:指针控制语言,通过控制指针完成表的操作,如declare cursor
服务器端安装
sudo apt-get install mysql-server
启动服务
sudo service mysql start
查看进程中是否存在mysql服务
ps ajx|grep mysql
停止服务
sudo service mysql stop
重启服务
sudo service mysql restart
配置文件
“/etc/mysql/mysql.conf.d”目录下的“mysqld.cnf”文件
主要配置项如下:
bind-address表示服务器绑定的ip,默认为127.0.0.1
port表示端口,默认为3306
datadir表示数据库目录,默认为/var/lib/mysql
general_log_file表示普通日志,默认为/var/log/mysql/mysql.log
log_error表示错误日志,默认为/var/log/mysql/error.log
命令行客户端安装和MySQL连接
sudo apt-get install mysql-client
sudo mysql
退出
quit或者exit
一些细节
数据库server端安装好之后,我们可以通过sudo mysql
命令进入数据库,但是 是使用sudo命令以root身份进入MySQL数据库的,可能会对系统安全造成风险。所以最好是使用具有适当权限的MySQL用户来进行数据库操作
MySQL中创建一个新用户并且给访问权限
1,使用sudo或root权限登录到MySQL命令行界面:
sudo mysql
2,查看我的MySQL有哪些用户以及拥有的权限
SELECT user, host FROM mysql.user;
3,查询某个特定用户具有哪些权限
SHOW GRANTS FOR 'username'@'host';
4,创建一个新用户,使用以下命令:
CREATE USER '用户名'@'localhost' IDENTIFIED BY '密码';
请将用户名替换为您想要创建的用户名,并将密码替换为您想要设置的密码。'localhost'表示只能在本地访问,如果想允许从远程访问,可以将'localhost'替换为'%'.
5,授予新用户对特定数据库的权限,使用以下命令:
GRANT 权限 ON 数据库名.* TO '用户名'@'localhost';
请将权限替换为您想要授予的权限(例如SELECT、INSERT、UPDATE等),如果是ALL代表授予所有权限。
将数据库名替换为您要授权的数据库的名称,如果是*,代表授权所有数据库。
用户名替换为您刚刚创建的用户名。
6,刷新MySQL权限使更改生效:
FLUSH PRIVILEGES;
完成以上步骤后,您将成功创建一个新用户并为其授予相应的数据库权限。该用户现在可以使用指定的用户名和密码访问MySQL数据库。
7,要修改MySQL数据库中用户的密码,你可以使用以下SQL语句:
ALTER USER 'username'@'host' IDENTIFIED BY 'new_password';
一切准备就绪,接下来就开始正式的数据库操作吧!