sql分组

python day37

我与影子孤独终老i 提交于 2019-11-28 03:30:17
今日内容 基本查询语句及方法 from where group by having distinct order by limit .... 书写顺序格式: select id,name from emp where id > 3 and id < 6; 执行顺序格式: from # 确定到底是哪站表 where # 根据过来条件 筛选数据 select # 拿出筛选出来的数据中的某些字段 当表字段特别多的时候 结果的排版可能会出现混乱的现象,你可以在查询语句加\G来规范查询结果 select * from emp\G; 查询练习: # 1.查询id大于等于3小于等于6的数据 select * from emp where id >= 3 and id <= 6; select * from emp where id between 3 and 6; # 上述语句完全等价 ​ # 2.查询薪资是20000或者18000或者17000的数据 select id,name from emp where salary = 20000 or salary = 18000 or salary = 17000; select id,name from emp where salary in (20000,18000,17000); ​ # 3.查询员工姓名中包含o字母的员工姓名和薪资

数据库查询语句,连表操作

瘦欲@ 提交于 2019-11-28 03:24:41
前期准备 create table emp( id int not null unique auto_increment, name varchar(20) not null, sex enum('male','female') not null default 'male', #大部分是男的 age int(3) unsigned not null default 28, hire_date date not null, post varchar(50), post_comment varchar(100), salary double(15,2), office int, #一个部门一个屋子 depart_id int ); #插入记录 #三个部门:教学,销售,运营 insert into emp(name,sex,age,hire_date,post,salary,office,depart_id) values ('jason','male',18,'20170301','张江第一帅形象代言',7300.33,401,1), #以下是教学部 ('egon','male',78,'20150302','teacher',1000000.31,401,1), ('kevin','male',81,'20130305','teacher',8300,401,1), ('tank'

test3

泄露秘密 提交于 2019-11-28 02:38:58
查询test1表中所有员工入职离现在几天: select sysdate-t.date from test_1 t; 查询出明天此刻 select sysdate + 1 from dual; 查询test1表中所有员工入职离现在几月: select (sysdate-t.date)/30 from test_1 t; select months_between(sysdate,t.hiredate) from test_1; 查询test1表中所有员工入职离现在几年: select (sysdate-t.date)/365 from test_1 t; select months_between(sysdate,t.hiredate) /12 from test_1; 查询距离现在几周: select round((sysdate-t.date)/7 ) from test_1 t; 计算两列加减: select e.sal*12 + nvl(e.tim2, 0) from test e; 工资倒叙后每页显示五条, 查询第二页: select * from( select rownum rn, e.* from ( select * from emp order by sal desc) e where rownum<11) where rn>5 ; 通过视图创建表:

test3

霸气de小男生 提交于 2019-11-28 02:25:12
查询test1表中所有员工入职离现在几天: select sysdate-t.date from test_1 t; 查询出明天此刻 select sysdate + 1 from dual; 查询test1表中所有员工入职离现在几月: select (sysdate-t.date)/30 from test_1 t; select months_between(sysdate,t.hiredate) from test_1; 查询test1表中所有员工入职离现在几年: select (sysdate-t.date)/365 from test_1 t; select months_between(sysdate,t.hiredate) /12 from test_1; 查询距离现在几周: select round((sysdate-t.date)/7 ) from test_1 t; 计算两列加减: select e.sal*12 + nvl(e.tim2, 0) from test e; 工资倒叙后每页显示五条, 查询第二页: select * from( select rownum rn, e.* from ( select * from emp order by sal desc) e where rownum<11) where rn>5 ; 通过视图创建表:

mysql基础操作

删除回忆录丶 提交于 2019-11-28 00:56:09
DDL:操作数据库、表、列等 一:对数据库的操作 创建 Createdatabase mydb1; Create database mydb2 character setgbk; Create database mydb3 character setgbk COLLATE gbk_chinese_ci; ​ 查询 查看当前数据库服务器中的所有数据库 Show databases; 查看前面创建的mydb2数据库的定义信息 Show create database mydb2; 删除前面创建的mydb3数据库 Drop database mydb3; ​ 修改 查看服务器中的数据库,并把mydb2的字符集修改为utf8; alter database mydb2 character set utf8; 删除 Drop database mydb3; ​ 其他: 查看当前使用的数据库 Select database(); 切换数据库 Use mydb2; 二:操作数据表 当前数据库中的所有表 SHOWTABLES; 查看表的字段信息 DESCemployee; 在上面员工表的基本上增加一个image列。 ALTERTABLE employee ADD image blob; 修改job列,使其长度为60。 ALTERTABLE employee MODIFY job varchar

MySQL字段联合去重sql

↘锁芯ラ 提交于 2019-11-27 23:40:15
ySQL字段联合去重sql 例如数据 id,name1,name2 1  a  x 2  a  y 3  b  x 4  a  y 5  a  x 联合去重name1,name2的结果为 id,name1,name2 1  a  x 2  a  y 3  b  x 的SQL为 select * from table group by name1,name2; group by name having count(*)>1表示根据name筛选出分组以后,每一组的行数大于1 转载于:https://www.cnblogs.com/JAYIT/p/9037400.html 来源: https://blog.csdn.net/weixin_30538029/article/details/99815044

mysql 5.7分组报错问题 Expression #1 of ORDER BY clause is not in GROUP BY clause 的问题 MySQL

最后都变了- 提交于 2019-11-27 23:06:12
解决方案: select version(), @@sql_mode;SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY','')); 完美的解决方案是: 1 show variables like "sql_mode"; 2 3 set sql_mode=''; 4 set sql_mode='NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES'; 一份帮助文档,无论多么仔细,都不会帮助主人多敲一行代码! 来源: https://www.cnblogs.com/wordblog/p/11380792.html

单表查询

社会主义新天地 提交于 2019-11-27 19:05:09
原文章: https://www.cnblogs.com/majj/p/9170351.html 语法: 一、单表查询的语法 SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT 限制条数 二、关键字的执行优先级(重点) 重点中的重点:关键字的执行优先级 from where group by having select distinct order by limit 1.找到表:from 2.拿着where指定的约束条件,去文件/表中取出一条条记录 3.将取出的一条条记录进行分组group by,如果没有group by,则整体作为一组 4.将分组的结果进行having过滤 5.执行select 6.去重 7.将结果按条件排序:order by 8.限制结果的显示条数 创建公司员工表,表的字段和数据类型 company.employee 员工id id int 姓名 name varchar 性别 sex enum 年龄 age int 入职日期 hire_date date 岗位 post varchar 职位描述 post_comment     varchar 薪水 salary     double 办公室 office int 部门编号 depart_id int

ORACLE常用函数

不羁岁月 提交于 2019-11-27 16:31:49
知道了基础查询语句,就需要了解与其相关的一些常用函数,根据我自己了解过的知识而言大概分为单行函数,分组函数。下面我就以单行和分组两个部分来整理了它的一些知识用法。 单行函数顾名思义它只对只对一行进行变换,每行返回一个结果。它包括字符.数值.日期.转换.通用。 字符函数有大小写控制函数,字符控制函数。LOWER转大写为小写,upper转小写为大写。 (select lower(last_name) from employees).再说字符控制函数,它的种类就多余前者。 ①CONCAT 连接字符串要显示全名,前面用到过||字符串连接符,当然也可以用concat。 (select concat(last_name,first_name) from employees) ②SUBSTR 截取指定的字符串位置。(select substr(‘last_name’,1,5) from employees) ③LENGTH字符串长度,(select length(‘last_name’) from employees) ④INSTR(select instr(‘last_name’,‘n’) from employees)判断字符的位置 ⑤LPAD(select LPAD(salary,10,’ ’) from employees)左补齐⑥RPAD右补齐 用法同左补齐 ⑦TRIM去除选中部分

MySQL数据库

家住魔仙堡 提交于 2019-11-27 15:58:41
Mysql 数据库 【教学内容】 1、 数据库介绍 & 安装 2、创建库和表 3、简单增删改查语句 4、Mysql 函数 5、表的设计和约束 6、多表查询 【教学总结】: 【第一阶段】 【目标:数据库介绍 & 安装】 1 、数据库概述 在前期学习的过程中,数据基本都保存 xml 或者普通的文件中。在真实企业级开发数据,数据都需要保存专业的软件中,这些软件就是数据库软件。 数据库软件不需要我们去研发,由专门的数据库厂商提供。 常用的数据库软件: Oracle : Oracle 数据库。甲骨文公司,专门数据库厂商,收购 BEA 、 SUN 、 MySQL ------- 收费 大型数据库,用于任何系统任何平台。 IBM : BD2 数据库。 IBM 数据库产品,大型收费数据库 websphere 服务器一起使用。 Mysql 数据库,早期由瑞典一个公司开发的,后期被 sun 公司收购,随着 sun 公司的被 Oracle 收购, Mysql 也成了 Oracle 公司的产品。 Microsoft : Sqlserver 数据库。微软公司数据库产品,收费中等规模数据库 ,操作系统要求是 windows 结合 .net 一起使用。 Sybase : Sybase 数据库,中等规模数据库。 Java 开发者主要使用 MySQL 、 Oracle 、 DB2 三种数据库。 2 、什么数据库