初识SQL

SQL基础操作

  • 安装及使用(MySQL8.0)
  • 数据库基础
  • 基础查询语句
    : 检索数据
    : 排序
    : 过滤

安装及使用

安装教程在网上随处可见,但请注意,MySQL已经更新至8.0版本,它的安装界面已经变了,并且过程十分多。
但是很少有人讲安装后怎么用,8.0的workbench真的很好用,有点pycharm的意思,其实使用也非常简单。
找到开始里面的MySQL文件夹,打开workbench(图标如图所示)MySQL workbench 8.0
在workbench开始界面
在这里插入图片描述
点击MySQL Connections下的哪个灰色框框,输入你设定的密码,就能够连接并使用数据库了。workbench本身自带了三个数据库供你练习使用。

数据库基础

先大致了解一下数据库的构成,在左侧的导航栏里,形如水桶的图标就是一个个单独的数据库(database),点开它们,看到tables再点开,根据图标我们就可以知道,这是表(table)。
而我们经常说的主键(key)就是用来识别表的某一列(或者某几列),也就是说主键之间互不相同,并且如果单独作为作为主键,那么那一列上所有数不能相同。

SQL语言基础

在R和python中有很多package都引用了类SQL语言来进行data frame的检索,如果你有一定的英语基础,那么SQL的基础语句就像大白话一样简单。

注意,MySQL8.0中不区分大小写,但是为了识别,我推荐使用大写来规范语句。虽然它自己补充的都是小写。
每一句用 ; 来结束一行命令,并且选中语句后用ctrl+enter来执行命令,单纯enter是用来换行的,这与jupyter notebook比较相似。

检索数据

当我们确定要使用某一个数据库后,使用

USE database_name;

来选中它,这样的话有助于我们引用其中各个表,写起来也方便许多。

先从最简单的开始,*就表示全选,而database和tabel中用.连接

SELECT * FROM database.tabel;

而如果你想检索单个或特定的多个列

SELECT col1_name,col2_name FROM database.tabel;

在每一列中,可能会有重复,如果想确定某一列中所有不重复的数

SELECT DISTINCT col1_name FROM database.tabel;

如果想检索有限行,使用LIMIT函数

SELECT * FROM database.tabel LIMIT 2;#这是用来检索第一 第二行
SELECT * FROM database.tabel LIMIT 2,3;#这是用来检索第三四五行

排序

排序的话,我们使用 ORDER BY 函数

SELECT col1_name FROM database.tabel ORDER BY col1_name;#默认正序
SELECT col1_name FROM database.tabel ORDER BY col1_name DESE;倒序

而当我们遇见如下情况

SELECT col1_name,col2_name FROM database.tabel ORDER BY col1_name,col2_name;

那么就是,我们先遵循第一列排序,当第一列排序后有相同的行,那么这几行按照第二列排序。

过滤数据

这里我们将使用一个非常熟悉的子句,WHERE

SELECT * FROM database.tabel WHERE col1_name = number(‘word’);

在 = 后面,不仅可以接数字,也可以接文字,注意文字要用引号括起来。
而WHERE后面可以跟的操作符就是通常的那几个数字符号,单独要说一下的就是
!= 表示 不等于,BETWEEN 后接 AND。

看一下下面这个句子,我们要注意,在WHERE后面SQL优先处理AND函数,所以当我们和AND同用时,我们要给OR的两边加上括号

SELECT * FROM world.country WHERE (GNP>500 OR Population<1000) AND SurfaceArea >500

如果括号内检索的为同一列(同一种)数据 我们可以使用 IN

SELECT * FROM world.country WHERE (GNP>500 OR GNP<1000) AND SurfaceArea >500
SELECT * FROM world.country WHERE GNP IN(500,1000) AND SurfaceArea >500

下文表示检索(500,1000)之外的数据,在IN之前添加了NOT

SELECT * FROM world.country WHERE GNP NOT IN(500,1000) AND SurfaceArea >500

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值