文章目录
一、增:数据库/表格
1.1 添加数据库
sql语句:
CREATE DATABASE 数据库名;
一般情况下,windows和macos里的mysql是不区分大小写的,因此CREATE DATABASE可以小写。但是CREATE DATABASE是关键字,所以我们用大写来和普通的字符做以区分。
添加数据库前:
添加数据库之后:
1.2 进入某一个数据库
sql语句:
USE 数据库名;
这样就可以指定是在哪一个数据库中进行操作
1.3 添加表格
sql语句:
CREATE TABLE 表格名(
列名1,
列名2,
列名3
);
数据库创建表格时,必须定义每一列的列名和对应的数据类型
常见的数据类型;
- INT:整型
- VARCHAR(SIZE):字符串类型(括号里面的数字用来限定字符的个数)
- DATE:日期类型(输入格式是年-月-日)
添加学生信息表格:
再定义了列名和数据类型的基础上还可以添加一些默认条件。
比如:
- NOT NULL:非空(默认这一列不能为空,如果添加数据的时候如何不输入内容就会报错)
- NULL:空(表示这一列可以为空,不输入内容默认就是NULL)
- AUTO_INCREMENT:自动增长序列(可以实现自动递增,所以一般将主键设置为AUTO_INCREMENT)
- COMMENT:字段注释(可以为每一列添加一个注释)
- PRIMARY KEY:主键
添加约束条件之后的创建表格代码:
1.4 插入数据
sql语句:
INSERT INTO 表格名(
列名1,列名2,列名3)
VALUES(
数值1,数值2,数值3);
当我们需要同时插入多条数据到不同的数据库时还可以使用
INSERT INTO 数据库名.表格名(
列名1,列名2,列名3)
VALUES(
数值1,数值2,数值3);
- 即使前面加了USE进入了某一个数据库,但还是建议此时使用第二种方式,表明插入到那个数据库的哪一个表格里
- 一定注意数据库名和表格名中间的英文句号
请一定要注意括号和标点符号的使用,VALUES中的字段的单引号也可以更改为双引号,但是还是建议使用单引号
执行语句之后:
二、改:更改表格
添加一列的语句:
ALTER TABLE 数据库名.表格名
ADD 列名 数据类型 默认条件;
修改之前的具体数据的语句:
UPDATE 数据库名.表格名
SET 值
WHERE 条件;
修改数据语句的解释:
- 修改数据的语句正确的顺序为UPDATE-SET-WHERE
- SET:用来设置更改后的具体值
- 要更新哪一行的数据呢?我们可以通过WHERE来定位并且加上条件来筛选
修改之后的表格:
三、删:数据/表格/库
3.1 删除某一条数据
sql语句:
DELETE FROM 数据库名.表格名
WHERE 条件;
删除某一套数据之后:
3.2 删除某一个表格
sql语句:
DROP TABLE 数据库名.表格名;
执行结果:
3.2 删除某一个数据库
sql语句:
DROP DATABASE 数据库名;
执行结果:
四、查:选择/去重/排序/过滤
这里导入下面网址里的数据,用来演示(数据分别是某个月全球的新冠感染人数和某段时间全球的新冠感染人数)
数据链接
4.1 选择:
查看表格的所有内容的sql语句:
SELECT * FROM 表格名;
示例:
如果要查看某几列或者某一列的内容(此时不需要*号):
SELECT 列名1,列名2 FROM 表格名;
如果只想看国家,确诊人数,以及对应的洲名:
4.2 去重
假如你只是想看一下数据中有多少个洲
注意此时的DISTINCT是在SELECT之后的
4.3 排序
排序的sql语句:
SELECT * FROM 表格名 ORDER BY 列名 ASC;
- 这里的ASC(Ascending)代表的是排序条件从低到高,从小到大,如果不加则会默认使用ASC。
- 如果将ASC换为DESC(Descending),则排序条件变为从高到低,从大到小。
- ASC或者DESC需要在列名的后面,ORDER BY需要在表名的后面
4.3.1 升序结果:
4.3.2 降序结果
4.4 过滤
过滤的sql语句:
SELECT * FROM 表格名 WHERE 条件 ORDER BY 列名;
常用的运算符:
如果想要查看康复数大于1000000的数据:
如果想要查看康复数大于1000000并且不是巴西的数据:
如果想查看区间:
4.5 模糊搜索
如果你想查看以B为开头的国家名字的信息,则:
SELECT * FROM covid_month WHERE Country LIKE 'B%';
如果你想查看以a结尾的就可以使用%a来表示:
SELECT * FROM covid_month WHERE Country LIKE '%a';
还可以使用下划线来表示任意字符,比如我想要找到第三个字符是b的国家:
SELECT * FROM covid_month WHERE Country LIKE '__b%';
注意:
如果这里不加%表示要查找的国家名只有三个字母,最后一个字母是b。而加上%表示是以这三个字符开头。
五、查:连接
5.1 两个表做交集
这里并不是随便就将两个表格合并在一起,而是要确定这个表格的哪一行对应另一个表格的哪一行。
sql语句:
INNER JOIN ON 条件
示例中的两个表格的Country国家是有一样的字符,所以就可以利用INNER JOIN来合并
5.2 两个表做并集
并集是将两个表格里的列数组合并在一起,一个上一个下合并在同一个表格里
假如我想把月度统计表里的Country和汇总统计表的Country合并在一起
SELECT Country FROM covid_month UNION SELECT Country FROM covid_total;
这样的话国家名称是不会重复的,如果在UNION后面加上ALL就不会去重