show create table 表名 \G;(查看创建的属性)
alter table 表名 auto_increment=xx;(修改自增起始值)
set session auto_increment_offset=xx;(修改步长)
索引的目的:加速查找
约束:
主键
外键
唯一索引:unique 名字 (列名) ----不允许重复(可以为空)
联合唯一:unique 名字 (列名1,列名2)---不允许一起重复 sql语句补充
select * from 表名;
select 列名 as 别名 from 表名 where 条件;
select 列名 as 别名,数字 from 表名 where 条件;(加额外的数字列) select * from 表名 where 列名 != x;(不等于)
select * from 表名 where 列名 in (x,y,z);(in(在):x,y,z)
select * from 表名 where 列名 not in (x,y,z);(不在)
select * from 表1名 where 列名 in (select 列名 from 表2);(和表2中相同的)
select * from 表名 where 列名 between x and y; (介于x-y,包含边界) select * from 表名 where 列名 like "a%";(%代表所有的值,数量:0-无限多)
select * from 表名 where 列名 like "a_";(_代表所有的值,数据1个) select * from 表名 limit x;(前x条) select * from 表名 limit x,y;(起始位置从x起,往后取y条) select * from 表名 order by 列名 desc; #大到小
select * from 表名 order by 列名 asc; #小到大
select * from 表名 order by 列名1 desc,列名2 desc;分开排序
取后y条数据(先排序在取值)
select * from 表名 order by 列名 desc limit y;
分组:
select count(列名),max(列名),part_id from 表名 group by 列名;(sum:求和,avg:求平均值)
连表:
select * from 表1,表2 where 条件;

  select * from 表1 left join 表2 on 列1=列2;

消除重复的行

  select distinct 列名 from 表名;

模糊查询

 %匹配任意多个字符,_匹配一个字符 

select * from students where sname like '郭%';

 

范围查询

in 表示在一个非连续的范围内查询,

select * from 表名 where id in(1,3);

between ... and ...

select * from students where id between 2 and 4;

判断空 

 select * from students where isnull is null;

 select * from students where isnull is not  null;

优先级

小括号,not,比较运算符,逻辑运算符;

and比or先运算,如果希望先and要结合小括号

聚合(函数)

count(*)用于统计总行数

select count(*) from students;

max(列)找出最大值,min(列)找出最小值

select max(year) from students;
select min(year) from students;

sum(列)求和

 select sum(year) from students;

avg(列)求平均值

 select avg(year) from students;  

  

子查询,得到聚合处理后的结果

 select * from students where year=(select min(year) from students);

分组

group by相同的值分为一组

select year as 年龄,count(*) from students group by year;

  

分组之后进行筛选

where对from后的结果进行筛选,having是对分组后的结果进行筛选

select year as 年龄,count(*) from students group by year having  count(*)=3 or 年龄=22;

分页

select * from students order by id desc limit 2,5;

  

完整的查询语句

关系

   decimal(a,b)

  参数说明:

          a:指定小数点左边和右边可以存储的十进制数字的最大个数,最大精度为38.

        b:指定小数点右边可以存储的十进制数字的最大个数。小数位数必须是从0~a之间的值,默认小数位数是0.

添加外键

 alter table scores add foreign key(stuid) references students(id); 

如果直接写在创建表语句里面

foreign key(subid) references subject(id);

 

连接查询

select students.sname,subject.title,scores.score from scores
inner join students on scores.stuid=students.id
inner join subject on scores.subid = subject.id;

  

视图

复杂的查询语句,多次使用后维护非常麻烦,解决办法就是定义视图,

视图的本质查询语句进行封装,用它代表复杂的select语句,相当于快捷方式,别名

创建视图

create view stuscore as  select students.sname,subject.title,scores.score from scores inner join students on scores.stuid=students.id inner join subject on scores.subid = subject.id;

  

使用视图

select * from stuscore;

  

事务

当你通过sql语句对数据进行影响变更的时候,

  如果某个sql语句出错,你希望整个操作都进行回退

目的:保证一个业务逻辑的操作有效

也就是你操作数据只存在2种情况,成功或失败,成功才会改变数据

ACID

原子性:不可拆分

一致性:不会因为顺序影响结果,结果一致

隔离性:不会因为别的数据干扰,

持久性:不会因为特殊的情况造成数据丢失

引擎必须是innodb和bdb

步骤:

  1.开始begin

  begin;

  2.提交commit

  sql语句

  commit;

  (到这才会更改)

  3.回滚rollback

  rollback;

  放弃整个begin之后的操作

索引

数据默认是按照主键存的

等尽量往前写,范围尽量往后写

优化:优化where后面的语句建立索引,可以有效提高查询速度

查看索引

show index from students;

  

创建索引

create index ztitleindex on maoyantop100(ztitle(20));

删除索引

drop index ztitleindex on maoyantop100;

  

  

性能分析

1.开启运行时间检测

 set profiling=1;

  

2.执行查询语

 

select * from maoyantop100 where ztitle='触不可及';

  

3.查看执行时间

show profiles;

 

4.建立索引

create index ztitleindex on maoyantop100(ztitle(20));

  

5.重新执行sql语句

select * from maoyantop100 where ztitle='触不可及';

  

6.查看执行时间

 show profiles;

  

差距明显

 

