一、关系型数据库
关系型数据库是目前使用最为广泛的数据库,其主要特点是采用表格的方式来存储和管理数据,其中每个表格都包括多个行和多个列。常见的关系型数据库包括:
1、MySQL
MySQL是一种免费开源的关系型数据库管理系统,被广泛应用于大中型网站和应用软件。
//MySQL示例代码
//连接数据库
$conn = mysqli_connect("localhost","my_user","my_password","my_db");
//查询数据
$result = mysqli_query($conn,"SELECT * FROM users");
while($row = mysqli_fetch_assoc($result)) {
echo "Name: " . $row["name"]. " - Age: " . $row["age"]. "<br>";
}
2、Oracle
Oracle是全球最大的关系型数据库管理系统供应商之一,其产品广泛应用于各个行业。
//Oracle示例代码
//连接数据库
$conn = oci_connect('username', 'password', 'hostname.com/orcl');
//查询数据
$sql = "SELECT * FROM users";
$stid = oci_parse($conn, $sql);
oci_execute($stid);
while (($row = oci_fetch_array($stid, OCI_ASSOC))) {
echo "Name: " . $row['NAME'] . " - Age: " . $row['AGE'] . "<br>";
}
3、SQL Server
SQL Server是Microsoft推出的一款企业级关系型数据库管理系统,主要应用于数据中心、商务智能等领域。
//SQL Server示例代码
//连接数据库
$serverName = "localhost";
$connectionOptions = array(
"Database" => "myDatabase",
"Uid" => "myUsername",
"PWD" => "myPassword"
);
$conn = sqlsrv_connect($serverName, $connectionOptions);
//查询数据
$sql = "SELECT * FROM users";
$stmt = sqlsrv_query( $conn, $sql );
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
echo "Name: " . $row['name'] . " - Age: " . $row['age'] . "<br>";
}
二、非关系型数据库
非关系型数据库是一种不采用表格的方式来存储和管理数据的数据库,一般适用于海量数据的存储和查询。常见的非关系型数据库包括:
1、MongoDB
MongoDB是一种基于分布式文件存储的非关系型数据库,广泛应用于Web应用程序的开发和数据库管理。
//MongoDB示例代码
//连接数据库
$m = new MongoClient();
$db = $m->myDatabase;
//查询数据
$collection = $db->users;
$cursor = $collection->find();
foreach ($cursor as $document) {
echo "Name: " . $document["name"] . " - Age: " . $document["age"] . "<br>";
}
2、Redis
Redis是一种高性能的键值对存储系统,常用于缓存、消息队列、实时数据处理等方面。
//Redis示例代码
//连接数据库
$redis = new Redis();
$redis->pconnect('localhost');
//查询数据
$result = $redis->hGetAll("users");
foreach ($result as $key => $value) {
echo "Name: " . $key . " - Age: " . $value . "<br>";
}
3、Cassandra
Cassandra是一种分布式的NoSQL数据库管理系统,可以处理海量数据和高并发访问。
//Cassandra示例代码
//连接数据库
$cluster = Cassandra::cluster()->build();
$keyspace = 'myKeyspace';
$session = $cluster->connect($keyspace);
//查询数据
$select = "SELECT * FROM users";
$rows = $session->execute($select);
foreach ($rows as $row) {
echo "Name: " . $row['name'] . " - Age: " . $row['age'] . "<br>";
}
三、时序数据库
时序数据库是一类针对时间序列数据存储和查询的数据库,主要用于物联网、金融、日志处理等领域。常见的时序数据库包括:
1、InfluxDB
InfluxDB是一种高性能的分布式时序数据库,可以处理百万级别的数据和高速的数据插入和查询。
//InfluxDB示例代码
//连接数据库
$connectionString = "http://localhost:8086";
$databaseName = "myDatabase";
$client = new InfluxDB\Client($connectionString, '', '');
$db = $client->selectDB($databaseName);
//查询数据
$query = "SELECT * FROM users";
$result = $db->query($query);
$points = $result->getPoints();
foreach ($points as $point) {
echo "Name: " . $point['name'] . " - Age: " . $point['age'] . "<br>";
}
2、OpenTSDB
OpenTSDB是一种开源的分布式时序数据库,被广泛应用于监测、分析、预警等领域。
//OpenTSDB示例代码
//连接数据库
$connectionString = "localhost";
$port = "4242";
$client = new OpenTSDB\Client($connectionString, $port);
//查询数据
$query = "select * from users";
$result = $client->query($query);
foreach ($result as $datapoint) {
echo "Name: " . $datapoint->getValue() . " - Age: " . $datapoint->getTags()['age'] . "<br>";
}
3、TimescaleDB
TimescaleDB是一种开源的关系型时序数据库,具备关系型数据库的特点和优势,同时提供了时序数据库的高性能和特殊功能。
//TimescaleDB示例代码
//连接数据库
$connectionString = "host=localhost dbname=myDatabase user=myUsername password=myPassword";
$conn = pg_connect($connectionString);
//查询数据
$sql = "SELECT * FROM users";
$result = pg_query($conn, $sql);
while($row = pg_fetch_assoc($result)){
echo "Name: " . $row['name'] . " - Age: " . $row['age'] . "<br>";
}