数据库入门

发布时间:2023-05-22

一、数据库与SQL

数据库是计算机系统中用于存储和管理数据的软件。SQL(Structured Query Language)是一种用于管理关系型数据库的语言,包括查询、更新、插入和删除等操作。 示例代码:

CREATE TABLE student (
   id INTEGER PRIMARY KEY,
   name TEXT,
   age INTEGER
);
INSERT INTO student (id, name, age)
VALUES (1, 'Alice', 20);
SELECT * FROM student;

二、数据库的类型

数据库有多种类型,包括关系型数据库、非关系型数据库、内存数据库、图形数据库等。

1. 关系型数据库

关系型数据库使用表格的形式来表示数据,通常使用SQL语言进行查询和管理。常见的关系型数据库有MySQL、Oracle、SQL Server等。

2. 非关系型数据库

非关系型数据库不使用表格的形式来表示数据,而是使用键值对、列族、文档等形式。常见的非关系型数据库有MongoDB、Redis、Cassandra等。 示例代码:

// MongoDB
db.students.insertOne({
   name: 'Bob',
   age: 21
});
db.students.find({name: 'Bob'});
// Redis
SET key value
GET key

三、基本的SQL操作

SQL提供了一些基本的操作,包括SELECT、INSERT、UPDATE和DELETE。

1. SELECT

SELECT用于查询数据库中的数据,可以指定查询的列、条件、排序等。下面是一个简单的查询示例:

-- 查询所有学生的姓名和年龄
SELECT name, age FROM student;

2. INSERT

INSERT用于向数据库中插入新的数据。下面是一个插入数据的示例:

-- 插入一条学生记录
INSERT INTO student (id, name, age) VALUES (2, 'Bob', 21);

3. UPDATE

UPDATE用于更新数据库中的数据。下面是一个修改数据的示例:

-- 将id为2的学生的年龄改为22
UPDATE student SET age=22 WHERE id=2;

4. DELETE

DELETE用于删除数据库中的数据。下面是一个删除数据的示例:

-- 删除id为2的学生记录
DELETE FROM student WHERE id=2;

四、数据完整性

数据库的数据完整性指的是数据库中数据的准确性和一致性。为了保证数据的完整性,数据库提供了一些限制和约束,包括主键约束、外键约束、唯一性约束等。

1. 主键约束

主键是用于唯一标识数据库表中每一行数据的列,通常是一个自增的整数类型。主键约束保证了每一行数据的唯一性。

-- 创建表时指定主键
CREATE TABLE student (
   id INTEGER PRIMARY KEY,
   name TEXT,
   age INTEGER
);
-- 插入数据时自动生成主键
INSERT INTO student (name, age) VALUES ('Alice', 20);

2. 外键约束

外键是指在两个表之间建立的关系,通常是指一个表中的一列与另一个表中的主键相对应。外键约束保证了数据之间的一致性。

-- 创建两个表,student和course
CREATE TABLE student (
   id INTEGER PRIMARY KEY,
   name TEXT,
   age INTEGER,
   course_id INTEGER
);
CREATE TABLE course (
   id INTEGER PRIMARY KEY,
   name TEXT
);
-- 在student表中创建外键约束
ALTER TABLE student ADD FOREIGN KEY (course_id) REFERENCES course(id);

3. 唯一性约束

唯一性约束保证了数据库表中某一列的数据不能重复。可以对多列进行唯一性约束。

-- 创建表时指定唯一性约束
CREATE TABLE student (
   id INTEGER PRIMARY KEY,
   name TEXT UNIQUE,
   age INTEGER
);
-- 修改表结构添加唯一性约束
ALTER TABLE student ADD UNIQUE (name);

五、基本的SQL函数

SQL提供了一些函数,用于处理数据和进行计算。

1. COUNT函数

COUNT函数用于计算符合条件的记录条数。

-- 查询student表中的记录总数
SELECT COUNT(*) FROM student;

2. AVG函数

AVG函数用于计算平均数。

-- 查询student表中所有学生的平均年龄
SELECT AVG(age) FROM student;

3. MAX和MIN函数

MAX和MIN函数分别用于查找最大和最小值。

-- 查询student表中最年轻和最年长的学生
SELECT MAX(age), MIN(age) FROM student;

4. SUM函数

SUM函数用于计算某一列的总和。

-- 查询student表中所有学生的年龄总和
SELECT SUM(age) FROM student;

六、参考资料