基于SQLITE的简易学生管理界面

编程入门 行业动态 更新时间:2024-10-28 05:13:32

基于SQLITE的<a href=https://www.elefans.com/category/jswz/34/1769136.html style=简易学生管理界面"/>

基于SQLITE的简易学生管理界面

Sqlite命令行程序

创建数据表

CREATE TABLE 表名(列名1 类型 [约束],列名2 类型 [约束],...);

常用的类型

INT(整形) TEXT(字符串) REAL(浮点数)

常用的约束

PRIMARY KEY(主键):表示该列数据唯一,可以加快数据访问。

NOT NULL(非空):该列数据不能为空

删除数据表

DROP TABLE 表名

删除数据表实例

DROP TABLE testTable

1.向数据表中插入数据

INSERT INTO 表名 (列名1,列名2,...) VALUES(数值1,数值2,...);

如果要为表中所有列添加值,并且插入列的顺序和创建表的顺序相同,可以不需要在Sqlite查询中指定列名

INSERT INTO 表名 VALUES(数值1,数值2,...);

插入数据实例

INSERT INTO company (id,name,age,salary) VALUES(1001,'小乔‘,24,11000);

INSERT INTO company VALUES(1002,'大乔‘,26,14000);

2.从数据表删除数据

DELETE FROM 表名 WHERE 条件表达式;

注:可以没有where子句,但数据表的所有数据都将被删除;

如果有多个条件可以使用逻辑与(and)或逻辑或(or)连接

删除数据实例

DELETE FROM company WHERE id=1001;

DELETE FROM company WHERE address='成都' and salary<1000;

3.修改数据表中的数据

UPDATE 表名 SET 列名1=新数值,列名2=新数值,...,WHERE 条件表达式;

注:可以没有WHERE子句,但数据表的所有数据都将被修改;

"新数值"可以是一个常数,也可以是一个表达式。

修改数据实例

UPDATE company SET age=45 WHERE id=1001;

UPDATE company SET salary=salary+2000 WHERE age>=30 and age<=35;

4.查询数据表中的数据

SELECT 列名1,列名2,... FROM 表名;

SELECT 列名1,列名2,... FROM 表名 WHERE 条件表达式;

SELECT 列名1,列名2,... FROM 表名 WHERE 条件表达式 ORDER BY 列名 排序方式

注:ORDER BY 子句可以和WHERE子句配合使用,也可以单独使用;

注:排序方式 ASC------升序 DESC------降序

查询操作实例

SELECT * FROM company WHERE salary>10000 or salary<3500;

SELECT * FROM company ORDER BY id ASC;

代码如下:widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include<QSqlDatabase>
#include<QSqlQuery>
#include<QSqlError>
#include<QSqlQueryModel>
#include<QDebug>
#include<QMessageBox>namespace Ui {
class Widget;
}class Widget : public QWidget
{Q_OBJECTpublic:explicit Widget(QWidget *parent = nullptr);~Widget();private://创建数据库void createDB();//创建数据表void createTable();//查询void queryTable();private slots://插入void on_insertButton_clicked();//删除void on_deleteButton_clicked();//修改void on_updateButton_clicked();//排序void on_sortButton_clicked();void on_findButton_clicked();private:Ui::Widget *ui;QSqlDatabase db;//建立和数据库连接QSqlQueryModel model;//保存结果集
};#endif // WIDGET_H

widget.cpp

#include "widget.h"
#include "ui_widget.h"
#include<QSqlQuery>
//实现增删改查操作
Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);createDB();createTable();queryTable();
}Widget::~Widget()
{delete ui;
}//创建数据库
void Widget::createDB()
{//添加数据库驱动db=QSqlDatabase::addDatabase("QSQLITE");//设置数据库名字(文件名)db.setDatabaseName("student.db");//打开数据库if(db.open()==true){qDebug()<<"创建/打开数据库成功!";}else{qDebug()<<"创建/打开数据库失败!";}}void Widget::createTable()
{QSqlQuery query;QString str=QString("CREATE TABLE student (""id INT PRIMARTY KEY NOT NULL,""name TEXT NOT NULL,""score REAL NOT NULL)");if(query.exec(str)==false){qDebug()<<str;}else {qDebug()<<"创建数据表成功!";}}void Widget::queryTable()
{QString str=QString("SELECT * FROM student");model.setQuery(str);ui->tableView->setModel(&model);}
//插入
void Widget::on_insertButton_clicked()
{QSqlQuery query;int id=ui->idEdit->text().toInt();//错误提示if(id==0){QMessageBox::critical(this,"Error","ID输入不能为空!");return;}QString name=ui->nameEdit->text();//错误提示if(name==""){QMessageBox::critical(this,"Error","姓名输入错误!");return;}double score=ui->scoreEdit->text().toDouble();if(score<0 ||score>100){QMessageBox::critical(this,"Error","成绩输入错误!");return;}QString str=QString("INSERT INTO student VALUES(%1,'%2',%3)").arg(id).arg(name).arg(score);if(query.exec(str)==false){qDebug()<<str;}else{qDebug()<<"插入数据成功!";queryTable();}}
//删除:根据id删除一条数据
void Widget::on_deleteButton_clicked()
{QSqlQuery query;int id=ui->idEdit->text().toInt();QString str=QString("DELETE FROM student WHERE id=%1").arg(id);//删除提醒if (QMessageBox::question(this,"删除","确定要删除吗?",QMessageBox::Yes|QMessageBox::No)==QMessageBox::No){return;}if(query.exec(str)==false){qDebug()<<str;}else{qDebug()<<"删除数据成功!";queryTable();}}
//修改根据id修改成绩
void Widget::on_updateButton_clicked()
{QSqlQuery query;int id=ui->idEdit->text().toInt();double score=ui->scoreEdit->text().toDouble();QString str=QString("UPDATE student SET score=%1 WHERE id=%2").arg(score).arg(id);if(query.exec(str)==false){qDebug()<<str;}else{qDebug()<<"修改数据成功!";queryTable();}}
//排序
void Widget::on_sortButton_clicked()
{//获取排序列名QString value=ui->valuecomboBox->currentText();//获取排序方式QString condition;if(ui->condcomboBox->currentIndex()==0){condition="ASC";//升序}else{condition="DESC";//降序}QString str=QString ("SELECT * FROM student ORDER BY %1 %2").arg(value).arg(condition);//查询和显示model.setQuery(str);ui->tableView->setModel(&model);}void Widget::on_findButton_clicked()
{//获取排序列名int id =ui->idEdit->text().toInt();QString str=QString ("SELECT * FROM student WHERE id=%1 ").arg(id);//查询和显示model.setQuery(str);ui->tableView->setModel(&model);}

更多推荐

基于SQLITE的简易学生管理界面

本文发布于:2024-03-08 00:48:34,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1719398.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:简易   界面   学生   SQLITE

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!