zoukankan      html  css  js  c++  java
  • mysql初级

    1、SQL关键字优先级

    查询零售价总和大于1500的商品分类编号以及总零售价和 要求:商品的零售价大30

    商品的名称不能为null 每页数据取5条(第一页)并且结果按照降序排列

    SELECT dir_id,SUM(IFNULL(salePrice,0)) AS ZH  FROM product WHERE salePrice>30 AND productName IS NOT NULL GROUP BY dir_id LIMIT 0,5 HAVING ZH>1500 ORDER BY ZH DESC;

    mysql关键字执行顺序:  from    where   select    GROUP BY   limit   HAVING    ORDER BY

    2外键约束(FOREIGN KEY)(真实开发一般不用:效率比较低;后面用框架保真数据的准确性)

    1.外键用于约束数据的准确性

    2.外键用作数据的关联

    3笛卡尔积(在SQL里面叫做无条件的内连接)

    1. 没有连接条件的表关系返回的结果(表之间数据组合的结果)。

    2. 多表查询会产生笛卡尔积:

    假设集合A={a,b},集合B={0,1,2},则两个集合的笛卡尔积为{(a,0),(a,1),(a,2),(b,0),(b,1),(b,2)}

    3.在内连接、外链接、自查询、子查询中我们使用等值查询来避免笛卡尔积(on字句里面)

    4内连接(有条件)(当有一方数据为null时,这两个数据都会丢弃)

    语法格式:SELECT FROM 1 INNER(可省略) JOIN 2 ON 等值条件 INNER(可省略) JOIN 3 on 等值条件   

    查询货品id,货品名称,货品所属分类名称

    SELECT  product.id,productName,productdir.id

    FROM product INNER JOIN productdir

    ON product.dir_id = productdir.id;

    查询零售价大于200的无线鼠标

    SELECT *

    FROM product JOIN productdir

    ON product.dir_id = productdir.id

    where salePrice>200 AND productdir.id = 3;

    5外链接查询

    SELECT FROM 1 LEFT JOIN 2 ON 等值条件 LEFT JOIN 3 on 等值条件

    特点:数据是左边表为准,当右边的数据不匹配时 使用 null  来填充

    查询每种商品分类的名称和包含的商品库存总数:

    SELECT p.productName,d.dirName,s.store_num

    FROM product p LEFT JOIN product_dir d ON p.dir_id=d.id LEFT JOIN product_stock s ON s.product_id =p.id

    IFNULL(expr1,expr2):第一个值为需要填充的列,第二个值为需要填充的值,IFNULL(expr1,expr2)表示填充列的值,也就是填充列的数据

    6自查询(表自身具有等级,查询时将自身分为两个表)

    查询员工编号大于其领导编号的每个员工的姓名、职位、领导名称。

    SELECT A.ENAME,A.JOB,D.ENAME

    FROM (SELECT EMPNO,ENAME,JOB,MGR FROM EMP) A LEFT JOIN(SELECT EMPNO,ENAME FROM EMP) D

    ON A.MGR = D.EMPNO

    WHERE A.EMPNO>D.EMPNO;

    7子查询(一个查询语句嵌套在另一个查询语句中,内层查询的结果可以作为外层查询条件。

    一般的,嵌套在WHERE或者FROM字句中)

    查询零售价比罗技MX1100更高的所有商品信息。

    SELECT * FROM product where saleprice>(SELECT saleprice FROM product where productName='罗技MX1100')

    DMl(数据操作:增删改)

    8插入数据:

    方式一:

    INSERT INTO tableName(列名1,列名2...) VALUES(1,2...),(1,2...) ,(1,2...)

    方式二:

    INSERT INTO tableName VALUES(1,2...)  

    方式三: 插入查询的结果

    INSERT INTO tableName(列名1,列名2...) SELECT 语句

    9、修改数据

    UPDATE tableName SET =值,列=值  WHERE  筛选条件(如果没有筛选条件,则会修改全部)

    10、删除数据

    DELETE FROM tableName WHERE 筛选条件(如果不加筛选条件,则会删除所有数据)

    11备份与恢复(工具(拷贝)与命令)

    命令:

    导出数据:

    mysqldump -uroot -p密码 -h ip   -P端口 库>本地地址

    导入命令

    mysql -uroot -p密码 -h ip   -P端口 库<本地文件地址

  • 相关阅读:
    shiro源码篇
    python内置模块之collections(六)
    python之自然语言处理入门(一)
    python第三方库之numpy基础
    python算法之近似熵、互近似熵算法
    MongoDB之conf配置文件详解(五)
    MongoDB之主从复制和副本集(四)
    MongoDB之python简单交互(三)
    python设计模式之常用创建模式总结(二)
    python设计模式之单例模式(一)
  • 原文地址:https://www.cnblogs.com/limengkun/p/10808855.html
Copyright © 2011-2022 走看看