您的位置:首页 > 数据库 > MySQL

mysql数据库学习汇总

2015-12-30 11:01 525 查看
MySQL学习汇总

字段类型

Int类型占4个字节,32位,无符号最小值是0,最大值那就是4294967295,和Java基本类型差不多。建表的时候定义的长度比如Int(5),这个5跟字段类型允许的值范围无关,只是在数据库表中现实的位数为5;位数不够用0填补(前提设置了zero fill)。比如你存的数字是123,在数据库中显示为00123,但是读出来还是123,没有0;位数大于5,比如存123456,就还是显示123456;

Varchar类型后面的数字稍有不一样,比如varchar(50)这个五十是什么意思呢?这个跟MySQL版本有关:

4.0版本以下,varchar(50),指的是50字节,如果存放UTF8汉字时,只能存16个(每个汉字3字节)

5.0版本以上,varchar(50),指的是50字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放50个,尽管utf-8编码的汉子占3个字节;

连接查询:先看表数据:





简单连接查询:简单不多说

/* 简单连接 */
select * from user u, classmates.order o where u.id=o.userId and money=99.9;


左连接查询和结果截图:

/* 左连接查询 */
SELECT u.id, u.realName, o.orderNo, o.money
FROM user u left join classmates.order o
on u.id = o.userId;



可以这么理解,左连接就是以左边的表为准,左边表数据全部会列出

右连接查询和结果截图:

/* 右连接查询 */
SELECT u.id, u.realName, o.orderNo, o.money
FROM user u right join classmates.order o
on u.id = o.userId;



右连接就是以右边表为准,把右边表所有的数据都列出来。

内连接:

/* 内连接查询 */
SELECT u.id, u.realName, o.orderNo, o.money
FROM user u inner join classmates.order o
on u.id = o.userId;

MySQL内连接的数据记录中,不会存在字段为NULL的情况。可以简单地认为,内链接的结果就是在左连接或者右连接的结果中剔除存在字段为NULL的记录后所得到的结果。

但是左右连接到底有什么用处呢,或者在什么情景下使用呢,还没想明白,待考证

分页查询

索引:http://blog.csdn.net/kennyrose/article/details/7532032
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: