• mysql基础


    一、DBMS 数据库管理系统

    二、DB 数据库DataBase

    三、SQL

    结构化查询语言(Structured Query Language),是关系数据库的标准语言,它的特点是:简单、灵活、功能强大。

    1SQL的分类:

    DQL:数据查询语言

    DML:数据操作语言(数据的增删改)

    DDL:建表语句:库,表的维护语句

    2表的约束:

    非空(NOT NULL)

    主键约束(PRIMARY KEY):非空且唯一

    自然主键:使用具有业务含义的列。(不推荐)

    代理主键:使用没有业务含义的列。ID(推荐)

    3DQL:查询(单表)

    ①简单查询

    SELECT 列名1,列名2,列名3 FROM (表,视图,子查询) 数据源;

    SELECT id,salePrice FROM product;

    SQL 执行的方式

    1.右键 选择->执行已选择的

    2.右键 选择-》ctrl+shift+r

    : 查询商品的分类编号(看看有哪些分类)

    SELECT dir_id FROM product;

    ②去重 DISTINCT

    SELECT DISTINCT dir_id FROM product;

    ③数学运算:

    查询所有货品的id,名称和批发价(批发价=卖价*折扣)

    SELECT dir_id,productName,salePrice*cutoff FROM product;

    查询所有货品的id,名称,和各进50个的成本价(成本=costPrice)

    SELECT dir_id,productName,costprice*50 FROM product;

    查询所有货品的id,名称,各进50个,并且每个运费1元的成本

    SELECT dir_id,productName,(costPrice+1)*50 FROM product;

    ④设置别名,隐藏复杂的表达式

    SELECT dir_id,productName,(costPrice+1)*50 AS tradePrice FROM product;

    ⑤java和MySQL常用类型对照:

    JAVA Java备注 MYSQL MYSQL备注

    Int 短整型 int 短整型

    long 长整型 bigint 长整型

    bigdecimal 金融数据 decimal 金融数据

    String 字符串 char 不可变字符串

    varchar 可变字符串

    ⑥条件查询

    SELECT 列名1,列名2,列名3 FROM (表,视图,子查询) 数据源 WHERE 条件;

    查询货品零售价为119的所有货品信息;

    SELECT * FROM product WHERE salePrice = 119;

    查询货品名为罗技G9X的所有货品信息;

    SELECT * FROM product WHERE productName = '罗技G9X';

    查询货品名 不为 罗技G9X的所有货品信息;

    SELECT * FROM product where productName != '罗技G9X';

    查询分类编号不等于2的货品信息;

    SELECT * FROM product WHERE dir_id != 2;

    查询货品名称,零售价小于等于200的货品;

    SELECT * FROM product WHERE salePrice <= 200;

    查询id,货品名称,批发价大于350的货品;

    SELECT dir_id,productName,salePrice FROM product WHERE salePrice > 350;

    条件查询之逻辑运算(AND OR NOT)

    选择id,货品名称,批发价在300-400之间的货品;

    SELECT dir_id,productName,salePrice*cutoff FROM product WHERE salePrice*cutoff>=300 AND salePrice*cutoff<=400;

    选择id,货品名称,分类编号为2,4的所有货品;

    SELECT dir_id,productName FROM product WHERE dir_id= 2 OR dir_id = 4;

    选择id,货品名词,分类编号不为2的所有商品;

    SELECT dir_id,productName FROM product WHERE NOT dir_id= 2;

    选择id,货品名称,分类编号的货品零售价大于等于250或者是成本大于等于200;

    SELECT dir_id,productName FROM product WHERE salePrice >= 250 OR costPrice >=200;

    范围查询(BETWEEN AND)

    选择id,货品名称,批发价在300-400之间的货品;

    SELECT dir_id,productName,salePrice*cutoff FROM product WHERE salePrice*cutoff BETWEEN 300 AND 400;

    选择id,货品名称,批发价不在300-400之间的货品;

    SELECT dir_id,productName,salePrice*cutoff FROM product WHERE salePrice*cutoff NOT BETWEEN 300 AND 400;

    集合(IN):IN指的是只选择这个值对应的记录

    选择id,货品名称,分类编号为2,4的所有货品;

    SELECT dir_id,productName FROM product WHERE dir_id IN (2,4);

    选择id,货品名称,分类编号不为2,4的所有货品;

    SELECT dir_id,productName FROM product WHERE dir_id NOT IN(2,4);

    空值查询(IS NULL)

    查询商品名为NULL的所有商品信息;

    SELECT * FROM product WHERE productName IS NULL;

    查询商品名为NULL的所有商品信息;

    SELECT * FROM product WHERE productName NOT IS NULL;

    一般来说NOT都是放在where后面的条件之前,但是IS NULL 这个是放在它俩中间,如下:

    SELECT * FROM product WHERE productName IS NOT NULL;

    模糊查询(LIKE)

    匹配的规则:

    _ :匹配任意的一个字符

    % :匹配任意的多个字符

    查询id,货品名称,货品名称匹配'%罗技M9_';

    SELECT dir_id,productName FROM product WHERE productName LIKE '%罗技M9_';

    正则表达式查询(REGEXP)

    需求:查询包含字母的商品信息;

    SELECT * FROM product WHERE productName REGEXP '[a-z]';

    排序(ORDER BY)

    SELECT 列 FROM tableName ORDER BY 排序的列 排序的规则;

    默认是升序排列 ASC;

    降序是 DESC;

    选择id,货品名称,分类编号,零售价先按分类编号排序,再按零售价排序;

    SELECT id,productName,dir_id,salePrice FROM product ORDER BY dir_id,salePrice;

    选择id,货品名称,分类编号,零售价并且按零售价降序排序;

    SELECT id,productName,dir_id,salePrice FROM product ORDER BY salePrice DESC;

    查询M系列并按照批发价排序(加上别名);

    SELECT *,salePrice*cutoff AS tradePrice FROM product WHERE productName LIKE '%M%' ORDER BY tradePrice;

    查询分类为2并按照批发价排序(加上别名);

    SELECT *,salePrice*cutoff AS tradePrice FROM product WHERE dir_id = 2 ORDER BY tradePrice;

    分页(LIMIT)

    分页的关键字 LIMIT(开始的索引,每页的条数);

    分页设计:

    假分页(逻辑分页): 把数据全部查询出来,存在于内存中,翻页的时候,直接从内存中去截取.

    真分页(物理分页): 每次翻页都去数据库中去查询数据.

    假分页: 翻页比较快,但是第一次查询很慢,若数据过大,可能导致内存溢出.

    真分页: 翻页比较慢,若数据过大,不会导致内存溢出.

    分页:一页有五条数据,假如是从0开始的,name第n页索引为(n-1)*5 --- n*5-1

    第三页

    SELECT * FROM product LIMIT 10,5;

    第四页

    SELECT * FROM product LIMIT 15,5;

    ⑮聚合函数

    最大值:max(列名称)

    最小值:min(列名称)

    平均值:AVG(列名称)

    总和:  SUM(列名称)

    总记录数:count(列名称)

    查询有多少条商品信息

    SELECT count(productName) from product;

    查询所有商品平均零售价

    select AVG(salePrice) FROM product;

    查询商品总记录数(注意在Java中必须使用long接收)

    SELECT count(*) FROM product;

    查询分类为2的商品总数

    SELECT count(*) FROM product WHERE dir_id = 2;

    查询商品的最小零售价,最高零售价,以及所有商品零售价总和

    SELECT min(salePrice),MAX(salePrice),SUM(saleprice) FROM product;

    分组(GROUP BY 一般和聚集函数一起使用)

    查询每个商品分类编号和每个商品分类各自的平均零售价;

    SELECT dir_id,AVG(salePrice) FROM product GROUP BY dir_id;

    查询每个商品分类编号和每个商品分类各自的商品总数;

    SELECT dir_id,count(*) FROM product GROUP BY dir_id;

    查询每个商品分类编号和每个商品分类中零售价大于100的商品总数;

    SELECT dir_id,count(*) FROM product WHERE salePrice > 100 GROUP BY dir_id;

    查询零售价总和大于1500的商品分类编号以及总零售价和;

    where  条件后面不能使用聚集函数,HAVING后面可以使用聚合函数

    SELECT dir_id,sum(salePrice) AS total FROM product GROUP BY dir_id HAVING total > 1500;

  • 相关阅读:
    modal 过程中添加动画
    SVSegmentedControl 标签页
    带输入框的UIAlertView
    Django小结
    译Step-by-Step Guide on Configuring Django-Userena
    使用国内镜像通过pip安装python 包
    pycryto实现AES加密解密算法
    notepad++搜索的一些东西
    [转]notepad++正则表达式替换字符串详解
    [转]Notepad++快捷键
  • 原文地址:https://www.cnblogs.com/limengkun/p/10781058.html
Copyright © 2020-2023  润新知