57黑马QT笔记之数据库的语句执行--插入(包括SQL语句的增删改查和复制表结构)

2023-10-26

57黑马QT笔记之数据库的语句执行–插入

概念:
1)回滚:也就是我们常见的事务回滚;例如当我要删除某个数据库时,我开启了一个事务,然后再弹出一个对话框给你,是否提交事务,或者作出事务的回滚,也就是说取消了这个删除的操作,并不会执行到删除数据库。 下一篇的删除我们就会说到事务的回滚操作了。

2)前提:
前一篇我们说到如何在Qt下连接数据库,当我们使用添加某个数据库函数时,他可以有第二个参数,例如

QSqlDatabase mySql = QSqlDatabase::addDatabase("MYSQL","aa");
QSqQuery query(mySql);
//第二条语句的SQL语句必须加上参数mySql.否则SQL语句无法执行
//但一般只用一个数据时,你没必要使用;或者说你使用多个时也没必要使用,只要你更改相应的数据库,然后执行相应的语句就行。

1 SQL语句在Qt下的执行
1)很简单,只需要定义一个QSqQuery类语句执行的对象即可。例如,

   QSqlQuery query1;
   query1.exec("create table student(id int primary key auto_increment,name varchar(255),age int,score int);"); //255不能为中括号
   query1.exec("insert into student(id,name,age,score) values(2,'关羽',44,0);"); //sql字符串为单引号
   query1.exec("truncate student;"); //它与delete只是清除内容,不会删除表
   //1)truncate:只删除数据,而不删除表的结构,不能回滚.
   //2)delete:加where时可以单独删除(删全部也是循环单独删除,可以回滚) .和1一样,只删除数据,而不删除表的结构.
   //3)drop:会删除对应结构,但数据不会被删除,但是变成不可用.

2)下面直接给出数据库的常见增删改查执行语句:
1)数据库的创建和删除;
2)表的创建和删除;
3)表的插入;
4)数据库的更新
5)当前使用哪个数据库;
6)数据库的查询;
7) mysql复制一个表的结构和数据或者创建一个新表全复制旧表的结构(不包含数据);

// 1 创建一个名称为car的数据库 和 删除数据库car
create database car;
drop database car;

// 2 创建表 和 删除brand表
create table brand (id int primary key auto_increment, factory varchar(255), name varchar(255), price int, sum int, sell int, last int); // 其中id设置为主键 唯一id区别行
drop table brand;

// 3 插入数据 (多种变量和值一起插入)
insert into brand(factory,name,price,sum, sell, last) values('一汽大众', '奥迪A6', 36, 50, 8, 42);
insert into brand(factory,name,price,sum, sell, last) values('一汽大众', '捷达',   10, 80, 4, 76);
insert into brand(factory,name,price,sum, sell, last) values('一汽大众', '奔驰',   83, 40, 6, 34);
insert into brand(factory,name,price,sum, sell, last) values('二汽神龙', '毕加索', 39, 50, 6, 44);
insert into brand(factory,name,price,sum, sell, last) values('二汽神龙', '富康',   28, 60, 5, 55);
insert into brand(factory,name,price,sum, sell, last) values('二汽神龙', '标致307',27, 70, 4, 66);
insert into brand(factory,name,price,sum, sell, last) values('上海大众', '桑塔纳', 25, 75, 2, 73);
insert into brand(factory,name,price,sum, sell, last) values('上海大众', '帕萨特', 27, 65, 10, 55);

// 4 更新数据
update brand set sell=5 , last=70 where factory='上海大众' and name='桑塔纳';
update gGlobalUpLevelAwardData set "序列号的字符串" where serverId = 3;  // 更新服务器id=3的行的字段gGlobalUpLevelAwardData的数据,gGlobalUpLevelAwardData是个表来的

UPDATE dh_dvrinfo_test SET status = 2 WHERE id = '66';//dh_dvrinfo_test为一个表名

// 5 使用数据库car
use car;

// 6 数据库的查询 非常常用
//SELECT 要查询的列名 FROM 表名 WHERE 限制条件;  //关键字忽略大小写
select * from brand where serverId = 3; // 查询所有服务器Id=3的行
select name,age from brand; // 查询表brand的name,age字段(列)
select name,age from brand where age>25; // 查询name,age字段,并且要求该行的age字段大于25.

