一、数据库与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;