关于SQLite的学习

学习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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值