// 7 mysql复制一个表的结构和数据或者创建一个新表全复制旧表的结构(不包含数据)
// 1)复制表结构和数据(列属性没有复制过去)
CREATE TABLE new_table SELECT * FROM old_table;
// 2)复制表结构,全复制
CREATE TABLE new_table LIKE old_table;

//8 查看数据库下与时间有关的全局变量
show global variables like "%time%";//主要为了查看数据库的最大连接时长,如何处理连接时不做事情,与服务器断开,然后想办法重连
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

57黑马QT笔记之数据库的语句执行--插入(包括SQL语句的增删改查和复制表结构) 的相关文章

  • 如何在 MySQL 中创建查询以根据日期和独特字段减去连续行?

    基于SQL根据日期和另一列减去两行 https stackoverflow com questions 12310221 sql subtract two rows based on date and another column我有一个好
  • VB.NET 和 MySql UPDATE 查询

    我的代码在这里没有错误 至少在我调试它时没有错误 我使用VS 2010 但我希望发生的是 当我单击添加按钮时 文本框 txtQty 中的数字将添加到当前保存在 数量 列中的数字中 例如 txtQty 100 该列上的当前值为 200 我想将
  • 使用 PHP 显示 Mysql 中的图像

    这就是我的数据库中的表的样子 我正在尝试显示我存储的图像 它是 mimetype longblob 当我运行代码时 它会给我一个带有 的小框 没有错误 只是那个框 有谁知道错误是什么以及如何修复它 Display Index Display
  • 重新启动我的 sql 时,jenkins 失败“sudo:不存在 tty,并且未指定 Askpass 程序 抱歉,请重试。”

    我刚刚配置了 jenkins 在预构建步骤中我尝试重新启动 jenkins 但最终出现以下错误 Commencing build of Revision c5b9f8daac092efc5396d80f568a2cf89ae8b697 or
  • 如何启用对 MySQL 服务器的外部访问? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 如何启用对 MySQL 服务器的外部访问 我可以在本地连接 但无法从网络上的另一个盒子进行连接 我刚刚尝试过 grant all privileges
  • 判断是否存在多对多记录组合

    这似乎是一个常见的任务 有一个简单的解决方案 但我在 StackOverflow 和 Google 上都空手而归 场景是这样的 我有两个共享多对多关系的表 A 和 B 因此 我有一个带有外键的表 A B 它映射 A 到 B 记录关系 标准的
  • 使用java在mysql中插入带有\\的文件路径

    我正在使用java制作一个独立的应用程序 并且我需要插入用户从文件选择器中选择的图像的路径 我正在获取文件的路径 但是当我将其存储在数据库 mysql 中时 它不会存储 所以当我检索该路径时 该文件不会显示 如何存储文件的路径 这样就可以使
  • 错误:SQLSTATE[HY000] [2002] 无法建立连接,因为目标计算机主动拒绝连接

    当我调试代码时突然发生错误 它有一系列关于数据库连接的错误 ERROR SQLSTATE HY000 2002 No connection could be made because the target machine actively
  • MySQL 行级锁

    我不确定行级锁是如何工作的 但这是我的问题 我有一个表 T id int balance int engine InnoDB 我想锁定 ID 1 的行 所以我开始一个像这样的事务 start transaction select from
  • Yii2 从 MySQL 中的表登录的分步指南

    我开始在 Yii2 中迈出第一步 到目前为止 我已经能够编写一个应用程序并将数据库中的表连接到它 就像我在 Yii1 中学到的那样 该表是contacts我的创建视图中的表单将数据发送到数据库 没有任何问题 问题是我只能在 Yii2 内置的
  • 如何设置 Hibernate 读取/写入不同的数据源?

    使用 Spring 和 Hibernate 我想写入一个 MySQL 主数据库 并从基于云的 Java Web 应用程序中的另一个复制从属数据库中读取数据 我找不到对应用程序代码透明的解决方案 我真的不想更改我的 DAO 来管理不同的 Se
  • 保护存储过程

    我想知道是否有一种方法可以对某些用户隐藏存储过程的文本 我正在使用 MySQL 5 1 48 和 Net Connector 6 2 3 以及 Visual Studio 2008 SP1 我在 MySQL 中有两个用户 一个是 root
  • Laravel 4 - JOIN - 相同的列名

    我目前使用此代码从数据库中检索所需的数据 query DB table packages gt join assigned packages function join use id join gt on packages id assig
  • MySQL查看数据是否为NULL

    我需要在 Select 中放置一个 Case 来检查我添加到视图中的数据是否为 NULL 在这种情况下我希望它只输入零 或者不输入零 你的意思是这样的吗 SELECT IF field IS NULL 0 field 还有 IFNULL S
  • 将歌词存储在 MySQL 数据库中

    我想知道在 mysql 数据库中存储音乐 歌词 的最佳方式是什么 以及用于此目的的设置是什么 另外 我想要表格来存储断线 我正在考虑使用 指示新行并使用 php 替换字符串 我不知道从哪里开始 或者使用什么参数 varchar int 我知
  • 插入MYSQL时自动初始化GETDATE()

    类似问题 https stackoverflow com questions 17700239 mysql column automaticly current time of insert w3schools 也许有用的链接 http w
  • MySQL Spatial CONTAINS 显示错误结果

    我的 MySQL 空间搜索有一个奇怪的行为 我在 GEOM 字段 葡萄牙边界 中创建了一个多边形 然后我尝试在内部找到一个点 发现没问题 下一次尝试是查找多边形外部的点 但查询仍返回 1 个找到的行 请帮忙 我做错了什么 为什么它会找到多边
  • 如何从java中的字符串时间戳中提取日期和时间

    我正在获取日期和时间String TIMESTAMP来自服务器的 MySQL 格式如下 2014 02 15 05 18 08 我想要的是提取日期DD MM YYYY格式和时间HH MM SS AM PM格式 而且这个时间戳的时区是不同的
  • 如何在函数内部使用 require_once [重复]

    这个问题在这里已经有答案了 你好 我想在函数内使用 require once 但不起作用 实际上我的页面中有三个函数我该怎么做 它在外面工作但不在函数内部 请问有谁吗 这是我的代码
  • 为什么有时自增列的值会有一个或多个间隙?

    我有一个这样的表 colors id color 1 red 2 blue id column is auto increment PK 当我向该表中插入一些新值时 有时会出现一些间隙id柱子 像这样的事情 INSERT INTO colo

