MySQL数据库基础

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来表示。

总结

每一次写都是为了让自己有更深的思考,当然也希望你们能读懂。加油,兄弟们!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值