1. 基本查询:

表名product

mysql中价格大于0怎么写 sql查询价格大于40的_数据库

Distinct去重复

#查询商品名和商品价格. select pname,price from product;

#去掉重复值. select distinct price from product;

#查询结果是表达式(运算查询):将所有商品的价格+10元进行显示.

select pname,price+10 from product;

#查询商品名称为“花花公子”的商品所有信息:

SELECT * FROM product WHERE pname = '花花公子'

#查询价格为800商品 SELECT * FROM product WHERE price = 800

#查询价格不是800的所有商品

SELECT * FROM product WHERE price != 800

SELECT * FROM product WHERE price <> 800

#查询商品价格大于60元的所有商品信息 SELECT * FROM product WHERE price > 60;

#查询商品价格在200到1000之间所有商品

SELECT * FROM product WHERE price >= 200 AND price <=1000; SELECT * FROM product WHERE price BETWEEN 200 AND 1000;

#查询商品价格是200或800的所有商品

SELECT * FROM product WHERE price = 200 OR price = 800;

#查询含有'霸'字的所有商品 SELECT * FROM product WHERE pname LIKE '%霸%';

#查询以'香'开头的所有商品 SELECT * FROM product WHERE pname LIKE '香%';

#查询第二个字为'想'的所有商品 SELECT * FROM product WHERE pname LIKE '_想%';

  1.  排序查询

SELECT * FROM 表名 ORDER BY 排序字段 ASC|DESC;

#ASC 升序 (默认) #DESC 降序

#在价格排序(降序)的基础上,以分类排序(降序) SELECT * FROM product ORDER BY price DESC,category_id DESC;    # category_id是表格中的类型

#使用价格排序(降序) SELECT * FROM product ORDER BY price DESC;

#在价格排序(降序)的基础上,以分类排序(降序)

SELECT * FROM product ORDER BY price DESC,category_id DESC;

 #显示商品的价格(去重复),并排序(降序)

SELECT DISTINCT price FROM product ORDER BY price DESC;

  1.  聚合查询

count:统计指定列不为NULL的记录行数;

sum:计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0;

max:计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;

min:计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;

 

#查询商品的总条数    SELECT COUNT(*) FROM product;

#查询价格大于200商品的总条数

SELECT COUNT(*) FROM product WHERE price > 200;

#查询分类为'c001'的所有商品的总和

SELECT SUM(price) FROM product WHERE category_id = 'c001';

  1.  分组查询

SELECT 字段1,字段2… FROM 表名 GROUP BY分组字段 HAVING 分组条件;

#统计各个分类商品的个数

SELECT category_id ,COUNT(*) FROM product GROUP BY category_id ;

#统计各个分类商品的个数,且只显示个数大于1的信息

SELECT category_id ,COUNT(*) FROM product GROUP BY category_id HAVING COUNT(*) > 1;

  1.  JDBC

JDBC实际上就是一种执行sql语句的java api    是访问数据库的标准规范,能够为不同的关系型数据库提供统一访问

       通过jdbc实现数据库的增删改查

  1.  数据库的数据类型

整数类型:tinyint, smallint, mediumint, int, bigint

浮点数类型:float, double

定点小数:decimal

日期时间类型:year, time, date, datetime, timestamp

字符串类型:char, varchar, text, enum, set

二进制类型:bit, binary, varbinary, blob

  1.  数据库的索引

索引是快速搜索的关键

索引分为单列索引, 组合索引

               单列索引:一个索引只包含单个列,一个表有多个单列索引

               组合索引:一个索引包含多个列

Mysql的索引类型:

                             普通索引

                             唯一索引

                             主键索引

                             组合索引

索引的不足:    降低更新表的速度

                            建立索引会占用磁盘空间的索引文件,如果在一个表上创建太多的索引

       什么情况下使用索引造成索引失效:

对索引进行运算,隐式转换,使用oracl内部函数,sql代码中使用双引号不使用分区索引,

 

  1.  数据库的优化
  2. 避免全表扫描,该考虑在where以及order by涉及的列上建立索引
  3. 避免在where子句中进行null值判断
  4. 避免在where子句中使用!=或者<>操作符
  5. 避免在where子句中使用or做链接符
  6. In, not in 慎用
  7. 避免在where中使用参数
  8. 避免where子句中对字段进行表达式操作,函数操作
  9. 不要再where子句中=左边进行函数算术运算或者其他表达式运算
  10. 尽量避免没有意义的查询
  11. 用exists代替in
  12. 在表中创建索引时尽量不要超过6个否则会降低insert和update的效率
  13. 不要使用*,使用具体的字段代替*
  14. 尽量使用varchar, nvarchar代替char, nchar
  15. 避免频繁创建和删除临时表,使用表变量代替临时表
  16. 尽量避免大事务的操作提高系统并发能力
  17.  Mysql的事务隔离级别

事务基本要素:原子性,一致性,持久性,隔离性

事务的并发问题:脏读,幻读,不可重复度

事务的隔离级别:读未提交,读已提交,重复度,序列化

默认的事物隔离级别是:读已提交

  1. 数据库的版本控制是什么

Mvcc

  1. Mysql引擎innodb和myisam的区别

MyIASM是MySQL默认的引擎,但是它没有提供对数据库事务的支持,也不支持行级锁和外键

Innodb引擎提供了对数据库ACID事务的支持,并且实现了SQL标准的四种隔离级别。该引擎还提供了行级锁和外键约束,它的设计目标是处理大容量数据库系统,它本身其实就是基于MySQL后台的完整数据库系统

1、MyIASM是非事务安全的,而InnoDB是事务安全的

2、MyIASM锁的粒度是表级的,而InnoDB支持行级锁

3、MyIASM支持全文类型索引,而InnoDB不支持全文索引

4、MyIASM相对简单,效率上要优于InnoDB,小型应用可以考虑使用MyIASM

5、MyIASM表保存成文件形式,跨平台使用更加方便