---恢复内容开始---

登录

>mysql -uroot -p1234

mysql登录 -u+用户 -p 密码

显示数据库

show databases;

使用某个数据库

use xxx;

显示数据库表

show tables

显示表结构

show columns form xxx;//表名

select选择

使用distinct来输出MYsql只返回不同的值

select distinct email from user//必须放在这个字段的前面

部分不能使用这个关键字(这个关键字用于可以用于所有列)除非指定的两个列都不同,否则所有的行都被检索出来

limit限制结果


  select id from user limit 5,10

第一个参数为下标从几个开始,从下标为0开始

第二个参数为要检索的行数

排序:(asc 正序 desc 逆序)

select id from user order by id limit 0,10

必须先进行排序后进行限制结果不然会报错的

is null和=null的区别

按照ANSI SQL标准,下面的两个查询都不返回任何行:

查询一: SELECT * FROM test WHERE data=NULL

查询二: SELECT * FROM test WHERE data<>NULL

详细:http://blog.csdn.net/freshlover/article/details/8973266

where中的not关键字很有用在复杂的语句中

  select * from user where id not in(12,13); 

Like的通配符的进行过滤

select * from user where name LIKE 'a%';

注意在这里面的字符是区分大小写的,%代表可以出任意次数。

select * from user where name LIKE 'a_';

_代表一个字符匹配!

mysql 使用concat来对字符进行连接

select concat(id,'(',name,')') from t_user;

mysql 中如果使用时间作为查询条件的话,最好使用Date()函数来修饰这个时间字段

select * from t_user where Date(someTime)='2016-01-01';

因为如果你的数据库的时间是timeStamp类型的话带有时分秒会导致其检索失败;

group By分组查询

 select count(id) as c,position as  p  from t_user group by position having c >10;

相关组查询中having组查询中的筛选条件,

select 的顺序

  From 检索的表

  where 查询条件(行级过滤)

  group BY 分组说明

  having 组级过滤

  order by 输出排序的顺序

  Limit 要检索的行数

利用where语句进行多表查询

select m.sendto,u.name from t_mail as m,t_user as u where m.senderid=u.id group by u.id;

利用内联

---恢复内容结束---

登录

>mysql -uroot -p1234

mysql登录 -u+用户 -p 密码

显示数据库

show databases;

使用某个数据库

use xxx;

显示数据库表

show tables

显示表结构

show columns form xxx;//表名

select选择

使用distinct来输出MYsql只返回不同的值

select distinct email from user//必须放在这个字段的前面

部分不能使用这个关键字(这个关键字用于可以用于所有列)除非指定的两个列都不同,否则所有的行都被检索出来

limit限制结果


  select id from user limit 5,10

第一个参数为下标从几个开始,从下标为0开始

第二个参数为要检索的行数

排序:(asc 正序 desc 逆序)

select id from user order by id limit 0,10

必须先进行排序后进行限制结果不然会报错的

is null和=null的区别

按照ANSI SQL标准,下面的两个查询都不返回任何行:

查询一: SELECT * FROM test WHERE data=NULL

查询二: SELECT * FROM test WHERE data<>NULL

详细:http://blog.csdn.net/freshlover/article/details/8973266

where中的not关键字很有用在复杂的语句中

  select * from user where id not in(12,13); 

Like的通配符的进行过滤

select * from user where name LIKE 'a%';

注意在这里面的字符是区分大小写的,%代表可以出任意次数。

select * from user where name LIKE 'a_';

_代表一个字符匹配!

mysql 使用concat来对字符进行连接

select concat(id,'(',name,')') from t_user;

mysql 中如果使用时间作为查询条件的话,最好使用Date()函数来修饰这个时间字段

select * from t_user where Date(someTime)='2016-01-01';

因为如果你的数据库的时间是timeStamp类型的话带有时分秒会导致其检索失败;

group By分组查询

 select count(id) as c,position as  p  from t_user group by position having c >10;

相关组查询中having组查询中的筛选条件,

select 的顺序

  From 检索的表

  where 查询条件(行级过滤)

  group BY 分组说明

  having 组级过滤

  order by 输出排序的顺序

  Limit 要检索的行数

利用where语句进行多表查询

select m.sendto,u.name from t_mail as m,t_user as u where m.senderid=u.id group by u.id;

利用内联 使用inner join on进行内联

 select m.sendto,u.name from t_mail as m Inner join t_user as u on  m.senderid=u.id group by u.id;

外联 查找那些和他没相关的信息也就是另一张表为空

左外联

 select m.sendto,u.name from t_mail as m left outer join t_user as u on  m.senderid=u.id group by u.id;

右外联

 select m.sendto,u.name from t_mail as m right outer join t_user as u on  m.senderid=u.id group by u.id;

这两种的外连接的区别的是left是以左边的表为主列出他的所有的行,与右边的表进行匹配

内联和外联的区别是

是不是将没有关联的字段加入

插入数据

insert into user values(1,'a');//需要插入该表的所有的字段的数据

不推荐 使用上面的用法

最好是使用指定列名

 insert into user(id,name) values(1,'a');//指定列名可以保证数据表结构改变了也可以正常运行

多条数据插入(用,分隔)

 insert into user(id,name) values(1,100),(2,300);

插入检索出来的数据

insert into user(id,name) select id ,name from user

创建一个表

 CREATE TABLE info(
id int not null primary key AUTO_INCREMENT,
content char(50)
)

删除表

drop table user;

重命名

rename table info to info2;

