zoukankan      html  css  js  c++  java
  • MySQL基础补缺

    1.数据类型

    CHAR & VARCHAR

    • CHAR:定长字串

    • VARCHAR:变长字串

    ENUM & SET

    • ENUM:枚举类型,在若干个枚举值中选一个

    • SET:集合,可多选

    2.关键词

    LIKE

    • 关键词LIKE可实现模糊查询,使用通配符%和_代表未知字符

      • %:不定个未指定字符

      • _:一个未指定字符

    3.语句

    排序--ORDER BY

    SELECT name,age,salary,phone FROM employee ORDER BY salary DESC;
    

    聚集函数

    SELECT MAX(salary) AS max_salary,MIN(salary) FROM employee;
    

    4.查询

    子查询

    想要知道名为 "Tom" 的员工所在部门做了几个工程。员工信息储存在 employee 表中,但工程信息储存在 project 表中。
    对于这样的情况,我们可以用子查询:

    SELECT of_dpt,COUNT(proj_name) AS count_project FROM project GROUP BY of_dpt
    HAVING of_dpt IN
    (SELECT in_dpt FROM employee WHERE name='Tom');
    

    连接查询

    SELECT id,name,people_num
    FROM employee JOIN department
    ON employee.in_dpt = department.dpt_name
    ORDER BY id;
    
    #另一种等价写法
    SELECT id,name,people_num
    FROM employee,department
    WHERE employee.in_dpt = department.dpt_name
    ORDER BY id;
    

    5.其他

    索引

    ALTER TABLE employee ADD INDEX idx_id (id);  #在employee表的id列上建立名为idx_id的索引
    
    CREATE INDEX idx_name ON employee (name);   #在employee表的name列上建立名为idx_name的索引
    

    视图

    #这里把视图当作一张表使用
    CREATE VIEW v_emp (v_name,v_age,v_phone) AS SELECT name,age,phone FROM employee;
    

    导入数据

    LOAD DATA INFILE '文件路径和文件名' INTO TABLE 表名字;
    

    备份

    mysqldump -u root 数据库名>备份文件名;   #备份整个数据库
    
    mysqldump -u root 数据库名 表名字>备份文件名;  #备份整个表
    

    恢复

    结合备份,把刚刚备份的数据恢复到数据库中

    mysql -u root test < bak.sql
    
  • 相关阅读:
    [NoiPlus2016]换教室
    [HNOI2013]游走
    [Noi2002]Savage
    [SDOI2010]古代猪文
    [JSOI2008]最小生成树计数
    [SCOI2010] 连续攻击游戏
    文艺平衡树
    指针FHQTreap
    HAOI2007 上升序列
    HNOI2008 玩具装箱
  • 原文地址:https://www.cnblogs.com/irisiscool/p/12599873.html
Copyright © 2011-2022 走看看