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
posted on 2020-03-30 18:44  112358D  阅读(128)  评论(0编辑  收藏  举报