重新阅读MySQL必知必会一书的笔记整理
----------------------以下内容编写于2016-02-19------------------------>
一 数据库建议使用版本
建议使用mysql版本为:5.6.16
二 创建数据时使用编码:
Database charset: utf8
Database collection: utf8_unicode_ci
用unicode对中文字符做处理,防止出现乱码;ci是 case insensitive, 即 "大小写不敏感";
utf8_general_ci 不区分大小写,这个你在注册用户名和邮箱的时候就要使用;
utf8_general_cs 区分大小写,如果用户名和邮箱用这个 就会照成不良后果;
utf8_bin:字符串每个字符串用二进制数据编译存储。 区分大小写,而且可以存二进制的内容。
三 mysql命令行实用程序
mysql -u root -p -h localhost -p 3306
(给出用户名,主机名,端口和口令)
----------------------以下内容编写于2016-02-20------------------------------------>
四 数据检索
sql语句是不区分大小写的,一般情况下,开发人员有这样的习惯:SQL关键字使用大写,而对所有的列和表名使用小写。
1 检索单个列:select prod_name from products;
2 检索多个列:select prod_id,prod_name,prod_price from products;
3 检索所有列:select * from products;
最后别使用*通配符,检索不必要的列通常会降低检索和应用程序的性能。
4 检索不同的行:select distinct vend_id from products;
5 limit关键字的使用:select prod_name from products limit 5;
limit 5 返回前5行;
limit 5,5 返回从第5行开始【偏移量为5,意思就是前5行不包括,从第6行开始的数据,包括第6行】的5行
检索出来的第一行为行0,而不是行1,So,litmit 1,1 将检索出第二行而不是第一行
五 排序检索数据
1 排序数据:select prod_name from products order by prod_name;
asc 升序(默认)
desc 降序, 必须显式声明
六 过滤数据
1 sql过滤与应用过滤的选择:优先选择sql过滤
sql的select语句为客户机应用检索出超过实际所需的数据,然后客户机代码对返回数据进行循环,以提取需要的行,
通常,这种实现并不令人满意。因此,对数据库进行了优化,以便快速有效地对数据进行过滤。让客户机应用(或开发语言)
处理数据库的工作将会极大地影响应用的性能,并且使创建的应用完全不具备可伸缩性。
此外,在客户机上过滤数据,服务器不得不通过网络发送多余的数据,这样导致网络带宽的浪费。
2 where子句操作符有:
= 等于
!= 不等于
<(=) 小于
>(=) 大于
between 在指定的两个值之间
3 范围值检查:between
select prod_name,prod_price from products where prod_pricie between 5 and 10;
在使用between时,必须指定两个值【所需范围的低端值和高端值,查找结果中,包括开始值和结束值】,可以指定日期,数字。
4 空值检查:is null
select prod_name from products where prod_price is null;