QT 之 Mysql

最近在GitHub上下载了一个QT图书管理项目,主要用于学习Mysql数据库的使用,在此分享以下学习笔记。

SQL 包含以下 4 部分:

1)数据定义语言(Data Definition Language,DDL)

用来创建或删除数据库以及表等对象,主要包含以下几种命令:

  • DROP:删除数据库和表等对象
  • CREATE:创建数据库和表等对象
  • ALTER:修改数据库和表等对象的结构

2)数据操作语言(Data Manipulation Language,DML)

用来变更表中的记录,主要包含以下几种命令:

  • SELECT:查询表中的数据
  • INSERT:向表中插入新数据
  • UPDATE:更新表中的数据
  • DELETE:删除表中的数据

3)数据查询语言(Data Query Language,DQL)

用来查询表中的记录,主要包含 SELECT 命令,来查询表中的数据。

4)数据控制语言(Data Control Language,DCL)

用来确认或者取消对数据库中的数据进行的变更。除此之外,还可以对数据库中的用户设定权限。主要包含以下几种命令:

  • GRANT:赋予用户操作权限
  • REVOKE:取消用户的操作权限
  • COMMIT:确认对数据库中的数据进行的变更
  • ROLLBACK:取消对数据库中的数据进行的变更

QT连接Mysql的代码如下:

    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");  //MySQL驱动
    db.setDatabaseName("BookShop");                         //数据库名
    db.setHostName("localhost");                            //数据库所在主机IP,此处数据库保存在本地
    db.setPort(3306);                                       //端口号
    db.setUserName("root");                                 //登陆用户名
    db.setPassword("123456");                             //登陆密码
    if(!db.open())
    {
        qDebug() << "open fail\n" << db.lastError().driverText() << "\n";
        return false;
    }

上面对于数据库的配置可以参考Mysql客户端的配置

QT与Mysql链接成功后,即可使用Mysql语句访问数据库了。

Mysql的基本增删查改

添加一条记录:新增会员信息

insert into VIP(Name, Sex, Birthday, Telephone, Email, Score, Level) values(‘张三’, ‘男’, str_to_date('2000/1/1', '%Y/%m/%d'), '123456789000', '123@qq.com', 50, 1)

删除一条记录:删除id = 5的会员

delete from VIP where id = 5

查询一条记录:从表VIP中查询id = 1的会员信息

select * from VIP where id = 1

从表VIP中查询会员名字,并且以id号排序

select name from VIP order by id

修改一条记录:更新ISBN = '978-7-5399-7181-0'的书籍的库存量为50

update Book set Storage = 50 where ISBN = '978-7-5399-7181-0'

模糊查询:实现按书名模糊匹配

select * from book where Name Like '%天才%'

分组:查询自日期1990-1至2020-1的月收入

select Year,Month,Sum(Income) from daily_revenue group by str_to_date(concat(Year,'-',Month),'%Y-%m') having str_to_date(concat(Year,'-',Month),'%Y-%m') >= str_to_date('1900-1','%Y-%m') and str_to_date(concat(Year,'-',Month),'%Y-%m') <= str_to_date('2020-1','%Y-%m')

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值