QT 数据库学习笔记数据库基本概念
Posted 火山上的企鹅
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT 数据库学习笔记数据库基本概念相关的知识,希望对你有一定的参考价值。
QT 其它文章请点击这里: QT 学习笔记
一、概念
● 数据库 DB(DataBase)
就是存放数据的仓库,其特点是数据按照数据模型组织,是高度结构化的,可供多个用户共享并且具有一定的安全性。
● 数据库管理系统 DBMS(DataBase Management System)
它是位于用户应用程序和操作系统之间的数据库管理系统软件,其主要功能是组织、存储和管理数据,高效地访问和维护数据,常用的DBMS有Oracle、Microsoft SQL Server和mysql等。
● 什么是SQL语言?
结构化查询语言(Structured Query Language,SQL)是用于关系数据库操作的标准语言,
● SQL 三部分的组成
1)、数据定义语言(Data Description Language,DDL),数据定义语言DDL用来创建、删除、修改数据库中的各种对象-----表、视图、索引、同义词、聚簇等
Create database : 创建数据库
Alter database : 修改数据库
Create table : 创建新表
Alter table : 变更(改变)数据库表
Drop table : 删除表
Create index : 创建索引(搜索键)
Drop index : 删除索引
2)、数据操纵语言(Data Manipulation Language,DML),用于操纵数据库中各种对象,检索和修改数据
Select : 从数据库表中获取数据
Update : 更新数据库中的数据
Delete : 从数据库表中删除数据
Insert into : 向数据库中插入数据
3)、数据控制语言(Data Control Language,DCL)用于安全管理,确定哪些用户可以查看或修改数据库中的数据
① 授权
GRANT: 授权
② 回滚
ROLLBACK [WORK] TO [SAVEPOINT]: 回退到某一点。
SQL>ROLLBACK; 回滚命令使数据库状态回到上次最后提交的状态。
③ 提交
COMMIT [WORK]:提交。
● 显式提交,用COMMIT命令直接完成的提交为显式提交。
SQL>COMMIT;
● 隐式提交,用SQL命令间接完成的提交为隐式提交。
ALTER,AUDIT,COMMENT,CONNECT,CREATE,DISCONNECT,DROP,EXIT,GRANT,NOAUDIT,QUIT,REVOKE,RENAME。
● 自动提交,若把AUTOCOMMIT设置为ON,则在插入、修改、删除语句执行后, 系统将自动进行提交,这就是自动提交。
SQL>SET AUTOCOMMIT ON;
● 数据库表
一个数据库通常包含一个或多个表。每个表有一个名字标识,表包含带有数据的记录(行),如下:
● QtSql模块层次结构
● Qt5数据库驱动
Qt SQL模块使用数据库驱动来和不同的数据库接口进行通信。由于Qt的SQL模型的接口是独立于数据库的,所以所有数据库特定的代码都包含在了这些驱动中。Qt现在支持的数据库驱动如下图所示。
二、数据操纵语言DML(增删查改)
1. 增(INSERT)
● INSERT 语法
语法1:
INSERT INTO target [IN externaldatabase] (fields_list)
DEFAULT VALUES|VALUES(DEFAULT|expression_list)
语法2:
INSERT INTO target [IN externaldatabase] fields_list
SELECT…|EXECUTE…
● 实例
insert into teacher values(”,’allen’,'大连一中’,'1976-10-10′);
insert into student values(1,'张三',21)
2. 删(DELETE)
● DELETE 语法
DELETE FROM table_names
[WHERE…]
● 实例
① 从 students 表中删除姓名为 “罗亮” 的记录:
DELETE FROM students WHERE name = '罗亮'
② 从 students 表中删除ID为 “3” 的记录:
delete from students where id = 3
3. 查(SELECT )
● 完整的SELECT语法
SELECT [DISTINCT] [别名.]字段名或表达式 [AS 列标题] /* 指定要选择的列或行及其限定 */
FROM table_source /* FROM子句,指定表或视图 */
[ WHERE search_condition ] /* WHERE子句,指定查询条件 */
[ GROUP BY group_by_expression ] /* GROUP BY子句,指定分组表达式 */
[ ORDER BY order_expression [ ASC | DESC ]] /* ORDER BY子句,指定排序表达式和顺序 */
● 实例
① 查询Student数据库。查询 students 表中各个同学的姓名和总学分。
USE Student SELECT name,totalscore FROM students
② 查询表中所有记录。查询students表中各个同学的所有信息,用得最多
SELECT * FROM students
③ 条件查询。查询students表中总学分大于等于120的同学的情况。
SELECT * FROM students WHERE totalscore >= 120
④ 条件查询&获取院系名字和总分。查询students表中总学分大于等于120的同学的情况。
SELECT department,name,totalscore FROM students WHERE totalscore >= 120
⑤ 多重条件查询。查询students表中所在系为“计算机”且总学分大于等于120的同学的情况。
SELECT * FROM students WHERE department='计算机' AND totalscore >= 120
⑥ 使用LIKE谓词进行模式匹配。查询students表中姓“王”且单名的学生情况。
SELECT * FROM students WHERE name LIKE '王_'
4. 改(UPDATE)
● UPDATE 语法
UPDATE table_name
SET Field_1=expression_1[,Field_2=expression_2…]
[FROM table1_name|view1_name[,table2_name|view2_name…]]
[WHERE…]
其中,Field 是需要更新的字段,expression 表示要更新字段的新值表达式。
● 实例
① 将计算机系学生的总分增加10:
UPDATE students
SET totalscore = totalscore + 10
WHERE department = '计算机'
② 将ID为2的学生的名字改为 “小明”:
update students
SET name = '小明'
WHERE id = 2
QT 其它文章请点击这里: QT 学习笔记
以上是关于QT 数据库学习笔记数据库基本概念的主要内容,如果未能解决你的问题,请参考以下文章