一.数据库基础知识
什么是数据库
数据库是⼀种组织和存储数据的系统,它使数据的管理、检索和更新变得⾼效且⽅便。数据库的设计旨在⽀持⼤量数据的系统化存储和管理,确保数据的完整性、⼀致性和安全性。
二.数据库的分类
关系型数据库
表 → 库 →列 → 值
常⻅的关系型数据库:
MySQL:
- 简介:MySQL 是⼀种开源的关系型数据库管理系统,⼴泛⽤于 Web 应⽤程序。
- 特点:易于使⽤、性能⾼、⽀持多种存储引擎,如 InnoDB 和 MyISAM。
- 应⽤:WordPress、Facebook、Twitter 等⽹站都在使⽤ MySQL。
PostgreSQL:
- 简介:PostgreSQL 是⼀个功能强⼤、开源的对象关系型数据库系统。
- 特点:⽀持⾼级 SQL 功能,如复杂查询、外键、触发器、视图和事务;⽀持 JSON 数据类型。
- 应⽤:被⼴泛⽤于需要复杂查询和事务处理的场景,如⾦融、地理信息系统
(GIS)等。
SQLite:
- 简介:SQLite 是⼀种轻量级的嵌⼊式关系型数据库,整个数据库存储在⼀个⽂件中。
- 特点:零配置、占⽤资源少、适⽤于移动设备和嵌⼊式系统。
- 应⽤:⼴泛⽤于移动应⽤(如 iOS 和 Android 应⽤)、浏览器(如Firefox)和⼩型嵌⼊式系统。
Oracle Database:
- 简介:Oracle Database 是⼀个功能强⼤的企业级关系型数据库管理系统。
- 特点:⾼可⽤性、⾼性能、⽀持复杂的多层次架构和⼤规模数据处理。
- 应⽤:⼴泛⽤于⼤中型企业的核⼼业务系统,如⾦融、政府、制造业等。
Microsoft SQL Server:
- 简介:Microsoft SQL Server 是微软开发的⼀款关系型数据库管理系统。
- 特点:与微软的其他产品集成良好,⽀持商业智能(BI)、数据仓库、⾼可⽤性和灾难恢复。
- 应⽤:⼴泛⽤于企业级应⽤、数据分析和报表等场景。
MariaDB:
- 简介:MariaDB 是 MySQL 的⼀个分⽀,由 MySQL 的创始⼈主导开发,作为 MySQL 的增强版。
- 特点:保持与 MySQL 的兼容性,同时增加了许多新特性和存储引擎。
- 应⽤:适⽤于各种 Web 应⽤和企业级应⽤,许多 MySQL ⽤户已转向
MariaDB。
⾮关系型数据库
MongoDB:
- 类型:⽂档数据库
- 特点:使⽤类似 JSON 的⽂档(BSON)来存储数据,灵活的模式设计,⽀持强⼤的查询语⾔和索引。
- 应⽤:适⽤于内容管理系统、实时分析、⽤户数据存储等。
Redis:
- 类型:键-值数据库
- 特点:基于内存的数据存储,⽀持持久化,⾼性能,⽀持丰富的数据结构(如字符串、列表、集合、有序集合、哈希)。
- 应⽤:适⽤于缓存、会话存储、实时分析、计数器等。
Cassandra:
- 类型:列族存储数据库
- 特点:分布式和⾼度可扩展,⽀持多数据中⼼复制,强⼤的写⼊性能,去中⼼化的架构。
- 应⽤:适⽤于⼤规模分布式数据存储、⽇志管理、物联⽹(IoT)应⽤等。
树状型数据库(键值数据库) → redis
三.mysql 数据库的使用
连接 mysql 数据库
1.通过命令⾏直接进⾏连接
mysql -h 主机名 -u ⽤户名 -p
参数说明:
-h : 指定客户端所要登录的 MySQL 主机名, 登录本机(localhost 或 127.0.0.1)该参数可以省略;
-u : 登录的⽤户名;
-p : 告诉服务器将会使⽤⼀个密码来登录, 如果所要登录的⽤户名密码为空, 可以忽略此选项
2.通过 navicat 数据库管理⼯具进⾏连接
四.mysql 语句
创建数据库
CREATE DATABASE 数据库名;
使⽤ PHP 脚本创建数据库
PHP 使⽤ mysqli_query 函数来创建或者删除 MySQL 数据库。该函数有两个参数,在执⾏成功时返回 TRUE,否则返回 FALSE。
语法:
mysqli_query(connection,query,resultmode);
参数 | 描述 |
---|---|
connection | 必需。规定要使⽤的 MySQL 连接。 |
query | 必需,规定查询字符串。 |
以下实例演示了使⽤ PHP 来创建⼀个数据库:
<?php
$dbhost = 'localhost'; // mysql服务器主机地址
$dbuser = 'root'; // mysql⽤户名
$dbpass = '123456'; // mysql⽤户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('连接错误: ' . mysqli_error($conn));
}
echo '连接成功<br />';
$sql = 'CREATE DATABASE study';
$retval = mysqli_query($conn,$sql );
if(! $retval )
{
die('创建数据库失败: ' . mysqli_error($conn));
}
echo "数据库 study 创建成功\n";
mysqli_close($conn);
?>
删除数据库
DROP DATABASE <database_name>;
使⽤ PHP 脚本删除数据库
PHP 使⽤ mysqli_query 函数来创建或者删除 MySQL 数据库。该函数有两个参数,在执⾏成功时返回 TRUE,否则返回 FALSE。
语法:
mysqli_query(connection,query,resultmode);
参数 | 描述 |
---|---|
connection | 必需。规定要使⽤的 MySQL 连接。 |
query | 必需,规定查询字符串。 |
resultmode | 可选。⼀个常量。可以是下列值中的任意⼀个:1.MYSQLI_USE_RESULT(如果需要检索⼤量数据,请使⽤这个)2. MYSQLI_STORE_RESULT(默认) |
以下实例演示了使⽤ PHP mysqli_query 函数来删除数据库:
<?php
$dbhost = 'localhost'; // mysql服务器主机地址
$dbuser = 'root'; // mysql⽤户名
$dbpass = '123456'; // mysql⽤户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('连接失败: ' . mysqli_error($conn));
}
echo '连接成功<br />';
$sql = "DROP TABLE studymysql";
mysqli_select_db( $conn, 'study' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
die('数据表删除失败: ' . mysqli_error($conn));
}
echo "数据表删除成功\n";
mysqli_close($conn);
?>
选择数据库
USE database_name;
使⽤ PHP 脚本选择 MySQL 数据库
PHP 提供了函数 mysqli_select_db 来选取⼀个数据库。函数在执⾏成功后返回TRUE ,否则返回 FALSE
语法:
参数 | 描述 |
---|---|
connection | 必需。规定要使⽤的 MySQL 连接。 |
dbname | 必需,规定要使⽤的默认数据库。 |
创建数据表
CREATE TABLE table_name ( column1 datatype, column2 datatype, ... );
//解释
实例解析:
- `id`: ⽤户 id,整数类型,⾃增⻓,作为主键。
- `username`: ⽤户名,变⻓字符串,不允许为空。
- `email`: ⽤户邮箱,变⻓字符串,不允许为空。
- `birthdate`: ⽤户的⽣⽇,⽇期类型。
- `is_active`: ⽤户是否已经激活,布尔类型,默认值为 true。
使⽤ PHP 脚本创建数据表
你可以使⽤ PHP 的 mysqli_query() 函数来创建已存在数据库的数据表。该函数有两个参数,在执⾏成功时返回 TRUE,否则返回 FALSE。
语法:
mysqli_query(connection,query,resultmode);
参数 | 描述 |
---|---|
connection | 必需。规定要使⽤的 MySQL 连接。 |
query | 必需,规定查询字符串。 |
resultmode | 可选。⼀个常量。可以是下列值中的任意⼀个:1.MYSQLI_USE_RESULT(如果需要检索⼤量数据,请使⽤这个)2. MYSQLI_STORE_RESULT(默认) |
插⼊数据
INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);
查询数据
SELECT column1, column2, ... FROM table_name [WHERE condition] [ORDER BY column_name [ASC | DESC]] [LIMIT number];
修改数据
update table_name set 字段=值 where 条件;
删除数据
delete from table_name where 条件;