当前位置: 首页 > news >正文

徐州网站开发园林景观设计公司年度运营方案

徐州网站开发,园林景观设计公司年度运营方案,深圳p2p网站建设,厦门seo关键词排名目录 数据库 数据库基本概念 常用的数据库 SQLite3基础 SQLite特性#xff1a; QT连接数据库 1.1 QT将数据库分为三个层次 1.2 实现数据库操作的相关方法 sql语句#xff08;常用#xff09; 1#xff09;创建表格 2#xff09;删除表格 3#xff09;插入记录 …目录 数据库 数据库基本概念 常用的数据库 SQLite3基础 SQLite特性 QT连接数据库 1.1 QT将数据库分为三个层次 1.2 实现数据库操作的相关方法 sql语句常用 1创建表格 2删除表格 3插入记录  4查看记录  5修改记录  6删除记录  7主键primary key 8拷贝  9增加列  10修改表名  11修改字段名列名  12删除列  通过数据库实现简易的学生管理系统 ui界面 配置文件 头文件 (.h文件)  源文件 main.cpp文件 实现效果  数据库 数据库基本概念 数据Data 能够输入计算机并能被计算机程序识别和处理的信息集合数据库 Database 数据库是在数据库管理系统管理和控制之下存放在存储介质上的数据集合 常用的数据库 1大型数据库Oracle公司是最早开发关系数据库的厂商之一其产品支持最广泛的操作系统平台。目前Oracle关系数据库产品的市场占有率名列前茅。IBM 的DB2是第一个具备网上功能的多媒体关系数据库管理系统支持包Linux在内的一系列平台。中型数据库Server是微软开发的数据库产品主要支持windows平台。 2小型数据库mySQL是一个小型关系型数据库管理系统开发者为瑞典MySQL AB公司2008年被Sun公司收购开放源码。 3基于嵌入式的数据库 基于嵌入式Linux的数据库主要有SQLite, Firebird, Berkeley DB, eXtremeDBFirebird是关系型数据库,功能强大,支持存储过程、SQL兼容等SQLite关系型数据库,体积小,支持ACID事务Berkeley DB中并没有数据库服务器的概念它的程序库直接链接到应用程序中 eXtremeDB是内存数据库,运行效率高 SQLite3基础 www.sqlite.org SQLite的源代码是C其源代码完全开放。SQLite第一个Alpha版本诞生于2000年5月。 他是一个轻量级的嵌入式数据库。 SQLite特性 零配置一无需安装和管理配置储存在单一磁盘文件中的一个完整的数据库数据库文件可以在不同字节顺序的机器间自由共享支持数据库大小至2TB足够小全部源码大致3万行c代码250KB比目前流行的大多数数据库对数据的操作要快 QT连接数据库 1.1 QT将数据库分为三个层次 1 数据库驱动层QSqlDriver、QSqlDriverCreator、QSqlDriverCreatorBase、QSqlDriverPlugin 2 sql接口层QSqlDatabase、QSqlQuery、QSqlRecord、QSqlError 3 用户接口层提供一些模型QSqlQueryModel、QSqlTableModel、QSqlRelationalTableModel 1.2 实现数据库操作的相关方法 1、添加数据库[static] QSqlDatabase QSqlDatabase::addDatabase(QSqlDriver *driver, const QString connectionName QLatin1String(defaultConnection))QSQLITESQLite version 3 or above 2、设置数据库名称void QSqlDatabase::setDatabaseName(const QString name) 3、包含数据库bool QSqlDatabase::contains(const QString connectionName QLatin1String(defaultConnection)) 4、打开数据库bool QSqlDriver::open(const QString db) 5、关闭数据库void QSqlDatabase::close() 6、错误信息QSqlError QSqlDatabase::lastError()7、sql语句执行构造一个QSqlQuery类对象调用其成员函数exec执行sql语句bool QSqlQuery::exec(const QString query) 8、bool QSqlQuery::next()遍历查询结果的函数 sql语句常用 本项目使用sqlite3不区分大小写 1创建表格 create table 表名 (字段名 数据类型, 字段名 数据类型); create table if not exists 表名 (字段名 数据类型, 字段名 数据类型); ​ eg:CREATE TABLE stu (id int, name char, score float);CREATE TABLE if not exists stu1 (id int, name char, score float); ​ 注意数据库不支持严格的数据类型检查数据类型写错了创建是能够成功的不会有错误提示; 2删除表格 drop table 表名; ​ eg:drop table stu1; 3插入记录  字符串类型可以使用单引号也可以使用双引号 ​ 1) 全字段插入insert into 表名 values (数据1, 数据2, 数据3);eg:INSERT INTO stu VALUES (2, ls, 99);INSERT INTO stu VALUES (1, zs, 59);注意1.数据输入的顺序要与创建时候字段的顺序一致;2) 部分字段插入insert into 表名 (字段名1, 字段名2) values (数据1, 数据2);eg:INSERT INTO stu (id, name) values (9, ww);注意1.数据的顺序要与指定的字段名1字段名2对应; 4查看记录  .header on 打开表头 .mode column 对齐 在终端输入shell指令sqlitebrowser sq.db 图形化界面 ​ 1) 查看所有记录select * from 表名;eg:SELECT * FROM stu;2) 查看某几行select * from 表名 where 限制条件;逻辑与 and 逻辑或 oreg:SELECT * FROM stu WHERE id3 AND score90;SELECT * FROM stu WHERE id2 OR id3;3) 查看某几列select 字段1, 字段2 from 表名;select 字段1, 字段2 from 表名 where 限制条件;eg:SELECT id, name FROM stu;SELECT id, name FROM stu WHERE score90; 5修改记录  update 表名 set 字段数值 where 限制条件; ​ eg:UPDATE stu SET score60 WHERE id1; 6删除记录  delete from 表名 where 限制条件; ​ eg:DELETE FROM stu WHERE id1;delete from stu; 删除表格中的所有数据; 7主键primary key primary key 主键; create table 表名(字段名 数据类型 primary key, 字段名 数据类型); primary key主键唯一标识表格中的每一条记录例如id字段为主键当表格中有id1的记录时不允许再插入id为1的记录了; egCREATE TABLE stu (id int PRIMARY KEY, name char, score float); ​ 注意主键的值必须唯一。每一张表格都应该设置一个主键而且只能设置一个。 8拷贝  从a中拷贝所有数据到b中create table b as select * from a; 从a中拷贝指定字段到b中create table b as select 字段字段字段 from a; ​CREATE TABLE stu1 AS SELECT * FROM stu;CREATE TABLE stu2 AS SELECT id, name, score FROM stu; 9增加列  alter table 表名 add column 字段名 数据类型;alter table stu add column score int; 10修改表名  alter table 旧表名 rename to 新表名;alter table stu rename to stuinfo; 11修改字段名列名  不支持直接修改列名 1.将表重新命名a改成balter table stuinfo rename to stu; 2.新建修改名字后的表新建一个acreate table stuinfo (name char, age1 int, sex char, score int); 3.从旧表b中取出数据插入到新表a中;insert into stuinfo select * from stu; 12删除列  不支持直接删除列; 1.创建一个新表b,并复制旧表a需要保留的字段信息;create table stu as select name, age1, sex from stuinfo; 2.删除旧表a;drop table stuinfo; 3.修改新表b的名字a;alter table stu rename to stuinfo; 通过数据库实现简易的学生管理系统 ui界面 配置文件 头文件 (.h文件)  #ifndef WIDGET_H #define WIDGET_H#include QWidget #include QSqlDatabase //数据库类 #include QSqlQuery //执行sql语句对应的类 #include QSqlRecord //记录类 #include QMessageBox //消息对话框类 #include QDebug #include QSqlError QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent nullptr);~Widget();private slots:void on_loginButton_clicked();void on_showButton_clicked();void on_findButton_clicked();void on_deleButton_clicked();void deletelist(); //清空内容函数private:Ui::Widget *ui;//定义一个数据库对象QSqlDatabase db; }; #endif // WIDGET_H源文件 #include widget.h #include ui_widget.hWidget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui-setupUi(this);//判断数据库对象是否包含了自己使用的数据库 Student.db//如果没有这个数据库就需要添加一个数据库if(!db.contains(Student.db)){//添加一个数据库//函数原型 static QSqlDatabase addDatabase(QSqlDriver* driver);//参数数据库的版本//返回值添加的数据库db QSqlDatabase::addDatabase(QSQLITE); //表明用的是sqlite3及以上版本的数据库//给数据库命名db.setDatabaseName(Student.db);}//打开数据库if(!db.open()){QMessageBox::information(this, 提示, 数据库打开失败);return;}//此时说明数据库已经创建出来并打开了就可以创建数据表了//创建数据表需要使用sql语句需要使用QSQLQuerry类对象来完成//准备sql语句QString sql create table if not exists myTable(number integer primary key autoincrement, //序号自增id integer, //学号是整形name varchar(10), //学生姓名score integer, //成绩sex varchar(4)); //性别//定义语句执行者QSqlQuery querry;//使用querry执行sql语句if(!querry.exec(sql)){QMessageBox::information(this, 失败, 创建表失败);}else{QMessageBox::information(this, 成功, 创建表成功);} }Widget::~Widget() {delete ui; }void Widget::deletelist() {ui-idEDIT-clear();ui-nameEdit-clear();ui-sexEdit-clear();ui-scoreEdit-clear();ui-tableWidget-clear(); }//录入按钮对应的槽函数 void Widget::on_loginButton_clicked() {//获取ui界面中要存入数据库的字符串int ui_id ui-idEDIT-text().toInt(); //获取ui界面的学号QString ui_name ui-nameEdit-text(); //获取ui界面上的姓名int ui_score ui-scoreEdit-text().toInt(); //获取ui界面上的成绩QString ui_sex ui-sexEdit-text(); //获取ui界面上的性别if(ui_id0 || ui_name.isEmpty() || ui_score0 || ui_sex.isEmpty()){QMessageBox::information(this,提示,请将学生信息填写完整);return;}//准备sql语句QString sql QString(insert into myTable(id,name,score,sex)values(%1, \%2\, %3, \%4\)).arg(ui_id).arg(ui_name).arg(ui_score).arg(ui_sex);//定义语句执行者QSqlQuery querry;//使用querry执行sql语句if(!querry.exec(sql)){QMessageBox::information(this, 失败, 录入失败);}else{QMessageBox::information(this, 成功, 录入成功);deletelist();} } //展示按钮对应的槽函数 void Widget::on_showButton_clicked() {deletelist();//准备sql语句QString sql select * from myTable;//定义语句执行者QSqlQuery querry;//使用querry执行sql语句if(!querry.exec(sql)){QMessageBox::information(this, 失败, 展示失败);return;}//此时将查找到的所有结果全都放在querry对象中了//可以通过next函数不断遍历查询到的结果//querry.next()有数据为真否则为假int i 0; //用来记录行号while(querry.next()) //代表行{//遍历的就是任意一组记录queery.record// qDebug() querry.record(); //所有数据输出//要找到每条记录中的每个使用数据//qDebug() querry.record().value(2); //把第二列的数据输出//querry.record().value(2).toString(); //将记录的某一项的数据转变成字符串//获取从数据库中查询到的有几列 //数据项的个数//querry.record().count(); //返回当前记录对应数据项的个数//将数据库中的表格展示到ui界面//要传参行和列还要一个QTableWidgetItem的指针//ui-tableWidget-setItem()for(int j0; jquerry.record().count()-1; j){ui-tableWidget-setItem(i,j,new QTableWidgetItem(querry.record().value(j1).toString()));}i; //进行下一行}} //查找按钮对应的槽函数 void Widget::on_findButton_clicked() {QString sql QString(SELECT * FROM myTable WHERE id%1).arg(ui-idEDIT-text().toInt());//qDebug() sql;QSqlQuery querry;//使用querry执行sql语句if(!querry.exec(sql)){//qDebug() querry.lastError();QMessageBox::information(this, 失败, 查找失败);return;}deletelist();//此时将查找到的所有结果全都放在querry对象中了//可以通过next函数不断遍历查询到的结果//querry.next()有数据为真否则为假int i 0; //用来记录行号while(querry.next()) //代表行{for(int j0; jquerry.record().count()-1; j){ui-tableWidget-setItem(i,j,new QTableWidgetItem(querry.record().value(j1).toString()));}i; //进行下一行}} //删除按钮对应的槽函数 void Widget::on_deleButton_clicked() {QString sql QString(DELETE FROM myTable WHERE id%1).arg(ui-idEDIT-text().toInt());//qDebug() sql;QSqlQuery querry;//使用querry执行sql语句if(!querry.exec(sql)){//qDebug() querry.lastError();QMessageBox::information(this, 失败, 删除失败);return;}else{QMessageBox::information(this, 成功, 删除成功);deletelist();} } main.cpp文件 #include widget.h#include QApplicationint main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); }实现效果
http://www.zqtcl.cn/news/941743/

