bolb :
对于bolb,一般用于对图片
的数据库存储,原理是把图片打成二进制,然后进行的一种存储方式,在java中对应byte[]数组。
boolen:
对于boolen类型,在mysql数据库中,个人认为用int类型代替较好,对bit操作不是很方便,尤其是在具有web页面开发的项目中,表示0/1,对应java类型的Integer较好。
decimal:
decimal列的声明语法是decimal(m,d)。
在mysql5.1中,参数的取值范围:
m是数字的最大数(精度)。
其范围为1~65(在较旧的MySQL版本中,允许的范围是1~254)。
d是小数点右侧数字的数目(标度)。
其范围是0~30,但不得超过M。
说明:
float占4个字节,
double占8个字节,
decimail(M,D)占M+2个字节。
如DECIMAL(5, 2) 的最大值为9 9 9 9 . 9 9,因为有7 个字节可用。
select * from products limit 3,4;
select distinct vend_id from products;
插入数据库的顺序
(默认认为顺序没有意义)select prod_name from products order by prod_name;
非选择的列
默认升序
select prod_id,prod_price,prod_name
from products
order by prod_price,prod_name;
排序完全按照顺序排序
,即第一个列出现重复才排第二个列指定排序方向
DESC关键字
select prod_id,prod_price,prod_name
from products
order by prod_price DESC,prod_name;
每个列后加一个DESC关键字
select prod_name,prod_price
from products
where prod_name = 'fuses';
不区分大小写
,对结果也是如此限定字符串
范围值的检查
select prod_name,prod_price
from products
where prod_price BETWEEN 5 AND 10;
数据包括制定的值
空值检查
select prod_name
from products
where prod_price IS NULL;
在匹配过滤或不匹配过滤中,不返回它们
AND和OR操作符
与运算
或运算
select prod_name,prod_price
from products
where vend_id = 1002 OR vend_id = 1003 AND prod_price >=10
SQL在处理OR操作符之前优先处理AND操作符
供应商1003制造的任何价格大于等于10以上的产品或者1002制造的任何产品
消除歧义
select prod_name,prod_price
from products
where (vend_id = 1002 OR vend_id = 1003) AND prod_price >=10
条件的范围
,范围内的每个条件都可以进行匹配select select prod_name,prod_price
from products
where vend_id IN (1002,1003)
ORDER BY prod_name;
使用IN的好处
使用IN比OR执行快
包含其他select语句
NOT操作符
select select prod_name,prod_price
from products
where vend_id NOT IN (1002,1003)
ORDER BY prod_name;
LIKE操作符
%
”select select prod_name,prod_price
from products
where prod_name LIKE 'jet%';
不支持匹配NULL
select select prod_name,prod_price
from products
where prod_name LIKE '_ ton anvil';
_
”只匹配一个字符,不能多不能少
使用通配符的技巧
性能差
基本字符匹配
select select prod_name,prod_price
from products
where prod_name REGEXP '.000'
ORDER BY prod_name;
进行或匹配
select select prod_name
from products
where prod_name REGEXP '1000|2000'
ORDER BY prod_name;
匹配几个字符之一
select select prod_name
from products
where prod_name REGEXP '[123] Ton'
ORDER BY prod_name;
拼接列
select Concat(vend_name , '(' , vend_country , ')' )
from vendors
ORDER BY vend_name;
使用别名
select Concat(vend_name , '(' , vend_country , ')' ) AS vend_title
from vendors
ORDER BY vend_name;
select prod_id,quantity,item_price
quantity * item_price AS expanded_price
from orderitems
where order_num = 2005;