事务

start TRANSACTION//开启事务
insert into info2(id ,name) values(1,'');
commit;//提交

mysql那些事的更多相关文章

  1. mysql那些事之索引篇

    mysql那些事之索引篇 上一篇博客已经简单从广的方面介绍了一下mysql整体架构以及物理结构的内容. 本篇博客的内容是mysql的索引,索引无论是在面试还是我们日常工作中都是非常的重要一环. 索引是 ...

  2. mysql那些事(6) WHERE条件 字符串的引号

    前言:所谓的坑,两个意思,一个是软件本身的bug,一个是使用者常犯的错误. phper在日常开发中经常和mysql打交道.特别是在没有分层的中小应用中,phper开发要关注sql语句的实现. 入正题, ...

  3. mysql那些事(5)建表存储引擎的选择

    在mysql见表的时候,会遇到选择存储引擎:MyISAM和InnoDB.究竟用哪种存储引擎好呢? 1.MyISAM:表锁:支持全文索引:读并发性能较好. 2.InnoDB:行锁:支持事务,支持外键:写 ...

  4. mysql那些事(4)建库建表编码的选择

    mysql建数据库或者建表的时候会遇到选择编码的问题,以前我们都是习惯性的选择utf8,但是在mysql在5.5.3版本后加了utf8mb4的编码,utf8mb4可以存4个字节Unicode,mb4就 ...

  5. mysql那些事(3)小数如何存储

    创建mysql数据表的时候,经常会遇到存储小数(浮点数)的情况,如:价格,重量,身高等. 目前大的公司流行三种存储方案: 1.将数据扩大10的倍数达到使用整数类型存储目的. 比如价格,我们经常以分为单 ...

  6. mysql那些事(2)时间类型数据如何存储

    几乎每次数据库建模的时候,都会遇到时间类型数据存储的问题. mysql存储时间通常选择这四种类型:datetime.timestamp.int和bigint四种方式,到底使用什么类型,需要看具体的业务 ...

  7. mysql那些事(1)手机号与座机号码如何存储

    创建mysql数据表的时候,经常会遇到手机号码和座机号码数据的存储问题. 先说手机号码:很多人喜欢使用数字来进行存储,手机号不涉及到运算,并且有时候要带括号,加号之类的字符,有时候还要以0开头.所以, ...

  8. MYSQL 那些事

    1.一条update语句 1.先通过引擎找到对应的行数据,并加锁 2.对行数据进行修改并调用引擎接口修改这条数据,然后释放锁(此时并没有把数据在磁盘上做出修改) 3.redo log在内存中生成这条u ...

  9. PHP基础之与MySQL那些事

    前言 这篇文章会对PHP的MySQL扩展库,MySQLI的扩展库,SQL批量执行,事务控制等等进行一些简单的讲解. MySQL扩展 PHP中MySQL扩展,虽然因为安全的原因,在PHP5.6及往上不在 ...

随机推荐

  1. [知了堂学习笔记]_css3特效第二篇--行走的线条&&置顶导航栏

    一.行走的线条. 效果图(加载可能会慢一点儿,请稍等...): html代码: <div class="movingLines"> <img src=" ...

  2. python实现冒泡排序和快速排序

    冒泡排序和快排的python实现: data = [1, 3, 5, 10, 4, 7] times = 0 "冒泡排序" for i in range(len(data)): f ...

  3. 二叉搜索树的平衡--AVL树和树的旋转(图解)

    二叉搜索树只有保持平衡时其查找效率才会高. 要保持二叉搜索树的平衡不是一件易事.不过还是有一些非常经典的办法可以做到,其中最好的方法就是将二叉搜索树实现为AVL树. AVL树得名于它的发明者 G.M. ...

  4. es6重点笔记:对象

    1,Object.is():比较两个值是否严格相等,es5的'===',不能判断+0和-0,还有NaN,但是es6的Object.is()可以区分 Object.is(+0, -0); // fals ...

  5. Python装饰器小代码

    # coding=utf-8import timedef outer(fun): def inner(): start = time.time() fun() runtime = time.time( ...

  6. [转]js 正则表达式

    一.正则表达式中包括的元素 1.原子(普通字符:a-z A-Z 0-9 .原子表. 转义字符) 2.元字符 (有特殊功能的字符) 3.模式修正符 (系统内置部分字符 i .m.S.U…) 二.正则表达 ...

  7. Asp.net Core 入门实战

    Asp.Net Core 是开源,跨平台,模块化,快速而简单的Web框架. Asp.net Core官网的一个合集,方便一次性Clone 目录 快速入门 安装 一个最小的应用 项目模板 路由 静态文件 ...

  8. lambda高级进阶--表达式参数

    1,现在我们封装一个方法,来提供一个比较器,显然比较器是拥有两个参数的--用来比较的两个值. public class Linkin { public static String[] sort(Str ...

  9. MyEclipse中阿里JAVA代码规范插件(P3C)的安装及使用

    JAVA代码规范插件(P3C)是阿里巴巴2017年10月14日在杭州云栖大会上首发的,使之前的阿里巴巴JAVA开发手册正式以插件形式公开走向业界.插件的相关信息及安装包都可以在GitHub(https ...

  10. Docker入门之常用命令

    写在前面 细数当前最流行的技术莫过于容器化和人工智能了,而容器化技术能有今天的热度,Docker可谓功不可没. 让我们一起来回顾一下Docker 是什么? 是一种虚拟化技术 能够将应用程序自动部署到容 ...