<数据库>MySQL补充( 查询)的更多相关文章

  1. python进阶10 MySQL补充 编码、别名、视图、数据库修改

    python进阶10 MySQL补充    编码.别名.视图.数据库修改 一.编码问题 #MySQL级别编码 #修改位置: /etc/mysql/mysql.conf.d/mysqld.cnf def ...

  2. PHP操作mysql数据库:[2]查询数据听语音

    本文主要详细讲解如何使用php语言,对mysql数据库进行查询.添加.删除.更新等操作. 工具/原料   Macromedia Dreamweaver 8 mysql数据库,php语言 一.前言   ...

  3. MySQL、SQLServer2000(及SQLServer2005)和ORCALE三种数据库实现分页查询的方法

    在这里主要讲解一下MySQL.SQLServer2000(及SQLServer2005)和ORCALE三种数据库实现分页查询的方法. 可能会有人说这些网上都有,但我的主要目的是把这些知识通过我实际的应 ...

  4. Vc数据库编程基础MySql数据库的表查询功能

    Vc数据库编程基础MySql数据库的表查询功能 一丶简介 不管是任何数据库.都会有查询功能.而且是很重要的功能.上一讲知识简单的讲解了表的查询所有. 那么这次我们需要掌握的则是. 1.使用select ...

  5. 分页查询信息(使用jdbc连接mysql数据库实现分页查询任务)

             分页查询信息       使用jdbc连接mysql数据库实现分页查询任务 通过mysql数据库提供的分页机制,实现商品信息的分页查询功能,将查询到的信息显示到jsp页面上. 本项目 ...

  6. mysql中查询一个字段属于哪一个数据库中的哪一个表的方式

    mysql中查询一个字段具体是属于哪一个数据库的那一张表:用这条语句就能查询出来,其中 table_schema 是所在库, table_name 是所在表 --mysql中查询某一个字段名属于哪一个 ...

  7. mysql数据库----索引补充

    1.索引 索引是表的目录,在查找内容之前可以先在目录中查找索引位置,以此快速定位查询数据.对于索引,会保存在额外的文件中. 2.索引种类 普通索引:仅加速查询 唯一索引:加速查询 + 列值唯一(可以有 ...

  8. mysql数据库优化课程---16、mysql慢查询和优化表空间

    mysql数据库优化课程---16.mysql慢查询和优化表空间 一.总结 一句话总结: a.慢查询的话找到存储慢查询的那个日志文件 b.优化表空间的话可以用optimize table sales; ...

  9. MySql数据库之连接查询

    在MySql数据库中连接查询分为以下几种方式: 1.内连接查询 内连接查询通过关键字 inner join 关键字来实现,通过代码实现: select * from 表1 inner join 表2 ...

随机推荐

  1. web项目中使用的协议

    DNS协议 1.DNS协议的作用是将域名解析为IP,网络上的每个站点的位置是用IP来确定的,访问一个网站首先就要知道它的IP,不过数据组成的IP记起来不方便,所以就使用域名来代替IP,由于IP和域名的 ...

  2. 502Bad Gateway

    502 bad gateway,错误的网关的原因 连接超时,我们向服务器发送请求,由于服务器当前链接太多,导致服务器方面无法给予正常的响应,产生此报错,最好去服务器上找原因. 性能测试常见,可能是由于 ...

  3. PHP算法之删除最外层的括号

    有效括号字符串为空 ("")."(" + A + ")" 或 A + B,其中 A 和 B 都是有效的括号字符串,+ 代表字符串的连接.例如 ...

  4. 重写(Overriding)和重载(Overloading)

    方法的重写(Overriding)和重载(Overloading)是java多态性的不同表现,重写是父类与子类之间多态性的一种表现,重载可以理解成多态的具体表现形式. (1)方法重载是一个类中定义了多 ...

  5. 十一. for of

    const fruits = ['Apple','Banana','Orange','Mango']; es5: 可读性差 for(let i=0; i < fruits.length; i + ...

  6. The Preliminary Contest for ICPC Asia Nanjing 2019 C. Tsy's number 5

    https://nanti.jisuanke.com/t/41300 题意:求\(\sum_{i=1}^n\phi(i)\phi(j)2^{\phi(i)\phi(j)}\) \(f_i=\sum_{ ...

  7. EJB(Enterprise JavaBean)科普

    该文章是引用的,主要用于自己的学习,然后是记载免得忘记的时候到处乱找.结尾有引用地址. 到底EJB是什么?被口口相传的神神秘秘的,百度一番,总觉得没有讲清楚的,仍觉得一头雾水.百度了很久,也从网络的文 ...

  8. Vue .sync修饰符与$emit(update:xxx)写法问题

    在学习vue自定义事件的.sync修饰符实现改变数值时发现一个问题如下由于props的大小写命名:fatherNum,对应不同的$emit()会有不同的效果,具体如下: 使用.sync修饰符,即 // ...

  9. Hive学习笔记简版

    一.概述 1. Hive是Apache提供的基于Hadoop的数据仓库管理工具2. Hive提供了类SQL语言来操作Hadoop,底层会将SQL转化为MapReduce来执行,所以效率会比较低3. H ...

  10. VMware Workstation 10 简体中文安装教程

    分享到 一键分享 QQ空间 新浪微博 百度云收藏 人人网 腾讯微博 百度相册 开心网 腾讯朋友 百度贴吧 豆瓣网 搜狐微博 百度新首页 QQ好友 和讯微博 更多... 百度分享 分享到 一键分享 QQ ...