【数据分析】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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值