📅  最后修改于: 2023-12-03 15:39:58.167000             🧑  作者: Mango
数据库是计算机系统中一种用于存储和管理数据的软件应用程序。它可以让用户在计算机上创建、访问和管理数据库。
在关系型数据库中,数据以表格的形式组织,并使用固定的行和列存储数据。用户可以使用结构化查询语言(SQL)来查询和操作数据。常见的关系型数据库包括MySQL、Oracle、SQL Server等。
MySQL是一个流行的开源关系型数据库管理系统。它支持多用户、多线程,并具有高效的查询性能。下面是MySQL的一个简单的CRUD操作示例:
-- 创建数据库
CREATE DATABASE mydatabase;
-- 创建表
CREATE TABLE customers (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
age INT NOT NULL,
PRIMARY KEY (id)
);
-- 插入数据
INSERT INTO customers (name, age) VALUES ('John', 25);
-- 查询数据
SELECT * FROM customers;
-- 更新数据
UPDATE customers SET age=30 WHERE name='John';
-- 删除数据
DELETE FROM customers WHERE name='John';
Oracle是一种商业关系型数据库管理系统。它支持高度可扩展性和可靠性,并具有强大的数据安全性和管理功能。下面是Oracle的一个简单的CRUD操作示例:
-- 创建表空间
CREATE TABLESPACE mytablespace DATAFILE '/path/to/mytablespace.dbf' SIZE 100M;
-- 创建表
CREATE TABLE customers (
id NUMBER(10) PRIMARY KEY,
name VARCHAR2(50) NOT NULL,
age NUMBER(3) NOT NULL
) TABLESPACE mytablespace;
-- 插入数据
INSERT INTO customers (id, name, age) VALUES (1, 'John', 25);
-- 查询数据
SELECT * FROM customers;
-- 更新数据
UPDATE customers SET age=30 WHERE id=1;
-- 删除数据
DELETE FROM customers WHERE id=1;
SQL Server是微软开发的一种关系型数据库管理系统。它适用于中小型企业和大型企业,并支持高可用性和容错性。下面是SQL Server的一个简单的CRUD操作示例:
-- 创建数据库
CREATE DATABASE mydatabase;
-- 创建表
CREATE TABLE customers (
id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
age INT NOT NULL
);
-- 插入数据
INSERT INTO customers (id, name, age) VALUES (1, 'John', 25);
-- 查询数据
SELECT * FROM customers;
-- 更新数据
UPDATE customers SET age=30 WHERE id=1;
-- 删除数据
DELETE FROM customers WHERE id=1;
非关系型数据库(NoSQL)是一种可以处理大型分布式数据集的数据库。它们不使用表结构来存储数据,而是使用键值对、文档、图形或列式存储数据。NoSQL数据库包括MongoDB、Cassandra、Redis等。
MongoDB是一个开源的文档型NoSQL数据库。它支持高效的处理海量数据和动态查询,并且具有高度可扩展性和灵活性。下面是MongoDB的一个简单的CRUD操作示例:
// 连接数据库
const MongoClient = require('mongodb').MongoClient;
const uri = 'mongodb://localhost:27017/mydatabase';
const client = new MongoClient(uri, { useNewUrlParser: true });
client.connect(err => {
// 创建数据库
const db = client.db('mydatabase');
// 创建集合(类似于表)
const collection = db.collection('customers');
// 插入数据
collection.insertOne({ name: 'John', age: 25 });
// 查询数据
collection.find({ age: { $gt: 20 } }).toArray((err, docs) => console.log(docs));
// 更新数据
collection.updateOne({ name: 'John' }, { $set: { age: 30 } });
// 删除数据
collection.deleteOne({ name: 'John' });
});
Cassandra是一个开源的分布式列式NoSQL数据库。它支持高度可扩展性和高速读写,并具有极高的容错性。下面是Cassandra的一个简单的CRUD操作示例:
-- 创建键空间
CREATE KEYSPACE mykeyspace WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1};
-- 创建表
CREATE TABLE customers (id INT PRIMARY KEY, name TEXT, age INT);
-- 插入数据
INSERT INTO customers (id, name, age) VALUES (1, 'John', 25);
-- 查询数据
SELECT * FROM customers WHERE age > 20;
-- 更新数据
UPDATE customers SET age=30 WHERE id=1;
-- 删除数据
DELETE FROM customers WHERE id=1;
Redis是一个开源的内存型NoSQL数据库。它支持键值对存储、列表、集合、哈希表等数据结构,并且具有高度可扩展性和高速度。下面是Redis的一个简单的操作示例:
# 连接数据库
redis-cli
# 设置值
SET name 'John'
# 获取值
GET name
# 更新值
SET age 25
# 删除值
DEL age