📜  数据库 (1)

📅  最后修改于: 2023-12-03 15:39:58.167000             🧑  作者: Mango

数据库

数据库是计算机系统中一种用于存储和管理数据的软件应用程序。它可以让用户在计算机上创建、访问和管理数据库。

关系型数据库

在关系型数据库中,数据以表格的形式组织,并使用固定的行和列存储数据。用户可以使用结构化查询语言(SQL)来查询和操作数据。常见的关系型数据库包括MySQL、Oracle、SQL Server等。

MySQL

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是一种商业关系型数据库管理系统。它支持高度可扩展性和可靠性,并具有强大的数据安全性和管理功能。下面是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是微软开发的一种关系型数据库管理系统。它适用于中小型企业和大型企业,并支持高可用性和容错性。下面是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

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

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

Redis是一个开源的内存型NoSQL数据库。它支持键值对存储、列表、集合、哈希表等数据结构,并且具有高度可扩展性和高速度。下面是Redis的一个简单的操作示例:

# 连接数据库
redis-cli
# 设置值
SET name 'John'
# 获取值
GET name
# 更新值
SET age 25
# 删除值
DEL age