学习SQLlite时的一些笔记
常用的数据库:
MYSQL ORACLE
<windos系统常用> <大型服务器使用>
下面所用的是
SQLITE
<轻量级的数据库,是最嵌入式设备最用的数据库>
Ubuntu下Linux系统
下载
1.下载SQLITE 数据库源代码
数据库源码网址
2.安装 数据库的方向键
sudo apt-get install libreadline-dev (方向键库文件)
3.在家目录解压数据库源程序
tar -xvf sqlite-autoconf-3300100.tar.gz
4.配置sqlite 文件
cd qlite-autoconf-3300100
./configure
5.编译源码
make
6.安装
sudo Make install
或者
sudo cp sqlite3 /bin/
7.测试数据库是否可用
sqlite3
显示如下信息即安装成功:
gec@gecubuntu:sqlite-autoconf-3300100$ sqlite3
SQLite version 3.30.1 2019-10-10 20:19:45
数据库的操作指令
基础
SQLTIE3 的常用命令:
.help 查看命令手册
.quit 退出数据库
.schema 显示表格中的内容
.table 显示数据库中的表格
以 xxx.db 结尾的即为数据库文件
创建一个数据库
sqlite3 xxx.db (假设数据库中没有任何数据则会自动删除该文件!!!)
SQL 语句:
1.每一条sql语句都是以 ; (分号)结束的!!!
2.基本的数据类型如下:
INTEGER REAL TEXT BLOB NULL
(整型) (浮点型) (字符串) (二进制) (空)
在数据库中对表格的操作:
创建一个表格
create table 表名(
字段1名称 类型 约束条件,
字段2名称 类型 约束条件,
字段3名称 类型 约束条件,
…
);
eg:
create table student(name text,id integer ,sex text);
修改表
将学生表修改为教师表
ALTER TABLE student RENAME TO teacher;
在已经存在的表中再增加一列
ALTER TABLE Teachers ADD COLUMN 名称 类型;
删除某存在了的表
DROP TABLE 要删除的表的名字 ;
对表格内部的增删改查操作
(增):往数据库中插入数据
语法:
insert into 表名 values(数据列表);
insert into 表名(指定的字段) values(数据列表);
eg:
依次插入数据:
insert into student values(‘小陈’,180,‘男’);
指定插入:
insert into student(id,name,sex) values(199,‘小东’,‘男’);
(删):删除数据库中的数据
语法:
delete from 表名 where 表达式;
eg:删除名字为小陈的人
delete from student where name=‘小陈’;
(改):修改数据库中的数据
语法:
update 表名 set 字段1=新的值,字段2=新的值 … where 表达式;
eg: 把陈人的信息修改为小花
update student set name=‘小花’, id=198,sex=‘女’ where name=‘小陈’;
(查):查找数据中的数据
语法:
select [*|字段名] from 表名;
select * from 表名; //查找表格中的所有数据
select 字段名 from 表名;//查找某一字段的数据
带条件的查找:
语法:
select [*|字段名] from 表名 where 表达式;
表达式语句可选值:
=, !=, >, <, >= , <=
between //在一定范围
like //通配
eg1:查找一定范围里面的人:查找 id 为 100 到 200 的人。
select * from student where id between 100 and 200;
eg2:查找名字中带有小的人。
select * from student where name like ‘小%’;
数据库中的约束条件
NOT NULL 非空
PRIMARY KEY 主键 每一个表都应该有一个主键 主键具有唯一性
UNIQUE 唯一的 确保数据是表中唯一的
DEFAULT 当没有插入数据时使用默认值
(PS:一个表中只能有一个作为PRIMARY KEY 但是可以有多个作为UNIQUE!!!)
eg:
创建一个带约束条件的表格:
Create table student(
Id text primary key, //主键
Name not null); //名字不能为NULL
创建一个带默认值的表格:
Create table student(
Id text default ‘1234’,
Name text);
QT之中的数据库
QT 中的SQL 接口:
QSqlDatabase Class //数据管理类
Header: #include
qmake: QT += sql 记得要添加模块
设置数据库类型 静态接口直接使用
QSqlDatabase addDatabase(const QString &type, const QString &connectionName = QLatin1String(defaultConnection))
设置数据库的路径名
void setDatabaseName(const QString &name)
//返回数据库中的表格
QStringList tables(QSql::TableType type = QSql::Tables) const
//打开数据库
bool open()
eg:
//设置数据库的类型
QSqlDatabase MYSQL = QSqlDatabase::addDatabase(“QSQLITE”);
//设置操作的数据库的路径
MYSQL.setDatabaseName("/home/gec/mysql.db");
//打开数据库
if(MYSQL.open())
执行SQL语句: 重点!!!!!
QSqlQuery Class :命令管理器类
Header:
#include
qmake:
QT += sql
//执行SQL 语句函数 ,对数据库中的所有操作都是通过该语句去完成
bool exec(const QString &query)
例子:
//定义一个命令管理器
QSqlQuery my_cmd;
//执行一条插入命令
if(my_cmd.exec(“insert into car1 values(‘粤A888’ ,datetime(‘now’),‘0:0:0’,‘暗夜红’,‘卡罗拉’);”))
{
qDebug() << “插入数据成功” << endl;
}
else {
qDebug() << “插入数据失败” << endl;
}
QSqlQuery 查询数据库中的数据:
//不断返回,下一项信息
bool next()
//遍历数据
while (cmd.next()) {
//根据数据的项数就会执行多少次循环
}
//通过index 获取数据库中字段的值
QVariant value(int index) const
//通过字段名获取字段的值
QVariant value(const QString &name) const
QT中表格的使用:
QTableWidget Class
Header:
#include
qmake:
QT += widgets
表格接口的使用:
1.设置表格的 行 与 列
void setRowCount(int rows) //设置行的数据量
void setColumnCount(int columns) //设置列的数据量
2.设置表头
//设置多项表头
void setHorizontalHeaderLabels(const QStringList &labels) //设置横向
void setVerticalHeaderLabels(const QStringList &labels) //设置纵向的
3.操作接口
//添加一项表头
void setHorizontalHeaderItem(int column, QTableWidgetItem *item)
void setVerticalHeaderItem(int row, QTableWidgetItem *item)
//取第几行第几列的一项信息
QTableWidgetItem *takeItem(int row, int column)
//插入与删除
void insertColumn(int column) //插入时注意 需要从第 0 行 或 0 列开始
void insertRow(int row)
void removeColumn(int column)
void removeRow(int row)
//设置第几行第几列的信息
void setItem(int row, int column, QTableWidgetItem *item)
移植数据库到开发板中使用:
1.进入到数据库的源码目录
cd sqlite-autoconf-3300100
2.交叉编译数据库的源码文件
arm-linux-gcc shell.c sqlite3.c -o sqlite3 -lpthread -ldl
3.把生成的可执行文件 sqlite3 下载到开发板的/bin目录使用
4.执行sqlite3 数据库
sqlite3