随机推荐

  • 利用MultipartFile实现文件上传

    利用MultipartFile实现文件上传 在java中上传文件似乎总有点麻烦 没 net那么简单 记得最开始的时候用smartUpload实现文件上传 最近在工作中使用spring的MultipartFile实现文件上传 感觉挺简单 在这
  • ansible笔记3--playbook windows基础

    ansible笔记3 playbook windows基础 1 介绍 2 常见案例 3 注意事项 4 说明 1 介绍 笔者在前文 ansible笔记2 ansible windows基础 中已经介紹了Windows下的环境配置以及对应的 a
  • Vue上传功能:****.upload.addEventListener is not a function

    VUE上传功能本地上传正常 打包上传nginx后报错TypeError upload addEventListener is not a function 解决方法 方法一 查找两个文件添加如下代码 MockXMLHttpRequest p
  • 前端新手——适配不同手机端页面的方案,动态查询dpr设置根元素font-size

    首先 说句题外话 博主只是个前端菜鸟 本片文章根据网上众多大神的文章 请教大神前辈 实践得出的一个总结 水平有限 说的不对的地方还请各位看官多多指教 言归正传 最近博主的公司交给博主一项任务 搭建公司产品的wap页面 然后还是独立完成 再然
  • C#中的属性和字段的区别

    属性和字段的区别和联系 问题 C 语法中针对类中数据成员的访问引见的属性和字段概念和C 相比 C 中只要属性 觉得相当于于C 中的字段 但是在运用C 过程中 假入本人要写一个类 包含几个数据成员 即字段 但是为了让外边能够访问还需求写对应的
  • 死锁的成因和解决方案

    目录 一 死锁是什么 二 死锁的成因 三 死锁三个经典场景 1 一个线程一把锁 2 两个线程两把锁 3 N个线程M把锁 四 死锁解决方案 一 死锁是什么 死锁是指两个或多个进程因竞争系统资源而陷入无限等待的状态 使得它们都无法继续执行 当多
  • oracle查看表空间占用的大小情况

    1 查看一个用户所占的空间大小 用该用户登录 select sum bytes 1024 1024 MB from user extents u 2 查看表空间还剩多少用 还能看每文件情况 select b file id 文件ID b t
  • Python多进程爬取电影信息

    观察翻页时详情页面url地址变化规律 import json from os import makedirs from os path import exists import requests import logging import
  • 几款ZooKeeper可视化工具,最后一个美炸了~

    本文首发于公众号 BiggerBoy 欢迎关注 ZooKeeper是我们工作中常用一个开源的分布式协调服务 提供分布式数据一致性解决方案 分布式应用程序可以实现数据发布订阅 负载均衡 命名服务 集群管理分布式锁 分布式队列等功能 当我们想通
  • 域控之DNS转发器

    系统环境 Windows Server 2012 R2 Datacenter 现象 将域环境中的主机的DNS服务器地址指向网关时 访问外网正常 将DNS服务器地址指向指向域控后 可能出现无法访问外网或者访问外网缓慢的现象 原因 1 域控上的
  • Linux/Windows输入的命令太长,不方便查看的解决方法

    Linux Windows输入的命令太长 不方便查看的解决方法 不关是在Linux系统还是在Windows的DOS命令下 如果我们要输入的命令很长 很不方便去查看 解决这一问题的方法就是将一条命令分成几行来写 Linux中 使用符号 如 b
  • R语言第六次课堂小测 高级绘图

    题目1 用lattice画出所要求的的图 数据集 鸢尾花 library lattice attach iris g1 lt xyplot Petal Length Petal Width Species g2 lt xyplot Peta
  • 各种log的加载过程

    1 概述 现在的log框架越来越多 目前我们系统用有使用的包括commons logging log4j slf4j 还有 一个号称更快的logback暂时基本没有用到 而这些log系统又常常依赖于一些jar包顺序和静态配置 导致比较混乱
  • 分号与逗号的区别及举例_顿号和逗号的区别

    顿号和逗号的区别2019 09 24 14 26 33文 宋则贤 顿号和逗号指代不同 顿号是并列的词或词组之间的停顿 逗号把句子切分为意群 表示小于分号大于顿号的停顿 顿号和逗号在用法上也有所不同 一 总的要求 字数较多时 用逗号 字数较少
  • React——路由Route

    文章目录 路由 一 Web 分类 前端渲染与后端渲染 二 Route 介绍 三 安装环境 四 Route 组件介绍 五 Route 组件应用 六 路由的前端渲染 七 url 中传递参数 1 斜杠型参数化路由 2 问号型参数化路由 八 重定向
  • VS2015项目属性配置中的变量设置

    关于VS的项目属性配置 很长时间都没有去细究关于各种定义的意义 比如说 outDir这样的东西以前没有细细追究过原因 这次都一并做个记录 1 常规页签 是对各个变量的解释输出目录 OutDir 中间目录 IntDir 目标文件名 Targe
  • 【个人笔记】一篇搞定js异步输出问题-浅分析(好理解)

    小试牛刀 来几个简单的异步问题引出易错小知识点 一 Promise Question1 new Promise resolve gt console log promise then function console log promise
  • PyQt5-窗口

    分类 在Qt中 生成窗口有三种方式 QWidget QMainWindow QDialog QWidget 控件和窗口的父类 自由度高 什么都东西都没有 没有划分菜单 工具栏 状态栏 主窗口 等区域 import sys from PyQt
  • uint8_t / uint16_t / uint32_t /uint64_t 这些数据类型是什么?

    uint8 t uint16 t uint32 t uint64 t 都是别名 c语言中有哪些数据类型 怎么样取别名 在C语言中有6种基本数据类型 short int long float double char 1 数值类型 1 整型 s
  • 57黑马QT笔记之数据库的语句执行--插入(包括SQL语句的增删改查和复制表结构)

    57黑马QT笔记之数据库的语句执行 插入 概念 1 回滚 也就是我们常见的事务回滚 例如当我要删除某个数据库时 我开启了一个事务 然后再弹出一个对话框给你 是否提交事务 或者作出事务的回滚 也就是说取消了这个删除的操作 并不会执行到删除数据