数据库的基本概念
数据库和数据库管理系统 (DBMS):
- 数据库是一个组织数据的集合,可以通过一定的结构和规则进行管理和访问。数据库管理系统 (DBMS) 则是用于管理和操作数据库的软件。
关系型数据库管理系统 (RDBMS):
- 关系型数据库以表格的形式存储数据,其中行被称为
记录
,列被称为字段
。表格的集合被称为表
。 - 一个表通常代表一个实体,而实体之间存在关系,通过实体关系图 (ER 图) 进行表示。
- 使用结构化查询语言 (SQL) 进行数据库查询。
记录、字段、表:
- 记录 (Record): 表示数据库中的一行数据,包含多个字段的值。
- 字段 (Field): 表示数据库中的一列数据,存储某种类型的信息。
- 表 (Table): 数据库中的一个结构化数据集合,由多个记录和字段组成。
表头
:-
PK表示不能为空且不能重复,YES表示不能为空,NO表示可以为空
记录
:
实体和关系:
- 实体 (Entity): 在数据库中通常表示一个具体的对象或概念,对应数据库中的一个表。
- 关系 (Relation): 表示不同实体之间的联系,可以通过外键等机制建立实体之间的关系。
- 实体和关系可以化成一张图(ER图)
结构化查询语言 (SQL):
- SQL 是一种用于管理和查询关系型数据库的标准化语言。通过 SQL,可以执行数据库的各种操作,包括查询、插入、更新、删除等。
关系型数据库的设计和管理是数据库领域的核心概念,它提供了一种灵活的结构来组织和存储数据,并支持复杂的查询和关系操作。
主键、外键和表的概念
- 主键 (Primary Key):
- 主键是表中的一列或一组列,用于唯一标识表中的每一行数据。主键的值不能重复,且不能为空。通常情况下,主键用于确保表中的数据行可以唯一地被标识和检索。
- 在学生信息表 (
StudentInfo
) 中,可能有一个名为StudentID
的列作为主键,用于唯一标识每个学生的信息。
- 外键 (Foreign Key):
- 外键是表中的一列,它建立了与另一表的关联关系。外键的值通常与另一表的主键值相对应,以建立表之间的关系。通过外键,可以在不同表之间建立引用关系,实现数据的关联和连接。
- 在课程信息表 (
CourseInfo
) 中,可能有一个名为StudentID
的列作为外键,用于关联学生信息表中的主键,建立学生与课程之间的关系。
- 表的概念:
- 表是关系型数据库中的一个基本概念,用于组织和存储数据。每个表由多个列组成,每列包含一个字段的数据。表中的每一行则表示一条记录,记录了表中各列的具体数值。
- 在学生信息表 (
StudentInfo
) 和课程信息表 (CourseInfo
) 中,分别存储了学生的个人信息和课程的相关信息。
通过主键和外键的设计,可以在不同表之间建立关联,实现更复杂的数据模型和查询操作。主键和外键的使用是数据库设计中的关键步骤,能够有效组织和管理数据库中的数据。
SQL 语法
在关系型数据库中,SQL(Structured Query Language)是一种用于管理和操作数据库的标准化语言。SQL 语言主要包括 CRUD 操作,即对数据的创建、检索、更新和删除。
CRUD 操作和应用:
- Create (创建): 通过
INSERT
语句在表中添加新的数据行。-- 示例:向学生信息表中插入一条新记录 INSERT INTO StudentInfo (StudentID, FirstName, LastName, Age) VALUES (1, 'John', 'Doe', 20);
- Retrieval (检索): 通过
SELECT
语句从表中检索数据。-- 示例:检索学生信息表中的所有记录 SELECT * FROM StudentInfo;
- Update (更新): 通过
UPDATE
语句更新表中的数据。-- 示例:更新学生信息表中的记录 UPDATE StudentInfo SET Age = 21 WHERE StudentID = 1;
- Delete (删除): 通过
DELETE
语句从表中删除数据。-- 示例:删除学生信息表中的记录 DELETE FROM StudentInfo WHERE StudentID = 1;
这些 SQL 语句是进行基本的数据库操作的关键。通过组合和使用这些语句,可以实现对数据库中数据的增删改查操作。在实际应用中,这些操作是数据库管理和开发中的常见任务。
Select
Data
-
Query
-
Result
-
Query
-
Result
-
Query
-
Result
-
Query
-
Result
-
Query
-
Result
用于日期
-
Query
-
Result
模糊查询
-
Query
-
Result
排序
-
Query
-
Result
统计数据
-
Query
-
Result
删除
Data
-
Query
-
Result(注意,DELETE是无返回值的,下面的就是一个形象化的结果,实际上是数据库修改后的状态)
插入
Data
-
Query
-
Result(注意,INSERT是无返回值的)
注意:有一些列可以不写,所以需要在()内标明你需要写入的内容
改
Data
-
Query
-
Result(注意,UPDATE是无返回值的,下面的就是一个形象化的结果,实际上是数据库修改后的状态)
JDBC - Java Database Connectivity
JDBC(Java Database Connectivity)是 Java 提供的用于实现与数据库连接和操作的 API。它允许 Java 应用程序通过标准化的方式与数据库进行通信,执行 SQL 查询,更新数据库记录等操作。
JDBC 主要功能和特点:
- 数据库连接:
- JDBC 允许 Java 应用程序通过 JDBC 驱动程序与各种数据库建立连接。每个数据库都需要相应的 JDBC 驱动程序,用于与数据库通信。
- SQL 查询和更新:
- 通过 JDBC,可以执行 SQL 查询语句以检索数据库中的数据,也可以执行更新语句(INSERT、UPDATE、DELETE)以修改数据库记录。
- 事务管理:
- JDBC 支持事务管理,允许在数据库上执行事务操作。通过设置事务的隔离级别、提交或回滚事务,可以确保数据库的一致性和完整性。
- 异常处理:
- JDBC 提供了处理数据库操作过程中的异常的机制。通过捕获和处理异常,可以实现更健壮的数据库操作。
- 元数据访问:
- JDBC 允许访问数据库的元数据,包括表结构、列信息等。这使得在运行时获取和分析数据库的结构成为可能。
JDBC 基本步骤:
-
加载驱动程序:
- 使用
Class.forName("com.mysql.cj.jdbc.Driver");
加载数据库驱动程序。
- 使用
-
建立连接:
- 使用
Connection
接口获取数据库连接对象,通常需要提供数据库的 URL、用户名和密码。
- 使用
-
创建 Statement 对象:
- 使用
Statement
接口创建 SQL 语句的执行对象。
- 使用
-
执行 SQL 语句:
- 使用
Statement
对象执行 SQL 查询或更新语句。
- 使用
-
处理结果:
- 处理执行 SQL 后返回的结果,如查询结果集或更新的记录数。
-
关闭连接:
- 使用
close()
方法关闭连接,释放资源。
- 使用
JDBC 提供了一种灵活和通用的方式,使 Java 应用程序能够与各种关系型数据库进行交互。通过 JDBC,开发人员可以在 Java 应用程序中轻松地实现对数据库的访问和操作。
如果写全的话:
扩充知识:
ResultSetMetaData
是 JDBC 中的一个接口,它用于获取关于 ResultSet
中列的元数据信息。元数据是描述数据的数据,因此 ResultSetMetaData
提供了关于查询结果集中列的信息,如列的数量、列名、列的数据类型等。
以下是 ResultSetMetaData
的主要方法和用法:
- 获取列数:
getColumnCount()
: 返回结果集中的列数。
ResultSetMetaData metaData = resultSet.getMetaData(); int columnCount = metaData.getColumnCount();
- 获取列名:
getColumnName(int column)
: 返回指定列的名称。
String columnName = metaData.getColumnName(1); // 获取第一列的列名
- 获取列的数据类型:
getColumnType(int column)
: 返回指定列的 SQL 数据类型。
int columnType = metaData.getColumnType(1); // 获取第一列的数据类型
- 获取列的显示大小:
getColumnDisplaySize(int column)
: 返回指定列的最大显示宽度(以字符为单位)。
int displaySize = metaData.getColumnDisplaySize(1); // 获取第一列的显示大小
- 判断列是否允许为空:
isNullable(int column)
: 返回指定列是否允许包含 NULL 值。
int nullable = metaData.isNullable(1); // 获取第一列是否允许为空
- 其他方法:
- 还有其他方法用于获取关于列的精度、标度、表名等信息。
ResultSetMetaData
可以帮助开发人员在运行时了解查询结果集的结构,从而更灵活地处理查询结果中的数据。
在 JDBC 中,有两种常用的执行 SQL 语句的方法,分别是 executeUpdate
和 executeQuery
。
1. executeUpdate 方法
executeUpdate
方法通常用于执行对数据库进行修改的 SQL 语句,比如 INSERT、UPDATE、DELETE 等操作。这些操作不返回结果集,而是返回一个整数值,表示受影响的行数。
Statement statement = connection.createStatement();
int rowCount = statement.executeUpdate("UPDATE tableName SET column1 = value1 WHERE condition");
在上述代码中,executeUpdate
方法执行了一个更新操作,将满足条件的记录的某个列的值进行修改。rowCount
变量将包含被修改的行数。
2. executeQuery 方法
executeQuery
方法用于执行查询操作,返回一个 ResultSet
对象,该对象包含查询结果的数据。通常用于执行 SELECT 语句。
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("SELECT column1, column2 FROM tableName WHERE condition");
在这个例子中,executeQuery
方法执行了一个查询操作,返回了一个包含满足条件的结果集的 ResultSet
对象。
注意事项
- 使用
executeUpdate
时,应注意 SQL 语句的正确性和合法性,因为该方法通常用于执行对数据库结构进行修改的操作。 - 使用
executeQuery
时,应处理返回的ResultSet
对象以获取查询结果的数据。
选择使用哪种方法取决于执行的 SQL 语句的类型以及是否需要处理返回的结果集。
在 JDBC 中,有两种常用的执行 SQL 语句的方法,分别是 executeUpdate
和 executeQuery
。
1. executeUpdate 方法
executeUpdate
方法通常用于执行对数据库进行修改的 SQL 语句,比如 INSERT、UPDATE、DELETE 等操作。这些操作不返回结果集,而是返回一个整数值,表示受影响的行数。
Statement statement = connection.createStatement();
int rowCount = statement.executeUpdate("UPDATE tableName SET column1 = value1 WHERE condition");
在上述代码中,executeUpdate
方法执行了一个更新操作,将满足条件的记录的某个列的值进行修改。rowCount
变量将包含被修改的行数。
2. executeQuery 方法
executeQuery
方法用于执行查询操作,返回一个 ResultSet
对象,该对象包含查询结果的数据。通常用于执行 SELECT 语句。
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("SELECT column1, column2 FROM tableName WHERE condition");
在这个例子中,executeQuery
方法执行了一个查询操作,返回了一个包含满足条件的结果集的 ResultSet
对象。
注意事项
- 使用
executeUpdate
时,应注意 SQL 语句的正确性和合法性,因为该方法通常用于执行对数据库结构进行修改的操作。 - 使用
executeQuery
时,应处理返回的ResultSet
对象以获取查询结果的数据。
选择使用哪种方法取决于执行的 SQL 语句的类型以及是否需要处理返回的结果集。
标签:语句,JDBC,Java,数据库,表中,笔记,查询,SQL From: https://www.cnblogs.com/xiaoheijun/p/17873643.html