sql 简单的数据插入问题?

首先说明,这个笔者2年前学习SQL的遗漏下来的笔记,由于参加完腾讯的笔试,内容比较偏向数据机构和编译以及数据库,刚好要换台本本,心里不想把它弄死在硬盘里,觉得蛮好的,所以把它都分享了,主要第一部分简单介绍SQL语言,第二部分简单实践,纯属于简单类似的记录,通俗易懂,希望对学习数据库原理的同学有一定的帮助!
大家都知道SQL是结构化查询语言,是关系数据库的标准语言,是一个综合的,功能极强的同时又简洁易学的,它集级数据查询(Data Quest),数据操纵(Data Manipulation),数据定义(Data Definition),数据控制(Data Control)于一体 即:
SQL语言包含4个部分:
  ※ 数据操作语言(DML),例如:INSERT(插入)、UPDATE(修改)、DELETE(删除)语句
  ※ 数据查询语言(DQL),例如:SELECT语句
  SQL语言包括三种主要程序设计语言类别的语句:数据定义语言(DDL),数据操作语言(DML)及数据控制语言(DCL)
现在说说SQL的几个基本概念:
基本表:本身独立存在的一个表,一个关系就是对应一个基本表
内模式:存储文件的逻辑结构组成了关系数据库的内模式
视图:从一个或几个基本表导出的表,他是一个虚表
建一个数据库,包含“学生表”,“教员表”,“任课表”,“专业表”,“课程表”,“学生个人情况表”,“成绩表”七张表
下面几个表是我们这次实践要用到的表: 用SQL语句建表:

创建一个名为tb_renke的任课表

创建一个名为tb_major的专业表

创建一个名为tb_course的课程表

创建一个名为tb_grade的成绩表

现在向每一张表插入记录

}
  • 通过操作结构体对象,来达到操作数据库表的目的。
  • 通过结构体对象,来生成数据库表。
  • 不同开发者,书写的 SQL 语句执行效率不同。

gorm 连接数据库、建表

 
go语言中有两个特殊函数: —— 首字母小写,包外可见
  • init() —— 当导包,但没有在程序中使用。 在main() 调用之前,自动被调用。
 
 
 
 

初始化全局变量, 接收句柄
// 创建全局连接池句柄
 

    
 
使用连接池句柄
--- 对比redis连接池:不需要使用 Get() 方法,取一条连接。

    
 
 
 
 
再执行SQL语句、gorm访问MySQL 使用 北京时间。

gorm 操作数据库数据

 
 // 先创建数据 --- 创建对象
 // 插入(创建)数据
 
  • 插入数据时,使用的 create() 函数,传参时,必须传入 &对象。 如果遗漏 “&” 会报错

  

  

  

  
 

Save(): 根据主键更新。如果数据没有指定主键,不更新,变为 “插入”操作。


  

  

  

  

删除:物理删除。真正的执行 Delete。

软删除:逻辑删除。不真正删。不执行Delete。

  • 创建表时,在表中添加一个 “删除字段” 。当需要删除时,更新 “删除字段”, 更新为true
  • 查询时,不查询 “删除字段” 为 null 的值。
// Model 表由 mysql自动维护,不需要我们手动维护。
// 使用 Delete() 参数,指定要删除的数据所在表的表名。

在 gorm 框架中,执行 查询语句:


  

想查询“软删除”的数据:


  

  

结论:修改表属性,只能在第一次建表的时候,有效!或者给表增加新字段的时候,有效!其他场景,修改表属性 ,在 gorm 操作中,无效!

默认MySQL数据库 有 3 种时间:

如果必须使用 MySQL 数据库特有的 “数据类型”, 使用 “type” 关键字来设置。


到此这篇关于gORM操作MySQL的实现的文章就介绍到这了,更多相关gORM操作MySQL内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

}

我要回帖

更多关于 sql引用了无效的表 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信