热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

数据库常用知识点

数据库常用知识点分组语句groupby作用就是将一个或是多个列数据进行结果分组,通过成聚合函数来组合使用,如sum()求和max()最大值min()最小

数据库常用知识点


  • 分组语句 group by
    作用就是将一个或是多个列数据进行结果分组,通过成聚合函数来组合使用,如sum()求和 max()最大值 min()最小值count()计数
    语法:select name,max(age) form users group by name having …
    group by前面可以没有where 也可以执行
    having 可以做分组条件的筛选

  • 字符函数length()获取字节个数,utf-8一个字符顶三个字节,

  • 先说一下sql的执行顺序,我虽然已经写过了这个但是还是在这里在写一遍吧
    sql queries run in this order
    form 首先第一步要确定表,
    join连接表条件,这个可以对表的数据进行筛选,过滤掉多余的数据,
    where对整体数据进行一个筛选,对想要输出显示的数据或是不想要显示的数据进行条件满足
    group by 对显示出的数据进行分组,having对分好组的数据再进行一次数据过滤
    select 显示出想要的数据
    order by 对显示出来的数据进行一个排序 aes desc
    limit 对显示出来的数据进行一个分页或是理解分组也可以吧 显示出来的数据很多的话就很有必要会分组limit
    其实可以这样想,把表作为是一个底层, 把显示出来的数据比作是视图,想或取数据肯定是要先确定表,表条件,
    然后在对表数据进行业务处理(分组 ),最后在把查询来的数据进行美化 select order by limit

  • 注意几个点 在group by 后面不能使用where ,where 在group by之前,只能使用having来约束
    可以在group by之后写order by order by是最后实现的,所以可以在任何数据后面,
    limit是数据查询显示之后最最最后才进行分页,还有就是尽量在连接多表使用表别名来区分,

  • 事实上数据库不会按部就班的去执行sql,因为可以对sql进行优化,减少数据库执行步骤,提高执行效率,

  • mysql是关系型数据库,关系型数据库就是将数据放到表中,是二维表关系,
    mysql与oracle的区别是
    mysql是小型数据库,300M oracle是收费的,3G
    mysql是一个实例可以操作多个库, oracle是一个实例对应一个库
    mysql主键使用自动增长 oracle是使用序列对象
    mysql使用双引号包起字符串 oracle是单引号抱起字符串
    mysql分页是使用limit函数 oracle是使用rownum伪列来显式
    事务上是自动提交 手动提交
    mysql中数据类型 数值类型 :int (4字节) bigint(8字节)
    浮点类型 :float() 单精度 double() 双精度
    字符类型:char(n) 固定长度 varchar() 可变长度 text() 不能有默认值,varchar查询书速度快
    日期类型:date() time() datetime() timestamp()自动存储记录修改时间
    DDL数据定义语言 create table创建表 show tables查看表 drop table name删除表 alter table name rename newtablename
    mysql中的约束类型 非空约束 not null 唯一约束 unique 主键约束 primary key 外键约束 foreign key
    查询表中约束 show keys from tablename
    DML数据操作语句 就是对表中的数据进行增删改查
    insert into table(列名) values(值 ) 完全添加 insert into table values(值 )
    update table set key = value
    delete from tablename where
    truncate table tablename 清空表
    truncate 是整体删除数据速度快 delete是按条删除
    truncate 不会写日志 会重置自增值 delete是写日志,累加
    select 显示列 from 表 where 筛选条件
    mysql中的连字符是使用concat()函数,oracle是可以使用||来作为连接符号的,
    使用distinct来去重复相同的行
    模糊查询 like %是代表多个任意字符 _是代表任意一个字符,
    逻辑运算 and or not
    范围查询 in()在一个连续范围内, between and 一个最大值和一个最小值之间
    order by 排序 asc 正序 desc 降序
    单行函数 concat() 把字符串连接起来,length() substr() trim(str)去掉前后空格, ltrim()删除左头空格 rtrim()删除右头空格
    replace(str,t,T)
    通用函数 ifnull(exprl1,exprl2) 如果exprl是null 则会用输出exprl2
    if(exprl1,exprl2,exprl3)如果exprl不是null返回exprl2 否则返回exprl3
    case when then else end
    多表连接 的方式有
    等值连接 也就是内连接 取符合条件的交集
    select * from table1,table2 where 1.id = 2.id
    非等值连接
    select * from table1,table2 where 1.id between 2.id and 2.id
    外连接 outer join 有 left outer join right outer join mysql不支持full outer join 可以使用union
    union是将两个查询结果集合并在一起,返回的行是唯一的,就相当于是distinct
    union all 将两个结果合并查询
    在这里插入图片描述
    聚合函数
    avg()函数 对分组数据进行计算 sum()对分组数据进行求和 min()求出分组中的最小值 max()求出分组中的最大值,
    count(*) 统计表中的行数,不忽视null数据 ,count(str)是返回指定列的数量,忽视null值
    count(distinct 列名) 返回不重复值
    count(1)忽视所有列,
    创建数据组 约束分组结果 having

  • 基本概念

1 database 数据库, 2 table, 3 模式 scheam, 4 column 字段 列,5 row 记录 行 6 primary key 主键子句:查询部分表达式:可以产生值谓词:条件

推荐阅读
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • Python SQLAlchemy库的使用方法详解
    本文详细介绍了Python中使用SQLAlchemy库的方法。首先对SQLAlchemy进行了简介,包括其定义、适用的数据库类型等。然后讨论了SQLAlchemy提供的两种主要使用模式,即SQL表达式语言和ORM。针对不同的需求,给出了选择哪种模式的建议。最后,介绍了连接数据库的方法,包括创建SQLAlchemy引擎和执行SQL语句的接口。 ... [详细]
  • 模板引擎StringTemplate的使用方法和特点
    本文介绍了模板引擎StringTemplate的使用方法和特点,包括强制Model和View的分离、Lazy-Evaluation、Recursive enable等。同时,还介绍了StringTemplate语法中的属性和普通字符的使用方法,并提供了向模板填充属性的示例代码。 ... [详细]
  • Java学习笔记之使用反射+泛型构建通用DAO
    本文介绍了使用反射和泛型构建通用DAO的方法,通过减少代码冗余度来提高开发效率。通过示例说明了如何使用反射和泛型来实现对不同表的相同操作,从而避免重复编写相似的代码。该方法可以在Java学习中起到较大的帮助作用。 ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • 本文介绍了一种轻巧方便的工具——集算器,通过使用集算器可以将文本日志变成结构化数据,然后可以使用SQL式查询。集算器利用集算语言的优点,将日志内容结构化为数据表结构,SPL支持直接对结构化的文件进行SQL查询,不再需要安装配置第三方数据库软件。本文还详细介绍了具体的实施过程。 ... [详细]
author-avatar
临沂李晓楠
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有