1. window安装可视化软件SQLite Expert Professional 5 - 64bit
2. 程序
pro文件中添加 QT += sql widget.h #ifndef WIDGET_H #define WIDGET_H #include#include #include #include QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACE class Widget : public QWidget { Q_OBJECT public: Widget(QWidget *parent = nullptr); ~Widget(); private slots: void on_pushButton_clicked(); void on_pushButton_2_clicked(); void on_pushButton_3_clicked(); void on_pushButton_4_clicked(); private: Ui::Widget *ui; QSqlDatabase d; QSqlQuery query; }; #endif // WIDGET_H widget.cpp #include "widget.h" #include "ui_widget.h" #include Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget) { ui->setupUi(this); d = QSqlDatabase::addDatabase("QSQLITE"); d.setDatabaseName(QApplication::applicationDirPath() + "/scooters.db"); if(!d.open()) { QMessageBox::warning(NULL, "database error", d.lastError().text()); } query = QSqlQuery(d); } Widget::~Widget() { delete ui; } //增 void Widget::on_pushButton_clicked() { //清空表 query.exec("DROP TABLE students"); //创建一个students表, 标题分别为id,name,score,class query.exec("CREATE TABLE students(" "id INTEGER PRIMARY KEY AUTOINCREMENT, " "name VARCHAr(40) NOT NULL, " "score INTEGER NOT NULL, " "class VARCHAr(40) NOT NULL)"); //导入单一数据 query.exec("INSERT INTO students(name, score, class) " "VALUES('张三', 85, '初2-1班')"); //批量导入数据 QStringList names; names<<"小A"<<"小B"<<"小C"<<"小D"<<"小E"<<"小F"<<"小G"<<"小H"<<"小I"<<"小J"<<"小K"<<"小L"<<"小M"<<"小N"; QStringList classes; classes<<"初2-1班"<<"初2-2班"<<"初2-3班"<<"初2-4班"; query.prepare("INSERT INTO students(name, score, class) " "VALUES(:name, :score, :class)"); foreach(QString name, names) { query.bindValue(":name", name); query.bindValue(":score", (qrand() % 101)); query.bindValue(":class", classes[qrand()%classes.length()]); query.exec(); //加入库中 } ui->label->setText("数据库数据添加完成"); } //查 void Widget::on_pushButton_2_clicked() { QString mm; query.exec("SELECT * FROM students WHERe score >= 60 AND score <= 100"); while (query.next()) { QString id = query.value(0).toString(); QString name = query.value(1).toString(); QString score = query.value(2).toString(); QString classs = query.value(3).toString(); mm += id + " " + name + " " + score + " " + classs + "n"; } ui->label->setText(mm); } //删 void Widget::on_pushButton_3_clicked() { query.exec("DELETe FROM students WHERe id = 3;"); ui->label->setText("删除id=3的学生"); } //改 void Widget::on_pushButton_4_clicked() { query.exec("ALTER TABLE students RENAME TO new_students");//将students重命名为new_students query.exec("ALTER TABLE new_students ADD COLUMN 结果 VARCHAr(10)"); //向new_students中添加新的一列 标题为结果 内容格式为VARCHAR // query.exec("UPDATE new_students SET score = 100, name = '小A"); // 修改score和name所在的列内容 query.exec("UPDATE new_students SET 结果 = '不合格' WHERe score < 60"); query.exec("UPDATE new_students SET 结果 = '合格' WHERe score >= 60"); ui->label->setText("修改数据完成"); }
3.运行截图



