当前位置:网站首页>什么是MySQL?MySql的学习之路是怎样的
什么是MySQL?MySql的学习之路是怎样的
2022-07-06 08:57:00 【自动化测试七叔】
前言
今天呢笔者想给大家来讲讲MySql,这篇文章呢分为两个部分,分别是mysql基础部分与高级部分,废话笔者就不多说了,咱们直接进入主题吧。
一.基础
1.1数据库操作
Show databases;显示所有的数据库
Show tables; 显示所有的数据库表
Use databasename;切换数据库
Desc tablename; 显示表中所有的字段信息
说明:笔记中所使用的sql语句均使用表websites 和 access_log
表1:websites
+----+--------------+---------------------------+-------+---------+
| id | name | url | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1 | Google | https://www.google.cm/ | 1 | USA |
| 2 | 淘宝 | https://www.taobao.com/ | 13 | CN |
| 3 | 菜鸟教程 | http://www.runoob.com/ | 4689 | CN |
| 4 | 微博 | http://weibo.com/ | 20 | CN |
| 5 | Facebook | https://www.facebook.com/ | 3 | USA |
| 7 | stackoverflow | http://stackoverflow.com/ | 0 | IND |
+----+---------------+---------------------------+-------+---------+
表2:access_log
+-----+---------+-------+------------+
| aid | site_id | count | date |
+-----+---------+-------+------------+
| 1 | 1 | 45 | 2022-5-10|
| 2 | 3 | 100 | 2022-05-13|
| 3 | 1 | 230 | 2022-05-14 |
| 4 | 2 | 10 | 2022-05-14 |
| 5 | 5 | 205 | 2022-05-14 |
| 6 | 4 | 13 | 2022-05-15 |
| 7 | 3 | 220 | 2022-05-15 |
| 8 | 5 | 545 | 2022-05-16 |
| 9 | 3 | 201 | 2022-05-17 |
+-----+---------+-------+------------+
1.2 LIKE 操作符
实例:
select * from websites where url like 'https%';-- url包含https的数据
select * from websites where name like 'G%'; -- name以G开头
select * from websites where url like '%h%';-- url包含h的字段数据
select * from websites where name like '_o%';-- name中o在第二个字符的数据
1.3ORDER BY 关键字
说明:对结果集按照一个列或多个列排序
实例:
select name,alexa from websites
order by alexa desc; -- 默认时升序 desc 表示降序
select * from websites
order by country, alexa; -- 多列排序时,先排country 在排alexa
1.4 INSERT INTO
说明:向表中插入数据
实例:
insert into websites
values (6,'百度','http://www.baidu.com',22,'ZG');-- 可以省略列,但要所有的值都插入
insert into websites (id ,name,url,alexa,country)
values ('7','网易','www.wangyi.com','25','ZG');-- 可以指定插入哪一列
1.5 UPDATE
说明:更新表中的数据
实例:
update websites
set url = 'http://www.wangyi.com'
where id = 7;
update websites
set alexa = 5000, country = 'USA'
where id = 3;
1.6 DISTINCT
说明:过滤重复的数据
实例:
SELECT DISTINCT country FROM Websites;
1.7 DELETE
说明:删除数据或者删除表
实例:
-- 删除一行数据
SELECT FROM WEBSITES
WHERE ID = 7;
-- 删除整个表,但是表的结构仍存在
SELECT FROM WEBSITES;
1.8 AND, OR ,IN
说明:均用于筛选数据
实例:
SELECT * FROM WEBSITES
WHERE ID BETWEEN 1 AND 3;
SELECT * FROM WEBSITES
WHERE ID = 1 OR ID =3;-- 筛选id为1和3 的数据
SELECT * FROM WEBSITES
WHERE ID IN (1,3);
以上就是Mysql的基础部分,一些简单的增删改查操作,可能内容不是很全,但是希望对初学Mysql的同学能起到一定的参考和借鉴的作用,接下来我就要来说说基础部分应该包括的建库,建表等..这些被我加到高级部分了。
二、高级
2.1 CREATE DATABASE 建库
CREATE DATABASE BOKEYUAN;-- 建立一个名字为BOKEYUAN的数据库
2.2 CREATE TABLE 建表
USE BOKEYUAN;-- 使用新建的数据库
CREATE TABLE MYTABLE -- 建立一个名字为MYTABLE的表
(
ID INT(4) PRIMARY KEY COMMENT '序号-唯一键' ,
NAME VARCHAR(255) NOT NULL COMMENT '网站名称',
URL VARCHAR(255) UNIQUE COMMENT '网址',
ALEXA INT(5) COMMENT '访问量',
COUNTRY CHAR(20) COMMENT '网站所属国家'
);
2.3 INSER INTO SELECT
说明:上面我们已经创建好了表结构,但是还没有插入数据,那么前面基础部分已经写过插入数据的SQL语句,所有这部分我们换种方法来实现插入数据,其实是拷贝其他表的数据
实例1:假设MYTABLE表不存在,我们可以使用下面的方法来拷贝其他表的结构和数据(因为我们用到的是相同的表数据,所以我会考虑这个方法,如果你是新的表只能先建表再插入数据)
-- 假设我们的websites 表在MYDATABASE数据库中
CREATE TABLE MYTABLE SELECT * FROM MYDATABASE.WEBSITES;
实例2:我们需要表MYTABLE已经存在,那么上面这个表已经建立好了,那么我们可以利用INSERT INTO SELECT语句直接插入数据(这里也是拷贝websites中的数据)
INSERT INTO MYTABLE SELECT * FROM MYDATABASE.WEBSITES;
实例3:插入某一列数据
-- 只插入某一列数据
INSERT INTO MYTABLE(NAME)
SELECT NAME FROM MYDATABASE.WEBSITES;
2.4 LIMIT
说明:返回记录行,上面的SQL执行完后我们会生成下面的数据表
# ID, NAME, URL, ALEXA, COUNTRY
'1', 'Google', 'https://www.google.cm/', '1', 'USA'
'2', '淘宝', 'https://www.taobao.com/', '13', 'CN'
'3', '菜鸟教程', 'http://www.runoob.com/', '5000', 'USA'
'4', '微博', 'http://weibo.com/', '20', 'CN'
'5', 'Facebook', 'https://www.facebook.com/', '3', 'USA'
'6', '百度', 'http://www.baidu.com', '22', 'ZG'
实例1:
-- 获取前3行数据 2 SELECT * FROM MYTABLE LIMIT 3;
-- 获取3,4,5行数据
SELECT * FROM MYTABLE LIMIT 2,3;
2.5 BETWEEN AND
说明:配合WHERE使用的查询条件语句,下面是3种实现获取1到3行数据的方法,但是总的来说实例1比较方便,有逻辑性,且简单易于理解
实例:
-- 获取1到3行的数据
SELECT * FROM MYTABLE WHERE ID BETWEEN 1 AND 3;
实例2:
-- 获取1到3行数据还可以用WHERE IN 来实现
SELECT * FROM MYTABLE WHERE ID IN (1,2,3);
实例3:
-- 获取1到3行数据另一种实现
SELECT * FROM MYTABLE WHERE ID < 4;
2.6 AS 操作符
说明:给列,表起别名
实例1:
-- 对列起别名
SELECT NAME AS '名字', URL AS '网址' FROM MYTABLE;
实例2:
-- 合并2个列,起别名 需要CONCAT关键字
SELECT NAME AS '名字', CONCAT(URL,COUNTRY) AS '网站国家' FROM MYTABLE;
实例3:
-- 对表起别名,可以用别名来访问字段元素
SELECT M.ID,M.NAME,M.COUNTRY FROOM MYTABLE AS M;
2.7 JOIN
说明:连接两个表,分左连接,右连接和全连接,这里我们还需要另一个表,假设表为ACCESS_LOG,结构如下:
# aid, site_id, count, date
'1', '1', '45', '2016-05-10'
'2', '3', '100', '2016-05-13'
'3', '1', '230', '2016-05-14'
'4', '2', '10', '2016-05-14'
'5', '5', '205', '2016-05-14'
'6', '4', '13', '2016-05-15'
'7', '3', '220', '2016-05-15'
'8', '5', '545', '2016-05-16'
'9', '3', '201', '2016-05-17'
实例1:
-- INNER JOIN 这里我们把MYTABLE看作左表ACCESS_LOG为右表,下面的sql语句会返回满足条件的行,可以想象成集合中两个集合的交集
SELECT M.*,A.SITE_ID FROM MYTABLE AS M
INNER JOIN ACCESS_LOG AS A
ON M.ID = A.SITE_ID
ORDER BY M.ID;
实例2:
-- 左连接,会返回所有左表的行,如果没有匹配也会返回
SELECT M.* FROM MYTABLE AS M
LEFT JOIN ACCESS_LOG AS A
ON M.ID = A.SITE_ID
ORDER BY M.ID;
实例3:
-- 右连接,返回满足条件的所有右表的行
SELECT * FROM MYTABLE AS M
RIGHT JOIN ACCESS_LOG AS A
ON M.ID = A.SITE_ID
ORDER BY A.SITE_ID;
实例4:
--全连接
SELECT M.name, A.count, A.date
FROM MYTABLE AS M
FULL OUTER JOIN access_log
ON M.id=A.site_id
ORDER BY A.count DESC;
2.8 UNION
说明:操作符用于合并两个或多个 SELECT 语句的结果集。注意,UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每个 SELECT 语句中的列的顺序必须相同。
假设存在表MYSOFTW
# id, soft_name, url, country
'1', 'QQ APP', 'http://im.qq.com/', 'CN'
'2', '微博 APP', 'http://weibo.com/', 'CN'
'3', '淘宝 APP', 'https://www.taobao.com/', 'CN'
实例1:
-- 筛选全部的国家,不包括重复的数据
SELECT M.COUNTRY FROM MYTABLE AS M
UNION
SELECT W.COUNTRY FROM MYSOFTW AS W;
实例2:
-- 查询国家为“cn”的所有网站和软件
SELECT M.URL ,W.COUNTRY FROM MYTABLE AS W
WHERE M.COUNTRY = 'CN'
UNION
SELECT S.APP_NAME,A.COUNTRY FROM MYSOFTW AS S
WHERE S.COUNTRY = 'CN';
总结
今天的内容有点多,但是感觉还是挺简单的,俗话说孰能生巧,多做多写多练,前面所有的SQL语句都比较简单化,因为没有什么实际意义,只是为了学习,工作当中的SQL语句都比较复杂,一个复杂的SQL语句都是简单的几个语句结合在一起的,只要用心梳理思路都不在话下。
希望这篇文章能够帮助到大家,喜欢的小伙伴可以点赞收藏评论加关注哟,当然啦我也给大家准备有关数据库的教学视频,有需要的小伙伴可以私信关键字“资料”领取哟。
边栏推荐
- Notes 01
- [OC-Foundation框架]---【集合数组】
- Sublime text using ctrl+b to run another program without closing other runs
- What is the role of automated testing frameworks? Shanghai professional third-party software testing company Amway
- Navicat Premium 创建MySql 创建存储过程
- After PCD is converted to ply, it cannot be opened in meshlab, prompting error details: ignored EOF
- 数学建模2004B题(输电问题)
- LeetCode:498. Diagonal traversal
- 【文本生成】论文合集推荐丨 斯坦福研究者引入时间控制方法 长文本生成更流畅
- Show slave status \ read in G_ Master_ Log_ POS and relay_ Log_ The (size) relationship of POS
猜你喜欢
TP-LINK enterprise router PPTP configuration
I-BERT
BN折叠及其量化
[MySQL] limit implements paging
UML图记忆技巧
Target detection - pytorch uses mobilenet series (V1, V2, V3) to build yolov4 target detection platform
Computer cleaning, deleted system files
项目连接数据库遇到的问题及解决
Using pkgbuild:: find in R language_ Rtools check whether rtools is available and use sys The which function checks whether make exists, installs it if not, and binds R and rtools with the writelines
【ROS】usb_ Cam camera calibration
随机推荐
Detailed explanation of heap sorting
LeetCode:124. 二叉树中的最大路径和
【ROS】usb_ Cam camera calibration
MySQL uninstallation and installation methods
Leetcode: Jianzhi offer 04 Search in two-dimensional array
Revit secondary development Hof method calls transaction
Mise en œuvre de la quantification post - formation du bminf
R language ggplot2 visualization, custom ggplot2 visualization image legend background color of legend
Using C language to complete a simple calculator (function pointer array and callback function)
Improved deep embedded clustering with local structure preservation (Idec)
Navicat Premium 创建MySql 创建存储过程
Target detection - pytorch uses mobilenet series (V1, V2, V3) to build yolov4 target detection platform
ROS compilation calls the third-party dynamic library (xxx.so)
BN折叠及其量化
Alibaba cloud server mining virus solution (practiced)
SimCLR:NLP中的对比学习
Leetcode: Sword finger offer 48 The longest substring without repeated characters
LeetCode:394. String decoding
Guangzhou will promote the construction of a child friendly city, and will explore the establishment of a safe area 200 meters around the school
Hutool gracefully parses URL links and obtains parameters