【数据分析】MySQL快速入门

资料来源:【数据库】SQL 3小时快速入门

一、SQL简介

1、定义

SQL(Structured Query Language)是“结构化查询语言”,它是对关系型数据库的操作语言。它可以应用到所有关系型数据库中,例如:MySQL、Oracle、SQL Server 等

2、对比

软件 优点 缺点
Excel 简单灵活,适合展示 处理数据量少
SQL 处理数据量极大,面向程序 需要使用SQL语言

二、MySQL安装

1、官网

在这里插入图片描述

2、Windows版本下载

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、自定义配置

在这里插入图片描述

  • 左侧选择最新版本server、workbench和shell,分别点击右箭头选择下载项目
  • 如果左侧框内为空,则C盘已经安装该软件,可以在路径C:\ProgramData\MySQL中查看情况,不知所措就全部删除重新安装

在这里插入图片描述

  • 执行下载

在这里插入图片描述
在这里插入图片描述

  • 执行安装

在这里插入图片描述
在这里插入图片描述

  • 接下来全部Next……
  • 设置密码,简单好记就行
    在这里插入图片描述
  • 全部Next最终Finish……

三、MySQL使用

1、MySQL Workbench

在这里插入图片描述

2、基础语法

功能 语法
创建数据库 CREATE DATABASE sql_tutorial;
删除数据库 DROP DATABASE sql_tutorial;
显示数据库 SHOW DATABASES;
使用数据库 USE sql_tutorial;
数据格式/整数型 IN
数据格式/小数型 DECIMAL(m,n)
数据格式/字符串 VARCHAR(n)
数据格式/年月日 DATE
数据格式/时间戳 TIMESTAMP
创建表格 CREATE TABLE sql_table(id INT PRIMARY KEY, name VARCHAR(10));
显示表格 DESCRIBE sql_table;
删除表格 DROP TABLE sql_table;
增加条目 ALTER TABLE sql_table ADD goal DECIMAL(4,2);
删除条目 ALTER TABLE sql_table DROP COLUMN goal;
储存数据 INSERT INTO sql_table VALUES();
查询数据 SELECT * FROM sql_table;
更新数据 UPDATE sql_table;
删除数据 DELETE FROM sql_table;
设置数据 SET id = n;
设置条件 WHERE id = n;
设置条件 WHERE id IN(‘123’, ‘124’)
升序(默认) ORDER BY name(ASC);
降序(手动) ORDER BY name DESC;
限制数量 LIMIT n;
去重 SELECT DISTINCT name FROM employee;
AND
OR

3、练习

在这里插入图片描述

  • 创建数据库

CREATE DATABASE sql_tutorial;
SHOW DATABASES;
USE sql_tutorial;

  • 创建公司资料库表格

CREATE TABLE employee(
emp_id INT PRIMARY KEY,
name VARCHAR(20),
birth_date DATE,
gender VARCHAR(1),
salary INT,
branch_id INT,
sup_id INT
);
DESCRIBE employee;

CREATE TABLE branch(
branch_id INT PRIMARY KEY,
branch_name VARCHAR(20),
manager_id INT,
FOREIGN KEY(manager_id) REFERENCES employee(emp_id) ON DELETE SET NULL
);

CREATE TABLE client(
client_id INT PRIMARY KEY,
client_name VARCHAR(20),
phone VARCHAR(20)
);

CREATE TABLE works_with(
emp_id INT,
client_id INT,
total_sales INT,
PRIMARY KEY (emp_id, client_id), //多个主键必须另外配置,否则报错
FOREIGN KEY (emp_id) REFERENCES employee(emp_id) ON DELETE CASCADE,
FOREIGN KEY (client_id) REFERENCES client(client_id) ON DELETE CASCADE
);

  • 使用INSERT INTO插入数据
  • 关联表格外键

ALTER TABLE employee
ADD FOREIGN KEY(branch_id)
REFERENCES branch(branch_id)
ON DELETE SET NULL;

ALTER TABLE employee
ADD FOREIGN KEY(sup_id)
REFERENCES employee(emp_id)
ON DELETE SET NULL;

4、进阶语法

(1)聚合函数

功能 语法
取得计数 SELECT COUNT(*) FROM employee;
取平均数 SELECT AVG(salary) FROM employee;
取合计数 SELECT SUM(salary) FROM employee;
取最大值 SELECT MAX(salary) FROM employee;
取最小值 SELECT MIN(salary) FROM employee;
  • 通配符
通配符 描述
% 代替n个字符
_ 代替1个字符

// 选出所有12月生日的员工,生日格式1990-12-12
SELECT *
FROM employee
WHERE birth_date LIKE ‘_____12%’;

(2)联表查询

  • UNION
语法 描述
UNION 对两个结果集进行并集操作不包括重复行,按默认规则排序
UNION ALL 对两个结果集进行并集操作,包括重复行,不对结果进行排序

SELECT name AS total_name // AS手动修改列名,否则默认第一个SELECT的列名
FROM employee
UNION
SELECT client_name
FROM client;

  • JOIN
语法 描述
[INNER ]JOIN 如果表中有至少一个匹配,则返回行
LEFT JOIN 即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN 即使左表中没有匹配,也从右表返回所有的行
FULL JOIN 只要其中一个表中存在匹配,则返回行

// 获取员工业绩和编号名字
SELECT emp_id, name
FROM employee
JOIN
SELECT total_sales FROM works_with
ON employee.emp_id = works_with.emp_id

在这里插入图片描述

(3)外键约束

定义:当删除或更新操作时发出外键约束

ON DELETE 描述
cascade 在父表(外键来源表)中删除对应记录时,检查是否有对应外键,如有则删除外键在子表(含外键的表)的记录
set null 在父表中删除对应记录时,检查是否有对应外键,如有则设该外键值为null(该外键允许取null)
restrict 在父表中删除对应记录时,检查是否有对应外键,如有不能删除
no action 同restrict,如果存在从数据,不能删除主数据
ON UPDATE 描述
cascade 在父表(外键来源表)中删除对应记录时,检查是否有对应外键,如有则更新外键在子表(含外键的表)的记录
set null 在父表中更新对应记录时,检查是否有对应外键,如有则设该外键值为null(该外键允许取null)
restrict 在父表中更新对应记录时,检查是否有对应外键,如有不能更新
no action 同restrict,如果存在从数据,不能更新主数据

个别情况下,NO ACTION在其他约束动作后执行,RESTRICT具有最高优先执行权

(4)数学运算

功能 语法
最小整数 select ceil(2.9) ⇒ 2
最大整数 select floor(2.1) ⇒ 3
小数取位 select round(1.234, 2) ⇒ 1.23
正负判断 select sign(a - b)
随机数 select rand()
绝对值 select abs(a - b)

(5)字符串运算

功能 语法
替换 select replace("aAaAaA", "A", "a") ⇒ “aaaaaa”
合并 select conact("大", "头") ⇒ “大头”
匹配 where name like “_冀%”
左截取 select left("12345", 2) ⇒ “12”
右截取 select right("12345", 2) ⇒ “45”
中截取 select substring("12345", 3, 3) ⇒ “345”
计数 select char_length("sql") ⇒ 3
空格 select trim(" he ll o ") ⇒ “hello”
重复 select repeat ("sql", 3) ⇒ “sqlsqlsql”

5、报错解决

Error Code: 1175

猜你喜欢

转载自blog.csdn.net/weixin_64210950/article/details/134165198