相关文章:

  • 360报危险网站注册界面设计
  • 不用淘宝客api如何做网站北京移动官网网站建设
  • 手表哪个网站做的好河北网站备案流程
  • 凡科做的网站推效果网站做seo第一步
  • 建设在线观看视频网站免费企业网站建设免费
  • 网站开发需要后台吗哪家建站公司好
  • 个人建设网站论文网站视频怎么做的
  • 不同类型的购物网站汉川网站建设
  • 网站开发需求文档范文广州公司网站托管
  • 网站制作公司官网首页撸撸撸做最好的导航网站
  • 网站建设毕业设计综述centos 安装wordpress lnmp
  • 济宁专业做网站网站建设中 html
  • 中国排名高的购物网站最新发布的手机2022
  • 备案的网站名与公司名称出国用哪个地图app好
  • 网站建设工作室图片文章资讯类网站
  • 深圳自助建站系统网站题目有哪些
  • 郑州做网站kuihuakeji软文发布的平台与板块
  • 一那个网站可以做一建题安全文化企业示范企业评价标准
  • 网站没有关键词收录phpstudy配置网站
  • 返利网站怎么做的做网站推广见客户的话术
  • 两个人看的视频在线观看成都网站seo厂家
  • 做汽车配件出口用什么网站好些微信朋友圈营销技巧
  • 怎样建设传奇网站空间什么做电子书下载网站
  • 自己怎么做dj 视频网站网站模板制作教程视频
  • 苏州瑞熙网站建设签名图片在线制作
  • 重庆建站模板大全给公司创建网站
  • king cms网站建设上海传媒公司有哪些
  • 优时代网站建设网站建设哪家公司最好
  • 做网站有多难平面设计学徒要学多久
  • 包装网站模板做西式快餐店网站