MySQL系列文章目录
文章目录
前言
正在学习MySQL数据库,因此,记录一下自己的笔记,方便后续的复习,加油!
一、MySQL常用命令
1. 创建数据库与删除数据库
CREATE DATABASE `company`;
DROP DATABASE `company`;
2. 显示数据库列表
SHOW DATABASES;
3. 创建表格
CREATE TABLE `employee`(
`emp_id` INT,
`name` VARCHAR(20),
`birth_date` VARCHAR(20),
`sex` VARCHAR(1),
`salary` INT,
`branch_id` INT,
`sup_id` INT,
PRIMARY KEY(`emp_id`),
FOREIGN KEY(`sup_id`) REFERENCES `employee`(`emp_id`) ON DELETE SET NULL
);
提示:创建表格之前要指明选用那个数据库。
4. 具体信息加入表格
INSERT INTO `employee` VALUES (206, '小黄', '1998-10-08', 'F', 50000, 1, null);
INSERT INTO `employee` VALUES (207, '小绿', '1985-09-16', 'M', 29000, 2, 206);
INSERT INTO `employee` VALUES (208, '小黑', '1997-12-19', 'M', 35000, 3, 206);
INSERT INTO `employee` VALUES (209, '小白', '2000-01-22', 'F', 39000, 3, 207);
INSERT INTO `employee` VALUES (210, '小兰', '1928-11-10', 'F', 84000, 1, 207);
5. 添加表格属性
ALTER TABLE `employee` ADD `GPA` DECIMAL(3,2);
6. 显示表格信息
#显示表格的全部信息
SELECT * FROM `employee`;
#显示表格中的部分内容
SELECT `emp_id`, `name`, `salary` FROM `employee`;
7. 更新表格信息
UPDATE `employee`
SET `salary` = 88888
WHERE `salary` = 50000 ;
8. 添加外键
ALTER TABLE `employee`
ADD FOREIGN KEY(`branch_id`)
REFERENCES `branch`(`branch_id`) ON DELETE SET NULL;
提示:在添加外键时,首先要确保外键所在的表格已经创建。因此,当需要创建多张表格且表格之间存在复杂的外键联系时,可以采用先完成表格创建,在添加外键之间的联系。
9. DELETE语句
# 删除emp_id=206的信息行
DELETE FROM `employee` WHERE `emp_id` = 206;
# 删除工资小于40000的数据行
DELETE FROM `employee` WHERE `salary` < 40000;
# 删除表格中的所有数据
DELETE FROM `employee`;
提示:delete和truncate仅仅是删除表格中的数据,而drop则是连表格数据和表结构一起删掉。
10. 获取信息并排序
SELECT * FROM `employee`
ORDER BY `salary`; # 由低到高
SELECT * FROM `employee`
ORDER BY `salary` DESC; # 由高到低
11. 回传工资前三名员工的信息
SELECT *
FROM `employee`
ORDER BY `salary` DESC
LIMIT 3; # 只回传前3名
12. 获取所有(不重复)信息
SELECT DISTINCT `sex` FROM `employee`;
13. 取得所有生于1970-01-01之后的女性员工人数
SELECT COUNT(*)
FROM `employee`
WHERE `birth_date` > '1970-01-01' AND `sex` = 'F';
14. 聚合函数
#取得所有员工的平均工资
SELECT AVG(`salary`) FROM `employee`;
#取得所有员工工资的总和
SELECT SUM(`salary`) FROM `employee`;
#取得员工工资最高的
SELECT MAX(`salary`) FROM `employee`;
#取得员工工资最低的
SELECT MIN(`salary`) FROM `employee`;
15. UNION:对两个结果进行取并集操作
SELECT `name` FROM `employee`
UNION
SELECT `client_name` FROM `client`;
16. JOIN
JOIN:获取两个表格中字段匹配关系的记录
LEAF JOIN:获取左表所有记录,即使右表没有对应匹配的记录
RIGHT JOIN:获取右表所有记录,即使左表没有对应匹配的记录
JOIN可以用ON来指定两张表格中需要比较的字段,最终结果只显示满足条件的数据
SELECT *
FROM `employee` JOIN `client`
ON `emp_id` = `manager_id`;
提示:如果两个表格的名字相同,可以用TABLE1.EXP=TABLE2.EXP来表示。
总结
每一次写都是为了让自己有更深的思考,当然也希望你们能读懂。加油,兄弟们!