SQL关键语法应用分享|产品运营|数据库的增删改查|左连接|右链接|创建数据库|在数据库中查找|在数据库中增加数据|在数据库中删除数据
明确“服务器”,“数据库”,“表格”三者的关系
- 表格:存储数据的容器
- 数据库:中有很多表格
- 服务器:每个服务器中存储着很多的数据库
- 创建数据库
- CREATE DATABASE 数据库名;
- 命令不区分大小写,但是一般使用大写与数据库名称做区分
- 使用数据库
#首先要选择使用什么数据库
USE 数据库名;
#其次再进行增删改查的操作
- 创建列表
CREATE TABLE 表格名(
列名1 INT AUTO_INCREMENT PRIMARY KEY, #自动递增数字AUTO_INCREMENT ,主键:唯一的
列名2 VARCHAR() NOT NULL,#默认非空,必须输入数值
列名3 DATE NULL #表示可以不输入数据,默认空值
);
#创建一个售出蛋的记录
USE egg;
CREATE TABLE eggs_record(
id INT,
egg_name VARCHAR(10),
sold DATE #无逗号
);
- 插入数据
#语法
INSERT INTO 数据库名.表格名(列名1,列名2,列名3)
VALUES(数值1,数值2,数值3)
INSERT INTO egg.eggs_record
VALUES(2,'鸭蛋','2020-02-02')
#ID自动递增,将其设置为defalt
INSERT INTO egg.eggs_record
VALUES(DEFAULT,'龟蛋',NULL)
ALTER TABLE 数据库名.表格名
- 删除数据
#删除表格中的数据
DELETE FROM 数据库名.表格名;
WHERE ID = 1;
#删除表格
DROP TABLE 数据库名.表格名;
DROP egg.eggs_record;
#删除数据库
DROP DATABASE 数据库名;
- 查看数据
#查看表格的内容,查看全部内容
SELECT * FROM 表格名;
#查看某一列数据
SELECT 列名1,列名2
FROM 表格名;
#查看全部数据
SELECT *
FROM Covid_month;
#查看特定列数据,可能会出现重复数据,去重在前面加DISTINCT
SELECT Country,Confirmed,Continent
FROM Covid_month;
#去除重复
SELECT DISTINCT Continent
FROM Covid_month;
#数据排列
SELECT *
FROM 表格名
ORDER BY 列名 ASC #ASC:递增 DESC:递减
#筛选条件,WHERE要放到ORDER前面,否则报错
SELECT *
FROM Covid_month
WHERE Recovered >= 1000000 AND Country != 'Brazil'
ORDER BY Confirmed DESC;
#查看数值区间,可以将WHERE那一行改成,BETWEEN AND适合数字范围
WHERE Recovered BETWEEN 1000000 AND 1500000
#IN用于表示字符范围合适,查看巴西和印度两个国家的数据
WHERE Country IN(‘Brazil’,‘India’)
#模糊查找,查找B开头的数据B%,以a结尾的用%a,_下划线表示任意字符
WHERE Country LIKE ‘B%’
WHERE Country LIKE ‘__b%’#第三个字符是b的字符
WHERE语句的运算符
7. 合并数据
#交集,行合并
INNER JOIN
ON 条件
#交集,行合并
#合并两个表格的Country列,合并后:FROM后跟的表格放在左边,INNER JOIN的表格放在右边
SELECT *
FROM Covid_month
INNER JOIN Covid_total
ON Covid_month.Country = Covid_total.Country;
#并集,列合并
SELECT Country
FROM Covid_month
UNION #仅有UNION是不会有重复值的,UNION ALL就会去除重复值
SELECT Country
FROM Covid_total
- 左连接(LEFT JOIN),保留左边表格所有数据,再将右边符合条件的数据合并过来
SELECT *
FROM Covid_month
LEFT JOIN Covid_total
ON Covid_month.Country = Covid_total.Country
- 右连接(RIGHT JOIN),保留右边表格所有数据,再将左边符合条件的数据合并过来
#定义简写:AS 简写名,定义简写后上下用到的地方都要改为简写
SELECT *
FROM Covid_month AS mm
RIGHT JOIN Covid_total AS tt
ON mm.Country = tt.Country