本文是我在后端训练营初学数据库结构化查询语言SQL(Structured Query Language)之后的一点个人总结。
数据库是按照数据结构来组织、存储和管理数据的仓库。它是一个存储数据的容器,可以存储各种类型的数据,如文本、图像、音频、视频等。数据库可以通过计算机系统进行访问和管理,通常由数据库管理系统(DBMS)来控制。
目前市场上比较流行的数据库软件有MySQL、PostgreSQL、Microsoft SQL Server、Oracle数据库、MongoDB等。此外,还有一些其他的数据库软件,如SQLite、Redis、Cassandra等。
1.数据库创建
1.1创建数据库的语法
语法:create database 数据库名称;
//创建一个学籍的数据库。
create database studen stautas;
//如果你想使用utf-8字符集:
create database studen stautas character set 'utf-8';
1.2 当你创建好了之后。你可以:
show database; //显示所有的数据库
use 数据库名称; //使用数据库
show create database 数据库名称; //查询数据库的建的信息
select database(); //查询当前正在使用的数据库
2. 表的创建
2.1 语法:
create table 表名称(
字段1 类型(长度)约束,
字段2 类型(长度)约束,
字段3 类型(长度)约束
);
eg:
CREATE TABLE student (
id INT PRIMARY KEY,
name VARCHAR(50),
gender VARCHAR(10),
age INT,
classid VARCHAR(20)
FOREIGN KEY (classid) REFERENCES CLASS(classid)
);
上述代码创建了一个学生信息表,它的属性由学号(id),姓名,性别,年龄,班级组成。
在定义id时,出现了一段代码primary key,它代表将学号(id)定义为主码(主键)。
以及FOREIGN KEY (classid) REFERENCES CLASS(classid),他代表classid是外码,参照class表的classid属性。这就引出了下一个知识点,码,主码,外码。
2.2 码 主码 外码
在数据库中,码是指一组数据项,它们可以唯一地标识一个实体。主码是指在一个关系中,能够唯一地标识一个元组的属性或属性组。外码是指一个关系中的属性或属性组,它与另一个关系的主码相对应,用于建立两个关系之间的联系。
通俗的讲,码就是能够唯一确定一组数据的属性,比如学号是每个人都不同的,根据学号就可以确定一位学生,但姓名,年龄,性别都有可能相同,因此不能唯一地确定一位学生,所以在上面的表中,只有学号是码。
主码就是在所有的码中选择一个作为主码,每一张表都应有一个主码来保证数据的完整性,因为主码的唯一标识性,所以它不能为空。
外码是与另一个表的主码相对应,用于建立两个表之间的联系。外码约束可以保证数据的完整性和一致性,防止出现不合法的数据。
2.3 查看,修改,删除表
- 查看表:使用SELECT语句来查看表中的数据。
- 修改表:使用ALTER TABLE语句来修改表的结构,例如添加、删除或修改列,更改列的数据类型或约束等。
- 删除表:使用DROP TABLE语句来删除表。
查看表:
select*from table_name;
select*from student;
修改表:
1、添加一个新的字段 // alter table 表名称 add 字段名称 数据类型(长度)约束;
2、修改字段的数据类型、长度或者约束 // alter table 表名称 modify 字段名称 数据类型(长度)约束;
3、删除某一个字段 // alter table 表名称 drop 字段名称;
4、修改字段的名称 // alter table 表名称 change 旧字段 新字段 数据类型(长度)约束;
5、修改表的名称 // rename table 旧表名 to 新表名;
alter table student add sdept char(10);
alter table student modify sdept char(20);
alter table student drop sdept;
alter table student change classid CLASSID char(10);
rename table student to STUDENT;
删除表:
drop table 表名称;
drop table student;
2.4 数据处理
- 插入数据:使用INSERT INTO语句来向表中插入数据。
- 删除数据:使用DELETE FROM语句来从表中删除数据。
- 查询数据:使用SELECT语句来从表中检索数据。
- 插入数据:
INSERT INTO student (id, age, sex, classid)
VALUES (2021215274,20,男,214);
- 删除数据:
DELETE FROM student WHERE id = 2021215274;
- 查询数据:
SELECT id FROM studentWHERE classid=214;
查询语句有很多
eg:
- 分组查询:使用GROUP BY语句将数据分为多个逻辑组,对每个组进行聚集计算。例如:
SELECT column_name(s) FROM table_name WHERE condition GROUP BY column_name(s) ORDER BY column_name(s);
seltct class, id from score where score >= 80 group by class;
// 按班级分组查询出所有成绩在80分以上的同学学号
- 嵌套查询:使用SELECT语句嵌套在另一个SELECT语句中,以便在内部查询中使用结果。例如:
SELECT column_name(s) FROM table_name WHERE column_name IN (SELECT column_name FROM
table_name WHERE condition);
//假设有两个表,一个是学生表,包含学生的学号和姓名等信息;另一个是成绩表,包含学生的学号、科目和成绩等信息。现在需要查询出所有成绩在80分以上的学生的姓名和学号。
select id, name from student where id in
(
select id
from score
where score >= 80
);
- 聚集函数:使用聚集函数对表进行记录统计、数据运算。例如:
SELECT COUNT(column_name) FROM table_name;
SELECT AVG(column_name) FROM table_name;
SELECT SUM(column_name) FROM table_name;
//假设有一个成绩表,包含学生的学号、科目和成绩等信息。现在需要查询出每个科目的平均成绩。
select subject, AVG(score) from score group by subject;
3.视图
视图是一种虚拟的表,是由一个或多个基本表的行或列组合而成的。视图并不在数据库中以存储数据的形式存在,而是通过使用 SELECT 语句来定义的。视图中包含的行和列来自于一个或多个基本表,这些基本表被称为视图的定义。
视图可以简化复杂的 SQL 操作,隐藏具体表的结构,保护数据。视图还可以用于简化用户访问数据库中的数据。
创建视图的语法:
CREATE VIEW view_name AS
SELECT column1, column2.....
FROM table_name
WHERE [condition];
假设有一个学生表,包含学生的学号和姓名等信息;另一个是成绩表,包含学生的学号、科目和成绩等信息。现在需要查询出所有成绩在80分以上的学生的姓名和学号。
可以使用以下语句来实现:
create view score_above_80 as
select student_id, student_name
from student
where student_id IN (
select student_id
from score
where score >= 80
);
select * from score_above_80;
本文为后端训练营结课作业,希望能对你有帮助 !