mysql学习第四天(高级查询)】的更多相关文章

1.        EXISTS和NOT EXISTS子查询:EXISTS关键字用来检测数数据库对象是否存在.                  ★EXISTS和NOT EXISTS的结果只取决于是否有返回记录,不取决于这些记录的内容,                      所以EXISTS或NOT EXISTS子查询后SELECT语句中的字段列表通常是无关紧要的.      ●EXISTS子查询: 在执行CREATE或DROP语句前,可以使用EXISTS语句判断该数据库对象是否存在,返回值…
我的MYSQL学习心得(七) 查询 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运算符 我的MYSQL学习心得(六) 函数 我的MYSQL学习心得(八) 插入 更新 删除 我的MYSQL学习心得(九) 索引 我的MYSQL学习心得(十) 自定义存储过程和函数 我的MYSQL学习心得(十一) 视图 我的MYSQL学习心得(十二) 触发器 我的MY…
MySql学习笔记四 5.3.数据类型 数值型 整型 小数 定点数 浮点数 字符型 较短的文本:char, varchar 较长的文本:text, blob(较长的二进制数据) 日期型 原则:所选择类型越简单越好,能保存数值的类型越小越好 5.3.1.数值型 5.3.1.1.整型 Tinyint: 一个字节 Smallint:两个字节 Mediumint:三个字节 Int, Integer:四个字节 Bigint:八个字节 默认是有符号,无符号整型是在类型后加unsigned 超出范围时是距离范…
-- 第七章-- 1.查询入职日期最早和最晚的日期select min(hiredate),max(hiredate)from emp -- 2.查询职位以SALES开头的所有员工平均工资,最低工资,最-- 高工资,工资和select avg(sal),min(sal),max(sal),sum(sal)from empwhere job like 'SALES%' -- 3.查询部门30有多少个员工select count(*)from empwhere deptno = '30' -- 4.…
MySQL中select的基本语法形式: select 属性列表 from 表名和视图列表 [where 条件表达式] [group by 属性名[having 条件表达式]] [order by 属性名[asc|desc]] [limit <offset>,row count] 说明: where子句:按照“条件表达式”指定的条件进行查询. group by子句:按照“属性名”指定的字段进行分组. having子句:有group by才能having子句,只有满足“条件表达式”中指定的条件的…
更多情况下,我们查询的数据来源于多张表,所有有必要了解一下MySQL中的连接查询. SQL中将连接查询分成四类:交叉连接,内连接,外连接和自然连接. 数据准备 student表 -- ---------------------------- -- Table structure for `student` -- ---------------------------- DROP TABLE IF EXISTS `student`; CREATE TABLE `student` ( `id` in…
一.group_concat()函数.把groupby的分组中字段数据组合显示出来 select s_id , GROUP_CONCAT(要显示的字段名)  from table group by 分组字段 二.group_by 与 Having 结合 :根据条件筛选分组条件 select s_id ,group_concat(f_name) as names from fruits group by a_id having count(f_name) > 1 Having  与 where 区…
一.单向和双向 包括一对一,一对多,多对多这三种情况,但是每一种又分为单向和双向,在hibernate中我们就详细解析过这单向和双向是啥意思,在这里,在重复一遍,就拿一对多这种关系来讲,比如有员工和部门,一个部门中有多个员工,从部门方看,是一对多关系,而多名员工属于一个部门,是多对一关系,那么如果我们的业务需求只需要通过部门查找到所有的员工,那么我们就只需要进行单向一对多的映射,如果我们需要通过员工来查询出对应的部门,那么我们就需要进行单向多对一的映射,而如果我们这两个业务需求都需要实现,也就是…
实验四          嵌套查询 一.实验目的 掌握SELECT语句的嵌套使用,实现表的复杂查询,进一步理解SELECT语句的高级使用方法. 二.实验环境 三.实验示例 1.  查询与“刘晨”在同一个系学习的学生. SELECT Sno,Sname,Sdept FROM Student WHERE Sdept  IN (SELECT Sdept FROM Student WHERE Sname= ‘ 刘晨 ’): 用自身连接完成 SELECT  S1.Sno,S1.Sname,S1.Sdept…
mysql模糊匹配查询like,regexp,in   摘要 内容比较简单,无摘要.   关键词 模糊查询  like  regexp  in  contact   正文 下图是示例用到的数据表信息 MySQL提供标准的SQL模式匹配,以及一种基于象Unix实用程序如vi.grep和sed的扩展正则表达式模式匹配的格式   一.SQL模式 SQL的模式匹配允许你使用“_”匹配任何单个字符,而“%”匹配任意数目字符(包括零个字符).在 MySQL中,SQL的模式缺省是忽略大小写的. 注意在你使用S…
回顾 列属性:主键,自增长,唯一键. 关系:一对一,一对多,多对多 三层范式: 1NF:字段设计必须符合原子性 2NF:不存在部分依赖(没有复合主键) 3NF:不存在传递依赖(实体单独成表) 逆规范化:效率磁盘空间博弈: 高级数据操作: 新增操作:主键冲突(更新与替换),蠕虫复制 更新操作:限制更新数量:limit 删除操作:限制删除数量:limit.清空表结构:truncate 查询操作:select选项: 字段别名: 数据源(单表,多表,子查询[别名]) Where子句(条件判断:从磁盘)…
关系 将实体与实体的关系,反应到最终数据表的设计上来,将关系分为三种,一对多,多对多,多对多. 所有关系都是表与表之间的关系. 一对一: 一张表的一条记录一定只对应另外一张表的一条记录,反之亦然. 例 Id 姓名 性别 年龄 电话号码 1 张三 男 23 13320848263 一对多 一张表中有一条记录,对应另一张表多条记录但是反过来,另一张表的一条记录只能对应这张表的一条记录. 例母亲与孩子的关系 多对多 一张表中的一条记录对应另外一张表的多条记录,同时另一张表的一条记录对应另外一张表的多条…
转载自:http://www.hollischuang.com/archives/934 在数据库的锁机制中介绍过,数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性. 乐观并发控制(乐观锁)和悲观并发控制(悲观锁)是并发控制主要采用的技术手段. 无论是悲观锁还是乐观锁,都是人们定义出来的概念,可以认为是一种思想.其实不仅仅是关系型数据库系统中有乐观锁和悲观锁的概念,像memcache.hibernate.tair等…
一:几种常用存储引擎汇总表 二:如何选择 一句话:除非需要InnoDB 不具备的特性,并且没有其他办法替代,否则都应该优先考虑InnoDB:或者,不需要InnoDB的特性,并且其他的引擎更加合适当前情况,例如 多读少写,对数据恢复要求不高,反而是 对存储空间要求较高. ****尤其注意:不要低估数据崩溃后恢复的重要性,MyISAM将数据写入内存中,然后等待操作系统定期将数据刷回磁盘.   MyISAM:默认的MySQL插件式存储引擎.如果应用是以读操作和插入操作为主,只有很少的更新和删除操作,…
1.查数据太多不会把内存用光 InnoDB 的数据是保存在主键索引上,然后索引树分割保存在数据页上,数据页存在内存中/磁盘.change buffer 就是先把修改操作记录,然后读数据的时候,内存没有就从磁盘拿,把 change buffer 的改动应用的从磁盘读取的数据页上,返回给请求.并且此时数据页变成脏页,又会刷脏页. 全盘扫描实际上就是扫描表的主键索引.查到符合条件的就放在结果集,然后返回给客户端. 结果集: 一块内存 net_buffer 写入符合条件的结果,重复获取写入到 net_b…
一.内连接[inner join] 1. 语法一:select 列名 from 表1 inner join 表2 on 表1.公共字段=表2.公共字段 2. 语法二:select 列名 from 表1,表2 where 表1.公共字段=表2.公共字段 3. 注意:显示公共字段需要指定表名,否则会报错 select stuinfo.stuno,stuname from stuinfo inner join stumarks on stuinfo.stuno=stumarks.stuno; 4. 三…
一.查询语句 1.  select [选项] 列名 [from 表名]  [where 条件]  [order by 排序]  [group by 分组]  [having 条件]  [limit 限制] 2. 字段表达式 select 10*10 select '锄禾日当午' 3. 通过as给列名取别名,as可以省略 select 10*10 as result select 10*10 result 4. from子句 a. from:来自,from后面跟的是数据源.数据源可以有多个.返回笛…
一.SQL语句优化的一般步骤: (1)通过 show status 命令了解各种 SQL 的执行效率: (2)定位执行效率较低的 SQL 语句(重点是 Select): (3)通过 explain 分析低效率的 SQL 语句的执行情况: (4)确实问题并采取相应的优化措施: 二.优化 1.show status 命令 格式: show [session | global] status like ... 如果不写[session | global],默认的是session,即取出当前回话的执行情…
联合查询 联合查询:将多次查询(多条select语句)在记录上进行拼接(字段不会增加). 语法:多条select语句构成,每条select语句获取的字段必须严格一致(但是字段类型无关). Select 语句1 Union [union选项] Select语句2........ Union 选项有两个 All:保留所有 Distinct:去重.默认的 联合查询只要求字段一样,与数据类型无关. 意义:两种 1,查询一张表但是需求不同. 2,多表查询,多张表的结构完全一样,保存的数据也一样 Order…
本文出处:http://blog.csdn.net/u012377333/article/details/47022699 从上面的几篇文章中,能够知道怎样使用Shell创建数据库.使用Shell创建数据表,本文继续介绍Shell结合MySQL的使用--怎样使用Shell批量插入数据? 这里涉及一点MySQL其它的知识.怎样导入或者导出数据? 首先做这些之前,须要依照上面所介绍的创建好数据库和数据库表,然后就是将要查询到数据库中的数据写到CSV文件里.因为个人比較懒.选择从一个现成的数据库中导出…
聚合函数 count 返回查询结果的条数 max 返回查询结果的最大值 min 返回查询结果的最小值 sum 返回查询结果的和 avg 返回查询结果的平均值   统计分数大于等于90的人数: mysql> select count(*) from new_student         -> where score >="90";      使用distinct剔除字段值重复的条数 mysql> select count(distinct score) from…
1.跟用户相关的命令 (了解). DCL语句    1.1. 创建一个新的用户        CREATE USER 用户名@地址 IDENTIFIED BY '密码';        CREATE USER jerry@localhost IDENTIFIED BY '1234';    1.2.为用户添加权限         语法:GRANT 权限1, … , 权限n ON 数据库.* TO 用户名@IP        例子:GRANT CREATE,ALTER,DROP,INSERT,UP…
1.        修改表: (1)修改表名语法: ALTER TABLE <旧表名> RENAME [ TO ] <新表名>: 注意:其中[TO]为可选参数,使用与否不影响结果,仅修改表名,表结构不变: (2)添加字段语法: ALTER TABLE 表名 ADD 字段名 数据类型 [属性]: (3)修改字段语法: ALTER TABLE 表名 CHANGE 原字段名 新字段名 数据类型 [属性]: 其中,”原字段名“指修改前的字段名,“ 新字段名”指修改后的字段名,“数据类型”指…
多表查询 多表查询 *合并结果集 *连接查询 *子查询 合并结果集 *要求被合并的表中,列的类型和列数相同(实际上是查询的结果集列类型和列数相同即可) *UNION,去除重复行 *UNION ALL,不去除重复行 >SELECT * FROM b1 UNION ALL SELECT * FROM b2; 连接查询 1.分类 *内连接 *外连接 >左外连接 >右外连接 >全外连接(MySQL不支持) *自然连接 2.内连接 *特有:SELECT * FROM 表1 别名1, 表2 别…
文章图片来自参考资料 MySQL 的锁     根据加锁的范围,MySQL里面的锁大致可以分成全局锁.表级锁和行锁三类.我们需要明白锁的服务是为了数据统一,或者说是事务,数据隔离. 全局锁     全局锁是范围最大的锁,锁住了所有,全局锁的典型使用场景是,做全库逻辑备份.也就是把整库每个表都select出来存成文本.     总结来自参考资料 使用场景:全库逻辑备份. 风险: 1.如果在主库备份,在备份期间不能更新,业务停摆 2.如果在从库备份,备份期间不能执行主库同步的binlog,导致主从延…
1.字符集就是字符和其编码的集合,查看数据库支持的字符集 show character set 2.查看服务端启动时默认的字符集 mysql> show variables like 'character_set_%'; +--------------------------+-------------------------------------------+ | Variable_name | Value | +--------------------------+------------…
select * from products where id in(select id from cats where name like '%java%');//查找类型中名字中包含java的的商品信息 order by 字段名字 desc /asc select * from products order by price desc;//按照降序排列 limit select * from products order by price limit 1;//取出价格便宜的商品 select…
mysql数据类型: 数值型: 整形:int 浮点型:float double decimal:定点型 日期: date  '2012-01-02' time '10:01:01' datetime '2012-03-04 03:03:04' datestamp :时间戳 year '2012' 字符型: char();  ---------------------255 varchar(); -----------------255 text blob enum('1', '2', '4') …
一.概述      存储过程是数据库定义的一些SQL语句的集合,然后直接调用这些存储过程和函数来执行已经定义好的SQL语句.存储过程可以避免开发人员重复的编写相同的SQL语句,而且存储过程是在MySql服务器中存储和执行的,可以减少客户端与服务器端的数据传输.   1.优点 (1)提供执行性能     通常在客户端执行SQL命令时,在数据库有解析到编译这个前期准备过程.但是,存储过程是先完成了解析.编译的处理后保存在数据库中的,执行时能减轻数据库负担,提高执行性能.   (2)可减轻网络负担  …
要点:ab复制 mysql集群架构流程: ABB(主从复制)-->MHA(实现mysql高可用.读写分离.脚本控制vip飘逸)-->haproxy(对slave集群实现分发,负载均衡)-->keepalive(预防一台haproxy单点故障,对两台及以上的haproxy实现高可用) 1.MySQL复制特性 --MySQL AB复制,即主从复制 master slave 备份(容灾) 减轻master压力 AB 读写分离 拓展: AA master-master 主主复制 ABBB 一主多…