MySQL数据库、Qt数据库、MySQLworkbench
1、Qt中的数据库编程:
1、在Qt中,所有和数据库编程相关的类都归在命名空间QSql中,这些类主要包含:QSqlDriver(数据库驱动)、QSqlDatabase(数据库)、QSqlQuery(数据库在线操作)
2、QSqlDriver(数据库驱动):
QSqlDriver(数据库驱动)是一个纯虚类,面向不同的数据库,实现不同数据库的存取方法,并向上一层代码提供一个统一的界面。
3、QSqlDatabase(数据库):完成与数据库的连接
1、addDatabase
2、isDriveAvailable...
4、QSqlQuery(数据库在线操作):进行SQL语句数据查询、数据处理的用户接口
1、QSqlQuery(构造函数)
2、prepare...
2、workbench的数据库编程:
1、workbench(SQL指令)
CREATE TABLE `StationHelper`.`stations` (
`sid` INT NOT NULL AUTO_INCREMENT,
`sname` VARCHAR(45) NOT NULL,
PRIMARY KEY (`sid`))
ENGINE = InnoDB;
2、MySQL数据库
预备知识:
1、数据库,schemas。MySQL的文档中指出,在物理上,模式与数据库是同义的。
2、table中详细信息nfo 标签显示了该数据表的表名、存储引擎、列数、表空间大小、创建时间、更新时间、字符集校对规则等信息;Columns 标签显示了该表数据列的信息,包括列名、数据类型、默认值、非空标识、字符集、校对规则和使用权限等信息
3、常用索引:index,普通索引,加速查找;primary key,主键索引,加速查找+约束(非空、不能重复);unique,唯一索引,加速查找+约束(不能重复)
index(id,name)联合普通索引;unique(id,name)联合唯一索引;primary(id,name)联合主键索引
不常用索引:全文索引FULLTEXT,实际使用
4、PrimaryKey等属性
- PK:primary key 主键
- NN:not null 非空 :勾选 NN 复选框时,该列为数据表的非空约束;取消勾选 NN 复选框时,则取消该列的非空约束。
- UQ:unique 唯一索引 :勾选 UQ 复选框时,该列就是数据表的唯一约束索引;取消勾选 UQ 复选框时,则取消该列的唯一约束索引。
- BIN:binary 二进制数据(比text更大)
- UN:unsigned 无符号(非负数)
- ZF:zero fill 填充0 例如字段内容是1 int(4), 则内容显示为0001
- AI:auto increment 自增
5、主键约束pk、外键约束: Foreign Keys 标签。
Foreign Key Name:外键名称; Referenced Table:关联的主表
Column: 选择外键字段; Referenced Column: 选择主表的关联字段
6、外键的约束模式:
1.set null、 闲置模式:主表记录被删除或者更改,从表相关记录的外键置为null;
2.cascade、 级联操作:主表中删除或者更新了某条信息,从表中与该表记录有关的记录也发生改变
3.district、 严格模式 no action: 和district一样:当从表中有外键数据和主表关联,主表中该条记录就不能删除或者更新(父表不能删除或者更新一个被子表引用的记录)
7、多表之间 的关系分为三种:一对一,一对多,多对多。多表操作时通过添加外键来关联。