精华内容
参与话题
问答
  • 原生sql语句

    2020-04-02 17:46:44
    查询 //查询表里的所有数据 select * from 表名 //根据id等字段查询数据 select * from 表名 where 字段 = 值 or 字段 = 值 (例):select * from 表名 where id = 1 or name = admin; //模糊查询 ...
    查询表里的所有数据

    select * from 表名

    根据id等字段查询数据

    select * from 表名 where 字段 = 值 or 字段 = 值

    (例):select * from 表名 where id = 1 or name = admin;

    模糊查询

    like % 值%

    (例):select * from 表名 where 字段 like %值%; //前后匹配

    增加

    insert into 表名 (字段1,字段2) values (值1,值2);

    (例):insert into 表名 (‘id’,‘name’) values (’’,‘admin’);

    删除

    delete from 表名 where 字段=值;

    (例):delete from 表名 where id=1;

    delete from 表名 where id in (1,2,3);//批量删除

    truncate TABLE 表名;//清空表里的所有数据

    修改

    update 表名 set 字段=值,字段=值 where 字段=值;

    (例):update 表名 set name=‘1’ where id=1;

    排序

    asc 正序

    desc 倒序
    (例):select * from 表名 where id >1 order by id asc; //id大于1的从小到大排序

    指定位置查询

    limit
    (例):select * from 表名 where id limit 2,4;//根据id从第2条开始查询,查询4条

    指定条件查询

    in
    (例):select * from 表名 where id in (1,2); //查询id为1和2的数据

    指定范围查询

    beteeen …and…
    (例):select * from 表名 where id between 3 and 5; //从id三到五之间的数据,包括三五

    查询某个字段的平均值

    (例):select avg(字段名) from 表名;

    某个字段求和

    (例):select sum(字段名) from 表名;

    查询某个字段值最大的数据

    (例):select max(字段名) from 表名;

    查询某个字段值最小的数据

    (例):select min(字段名) from 表名;

    查询表里数据的总条数

    (例):select count(字段名) from 表名;

    展开全文
  • 原生SQL&非原生SQL

    千次阅读 2018-04-23 11:46:07
    原生SQL纯搬运工,参考概念用原生sql:数据库能直接执行的sql语句,比如能在oracle,mssql,mysql,db2等数据库中直接执行非原生sql:一般指根据指定的程序规则,自动生成的sql,比如最经典的,linq to sqlSQL查询...

    原生SQL&非原生SQL

    纯搬运工,参考概念用

    原生sql:数据库能直接执行的sql语句,比如能在oracle,mssql,mysql,db2等数据库中直接执行

    非原生sql:一般指根据指定的程序规则,自动生成的sql,比如最经典的,linq to sql

    SQL查询  

    • 原理:对用户撰写的SQL进行一层包装,添加更多分析功能。
      例如客户写的是select t.x  as Fa,  (t.x+t.y) as Fb from T where ....
      那么封装后就变成:       
      select Fa, Fb  //可以选择显示那些字段。
      from            
      (select t.x  as Fa,  (t.x+t.y) as Fb from T where ....  ) TX            
      where .... //报表展现中,可以设置过滤条件,就是靠修改的这部分SQL实现            
      order by ....//报表展现中,排序操作,就是靠修改的这部分SQL实现            
      group by ... //报表展现中,聚合小计操作,就是靠修改的这部分SQL实现          
    • 优势:在灵活分析的展现界面,还可以做排序,过滤,汇总等操作;          
    • 劣势:对SQL有书写要求,需要在用户sql中,显式申明别名;对SQL做多一层封装,对于某些数据库来说,可能效率会低一些;

    原生SQL查询 

    • 原理:不对用户的SQL做任何封装,直接提交到数据库。 
    • 优势:对SQL语法没有任何限制;速度更快; 
    • 劣势:不计算总行数;如果查询结果较大,用户可能不知道结果集大小;在灵活分析的展现界面,不支持排序、过滤、聚合等操作;

    展开全文
  • mysql原生sql盘点

    2018-12-17 15:41:00
    select*from (select*from test1 union all select*from test2 ...1、如果直接用如下sql语句是会报错:Incorrect usage of UNION and ORDER BY。 SELECT * FROM t1 WHERE username LIKE 'l%' ORD...

    select*from

    (select*from test1

    union all 

    select*from test2

    )

    //两个查询的数据行数需要对应一致,且名字as 一致。

    1、如果直接用如下sql语句是会报错:Incorrect usage of UNION and ORDER BY。

    SELECT * FROM t1 WHERE username LIKE 'l%' ORDER BY score ASC
    UNION
    SELECT * FROM t1 WHERE username LIKE '%m%' ORDER BY score ASC

    因为union在没有括号的情况下只能使用一个order by,所以报错,这个语句有2种修改方法。如下:

    (1)可以将前面一个order by去掉,改成如下:

    SELECT * FROM t1 WHERE username LIKE 'l%'
    UNION
    SELECT * FROM t1 WHERE username LIKE '%m%' ORDER BY score ASC

    该sql的意思就是先union,然后对整个结果集进行order by。

     

    (2)可以通过两个查询分别加括号的方式,改成如下:

    (SELECT * FROM t1 WHERE username LIKE 'l%' ORDER BY sroce ASC)
    UNION
    (SELECT * FROM t1 WHERE username LIKE '%m%' ORDER BY score ASC)

    这种方式的目的是为了让两个结果集先分别order by,然后再对两个结果集进行union。但是你会发现这种方式虽然不报错了,但是两个order by并没有效果,所以应该改成如下:

    SELECT * FROM
    (SELECT * FROM t1 WHERE username LIKE 'l%' ORDER BY score ASC) t3
    UNION 
    SELECT * FROM
    (SELECT * FROM t1 WHERE username LIKE '%m%' ORDER BY score ASC) t4

    也就是说,order by不能直接出现在union的子句中,但是可以出现在子句的子句中。

     

    2、顺便提一句,union和union all 的区别。

    union会过滤掉两个结果集中重复的行,而union all不会过滤掉重复行。

     

    (case

      when 条件(username is null) then 

        name 

      else

        username

    end)

    //可以放在select后面

    //表示子查询返回多行多列   (title,content,uid)  IN表示可以做多行多列进行对比

    SELECT * FROM article WHERE (title,content,uid) IN (SELECT title,content,uid FROM blog)

    //表示子查询一行多列 

    SELECT * FROM article WHERE (title,content,uid) = (SELECT title,content,uid FROM blog WHERE bid=2)

    any关键词的意思是“对于子查询返回的列中的任何一个数值,如果比较结果为TRUE,就返回TRUE”

    使用in进行子查询,这个我们在日常写sql的时候是经常遇到的。in的意思就是指定的一个值是否在这个集合中,如何在就返回TRUE;否则就返回FALSE了。

    all必须与比较操作符一起使用。all的意思是“对于子查询返回的列中的所有值,如果比较结果为TRUE,则返回TRUE”。

    mysql取当天数据 select uid from period where DATE_FORMAT(begin(时间字段),'%Y-%m-%d')=DATE_FORMAT(NOW(),'%Y-%m-%d')

     

    //在该字段的时间上减三十分钟 date_add(begin(时间字段),interval -30 minute)

    //在该字段的时间上加三十分钟 date_add(begin(时间字段),interval 30 minute)

     

    列表根据当前时间由近及远进行排序

    select
    cp.pkg_name,
    cp.play_type_id,
    p.uid as period_id,
    p.name as period_name,
    p.begin,
    p.time_length,
    p.video_file,
    (CASE
    WHEN p.`begin`>now() THEN
    p.`begin`-NOW()
    WHEN p.`begin`<NOW() then
    now()-p.`begin`
    END) time,
    (CASE
    WHEN p.`begin`>now() THEN
    0
    WHEN p.`begin`<NOW() then
    1
    END) sort
    from period p
    left join chapter c on c.uid=p.chapter_id
    left join course_pkg cp on cp.uid=c.course_id
    where cp.teacher_id="TC001" and cp.status="1"
    and cp.tenant_id="qht"
    and cp.play_type_id="BF001"
    order by time,sort

     

    1.in查询相当于多个or条件的叠加,例如:

    select * from user where user_id in (1,2,3);
    等效于
    select * from user where user_id = 1 or user_id = 2 or user_id = 3;
    not in与in相反,如下
    select * from user where user_id not in (1,2,3);
    等效于
    select * from user where user_id != 1 and user_id != 2 and user_id != 3;

    1.find_in_set基本语法

    FIND_IN_SET(str,strlist)

    str 要查询的字符串,strlist 字段名 参数以”,”分隔 如 (1,2,6,8)
    如果str不在strlist 或strlist 为空字符串,则返回值为 0 。如任意一个参数为NULL,则返回值为 NULL。这个函数在第一个参数包含一个逗号(‘,’)时将无法正常运行。

    +----+---------+-----------+-------------+
    | id | user_id | follow_id | follow_time |
    +----+---------+-----------+-------------+
    | 13 | 15      | 16,15     |  1478096138 |
    | 14 | 15      | 17        |  1478177725 |
    | 15 | 15      | 19        |  1478181035 |
    +----+---------+-----------+-------------+

    比如这张表,SELECT * from test where FIND_IN_SET('5',follow_id);这样是查不到的,返回值为null,因为follow_id中没有”5”这个值,它不同于 like 模糊查询,它是以“,”来分隔值

    like是广泛的模糊匹配,字符串中没有分隔符,Find_IN_SET 是精确匹配,字段值以英文”,
    ”分

    转载于:https://www.cnblogs.com/zuoxh/p/10131895.html

    展开全文
  • 原生SQL查询

    千次阅读 2018-11-14 16:16:20
    type SqlController struct { beego.Controller } #Prepare sql语句在发送到服务器时会做语法检查和编译,然而我们多次执行同一功能的sql语句,只是每次传递的参数不一致,所以我们可以通过Prepare进行预处理,...
    type SqlController struct {
    	beego.Controller
    }
    

    #Prepare
    sql语句在发送到服务器时会做语法检查和编译,然而我们多次执行同一功能的sql语句,只是每次传递的参数不一致,所以我们可以通过Prepare进行预处理,这样服务器只需要,做一次语法检查和编译,极大的提高了执行sql语句的效率

    func (this *SqlController) GetPrepare() {
    	//1.创建orm
    	orm := orm.NewOrm()
    	p, err := orm.Raw("update user set name = ? where name = ?").Prepare()
    	if err != nil {
    		fmt.Println("err = ", err)
    		this.Ctx.WriteString("查询出错!")
    		return
    	}
    	res, err := p.Exec("吴俏祥", "123")
    	if err != nil {
    		fmt.Println("err = ", err)
    		this.Ctx.WriteString("查询出错!")
    	}
    	n, err := res.RowsAffected()
    	if err != nil {
    		fmt.Println("err = ", err)
    		this.Ctx.WriteString("查询出错!")
    	}
    	fmt.Println("n = ", n)
    
    	res, err = p.Exec("尹成大魔王", "mike")
    	if err != nil {
    		fmt.Println("err = ", err)
    		this.Ctx.WriteString("查询出错!")
    	}
    	n, err = res.RowsAffected()
    	if err != nil {
    		fmt.Println("err = ", err)
    		this.Ctx.WriteString("查询出错!")
    	}
    	fmt.Println("n = ", n)
    
    	res, err = p.Exec("兄弟连", "asde")
    	if err != nil {
    		fmt.Println("err = ", err)
    		this.Ctx.WriteString("查询出错!")
    	}
    	n, err = res.RowsAffected()
    	if err != nil {
    		fmt.Println("err = ", err)
    		this.Ctx.WriteString("查询出错!")
    	}
    	fmt.Println("n = ", n)
    	this.Ctx.WriteString("成功!")
    
    }
    

    #将将指定的字段解析到map

    func (this *SqlController) GetRawsToMap() {
    	//1.创建map
    	res := make(orm.Params)
    	//2.创建orm
    	orm := orm.NewOrm()
    	//3.通过sql语句查询
    	//将user表中name作为键,nickname作为值存入map中,其中键是string类型,
    	// 如果类型不匹配beego会自动转换为string类型
    	/*n, err := orm.Raw("select nickname, name from user").
    		RowsToMap(&res, "name", "nickname")*/
    	n, err := orm.Raw("select * from user").RowsToMap(&res, "age", "name")
    	//4.处理错误
    	if err != nil {
    		fmt.Println("err = ", err)
    		this.Ctx.WriteString("查询出错!")
    		return
    	}
    	//5.打印结果
    	fmt.Println("n = ", n)
    	for key, value := range res {
    		fmt.Println(key, " = ", value)
    	}
    	//6.给客户端返回数据
    	this.Ctx.WriteString("查询成功!")
    }
    

    #QueryRows

    func (this *SqlController) GetQueryRows(){
    	//1.创建user切片
    	var users []*models.User
    	//2.创建orm
    	orm := orm.NewOrm()
    	//3.通过sql语句查询
    	n, err := orm.Raw("select * from user where name = ?", "mike").QueryRows(&users)
    	//4.处理错误
    	if err != nil {
    		fmt.Println("err = ", err)
    		this.Ctx.WriteString("查询出错!")
    		return
    	}
    	//5.打印结果
    	fmt.Println("n = ", n)
    	for _, user := range users {
    		fmt.Println("user = ", user)
    	}
    	//6.给客户端返回数据
    	this.Ctx.WriteString("查询成功!")
    }
    

    #QueryRow

    func (this *SqlController) GetQueryRow() {
    	//1.创建user对象
    	//user := models.User{}
    	var user models.User
    	//2.创建orm
    	orm := orm.NewOrm()
    	//3.通过sql语句查询
    	err := orm.Raw("select * from user where id = ?", 3).QueryRow(&user)
    	//4.处理错误
    	if err != nil {
    		fmt.Println("err = ", err)
    		this.Ctx.WriteString("查询出错!")
    		return
    	}
    	//5.打印结果
    	fmt.Println("user = ", user)
    	this.Ctx.WriteString("查询成功!")
    }
    

    #Exec

    func (this *SqlController) GetRawAndExec() {
    	//创建orm
    	orm := orm.NewOrm()
    	//raw函数中的参数是sql语句,形式参数通过?占位,后面提供的实际参数和?的顺序一一对应
    	//Exec()函数的功能是执行sql语句
    	res, err := orm.Raw("update user set name = ? where id = ?", "admin", 7).Exec()
    	if err != nil {
    		this.Ctx.WriteString("查询失败!")
    		return
    	}
    	n, err := res.RowsAffected()//查询受影响的行数
    	if err != nil {
    		this.Ctx.WriteString("查询失败!")
    		return
    	}
    	this.Ctx.WriteString("mysql row affected nums = " + strconv.Itoa(int(n)))
    }
    

    学院Go语言视频主页
    https://edu.csdn.net/lecturer/1928

    清华团队带你实战区块链开发
    扫码获取海量视频及源码 QQ群:721929980
    在这里插入图片描述

    展开全文
  • 由HibernateTemplate执行原生SQL总结

    千次阅读 2018-04-01 13:52:59
    一次做项目中,我将数据源放在了db.properties文件中,将数据源dataSource交给Spring来管理。然后在dao的实现层继承HibernateSupport类,从而通过this.getHibernateTemplate()就可以执行HQL语句。...
  • 数据库:原生sql语句写法

    千次阅读 2019-01-05 19:06:30
    1.SQL语句 1.1什么是SQL语句: SQL:结构化查询语言。关系数据库语言的国际标准。 各个数据库厂商都支持ISO的SQL标准:如普通话 各个数据库厂商在标准基础做了自己的扩展:如方言 1.2 SQl分类 数据定义语言:...
  • SQL与原生SQL的区别

    千次阅读 2018-11-03 09:20:51
    SQL 一般指根据指定的程序规则,自动生成的sql,比如最经典的,linq to sql 原理:对用户撰写的SQL进行一层包装,添加更多分析功能。 优势:在灵活分析的展现界面,还可以做排序,过滤,汇总等操作; 劣势:对SQL有...
  • 原生SQL操作整理

    2018-11-21 14:58:11
    1.根据不同判断条件显示 select case sex when 'M' then '男'when 'F' then '女' else '未知' end as sexStr --select case when sex = 'M' then '男' when sex = 'F' then '女' else '未知' endas sexStr ...
  • PHP原生SQL语句书写总结

    万次阅读 2018-06-22 21:15:02
    PHP原生SQL语句书写总结  有时候在我们使用TP3.2时无法使用框架,例如小程序支付后的回调,就需要用到原生PHP,还有就是服务器定时执行文件也需要用到原生PHP,这时我总结一下一种原生PHP各种PHP的SQL语句书写;...
  • 原生SQL语句进行统计

    2014-08-11 12:36:24
    最近看到一个根据SQL进行统计的例子,当然这个SQl语句很复杂,跨了很多张表,各种子查询,反正就是很复杂,而且执行的SQL语句还很多,但无论SQL语句多少多复杂,查询和显示都只用了一个方法,感觉挺不错的,可能以后...
  • 常用原生 SQL 语句

    2018-11-22 17:36:04
    增 INSERT INTO 表名称 VALUES (值1, 值2,....) // 指定所要插入数据的列 INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....) 删 DELETE FROM 表名称 WHERE 列名称 = 值 改(更新) ...
  • 此方法接受原始SQL查询,执行该查询,然后返回django.db.models.query.RawQuerySet实例。可以像普通QuerySet一样迭代此RawQuerySet实例以提供对象实例。 例如: class Person(models.Model): fi...
  • laravel 写原生SQL语句

    2020-06-19 14:36:41
    原生 SQL DB::statement('sql 语句');
  • 使用DB::select() 里面放所有原生sql语句 $user = DB::select(' SELECT CODE AS source, cash AS fee, id AS order_id, title, pay_time FROM icws_ima...
  • laravel 查看原生sql语句的命令

    千次阅读 2018-12-15 18:21:20
    DB::connection()-&gt;enableQueryLog(); dd(DB::getQueryLog())
  • Django 执行原生SQL语句

    2020-11-05 19:52:37
    Django 执行原生SQL语句前言如何在django中执行原生的SQL语句?cusor是什么?如何封装SQL执行的结果?参考文档 前言 一般,使用django读写数据都是通过Model,如Model.objects.filter(条件),它需要遵循django的对象...
  • SQLAlchemy之原生SQL语句

    千次阅读 2019-09-30 09:00:09
    # -*- coding:utf-8 -*- import time import threading from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column, Integer, String, ForeignKey, UniqueConstraint, Index ...
  • Hibernate使用原生SQL语句 以下是本人对Hibernate使用原生SQL语句的理解: 在项目开发当中使用Hibernate提供的HQL有时候不能满足需求,尤其是多表查询或者是多表中没创建主外键关联关系,我也试过平常的连接 比如...
  • tp5中使用原生sql语句

    万次阅读 2017-12-14 11:40:20
    引入 use/think/Db;  query 用于查询 其他的用execute 插入记录 ...$result = Db::execute('insert into sb_ad (ad_name, ad_content ,status) values (1, "456",1)');...$result = Db::execut
  • 1、Manager.raw(raw_query,params=None,translations=None) raw_queryset = Person.objects.raw('...这个方法接受一个原始的SQL查询,执行它,并返回一个django.db.models.query。RawQuerySet实例。这个RawQueryS...

空空如也

1 2 3 4 5 ... 20
收藏数 71,007
精华内容 28,402
关键字:

原生sql