数据产品经理养成记(三):SQL简单查询

上一节讲了SQL基本概念及数据库的安装,这一节讲SQL语句的简单用法,如何从数据库里面查找数据。

在不同的数据库(MySQL、Oracle、Microsoft SQL Service等)中,SQL语法使用起来不太一样,但整体类似,只有个别语法不同。学习一种数据库的SQL语法的使用,其他的也就会触类旁通。

SQL语句一般分成三类

第一种是数据定义语言(DDL),它的操作对象是数据库和表。包括创建、删除和、修改数据库和表的结构。常用的关键字如下:

creat:创建数据库和表

drop:删除数据库和表

alter:修改数据库和表的结构

说明:关键字就是SQL语句中有特殊含义的单词。在Navicat等客户端中,关键字一般会用蓝色字体高亮显示。

第二种是数据操作语言(DML),可以操作表里的数据。常用的关键字如下:

insert:向表中插入数据

delete:删除数据表中的数据

select:查询表中的数据

update:修改表中的数据

第三种是数据控制语言(DCL),用来确认或者取消对数据库中的数据进行的变更。除此之外还可设定用户对关系数据库的操作权限。

create:确认对数据库中数据进行的变更

rollback:取消对数据库中数据进行的变更。

crant:赋予用户操作权限。

在哪里写SQL语句?

打开Navicat客户端,找到对应的数据库,进行如下操作

找到【查询】,右键【新建查询】,如下图1

软件会出现代码书写区域,可在该区域编写代码,如下图2

写完代码后,点击编写区域上方的三角形,运行代码,运行结果会在下方区域展示,如下图3

基本查询语句

SQL语句里面最基本的查询语句之一是Select语句,可以说掌握了select语句,就相当于是掌握了一半SQL语句。select语句怎么用?

举个例子,数据库中有一张名为‘student’的表,表里面的数据如下:

现在,你想从表里面找出所有学号和学生的姓名,则对应的语句应该这样写

select 学号,姓名

from sutdent;

写完后,点击编写区域上方的三角形,运行代码,运行结果会在下方区域展示,展示如下为:

语句解析:

select 学生,性别 /*意思是你想查询这两列的数据*/

from student; /*意思是你从'student'这张表里面查询数据*/

使用select from 等关键字开头的句子,有一个通用的称呼,叫【子句】

抽象一下这个语句的基本用法:

select 列名1,列名2

from 表名;

书写规则:

1. 写完SQL语句后,要用英文分号结尾。

2. SQL语句不区分关键字的大小写。

3. 表明和列名也不区分大小写,但是插入表中的数据会区分大小写。

4. 输入符号的时候只能使用英文符号。

5. 列名不能够加单引号。

6. select语句中列的顺序与表内列的顺序没有关系,可以依据自己的需求决定select子句中列的顺序。

select语句的几种延伸用法:

1.如果你不知道一张表里面有多少列,想查看全部列,可以用*代替,写法如下:

select *

from student;

2.如果表的列名都是英文名称,为了方便理解,你想改成汉字,可以使用as关键字,写法如下:

select name as 姓名

from student;

这样展示的结果列中,【name】自动更名为【姓名】。

3.如何删除一列内重复的值,使用distinct

select distinct 姓名

from student;

注意事项:

1. 如果distinct后面跟着多个列名,则每一列的重复数据都会被去重

2. distinct只能放在列名前面,不能放在其他位置。

对查询的结果添加条件

举个例子,这里有一张数学成绩表'score',你想从表中查处成绩是80分的学生,写法如下:

select 姓名,成绩

from score

where 成绩 = '80';

语句解析:

select 姓名,成绩 /*选择表中姓名和成绩这两列*/

from student; /*从'score'这张表里面选择*/

where 成绩 = '80'; /*筛选出成绩是80分的数据*/

注意事项:

1. SQL语句的运行顺序和书写顺序是不同的。上面的例子中,书写顺序是1-2-3。SQL语句运行顺序是2-3-1。SQL语句先运行from子句,找到查询数据的表格;再运行where子句,找到符合要求的数据;最后运行select子句,展示出符合要求的数列。

2. 为什么运行顺序和书写顺序不同?是SQL语句基本规则之一,记住就好。

运算符

如果你想对查询出来的数据进行计算处理,就需要用到运算符。运算符一般有三种:算术运算符、比较运算符、逻辑运算符。

算术运算符:

常见的运算符有:(+-*/)加减乘数,算数运算符只能和数值类型的列进行计算

使用规则和数学里的使用规则一样,要特别一下说明两点:

如果有括号的,优先计算括号里的内容,例:(1+2)*3

运算符与空值(null)一起计算,结果为空值。例:1+nulll=null

案例:从成绩表里面(score),计算处学生成绩的百分比成绩。

select 学号,姓名,成绩/100 as 百分比成绩

from scorebi;

比较运算符

常见的比较运算符如下:

案例:从学生表里面,筛选出出生日期小于1990-10-1的学生,写法如下:

select 姓名,出生日期

frome student

whrere 出生日期 <‘1990-10-1’;

注意事项:

比较运算符可以和所有类型的值进行比较,日期类型、数值类型等。

如果是字符串类型的比较,则按照对应字符的顺序比较,例如10 < 2,因为字符串10是1开头,1<2 ,所以10<2

逻辑运算符

逻辑运算符可以将多个查询条件组合起来,常见的逻辑运算符如下:

案例1:从学生表里面,筛选出出生日期小于1990-10-1的学生,写法如下:

select 姓名,出生日期

frome student

whrere not 出生日期 <‘1990-10-1';

可以看到, where not 出生日期 < ‘1990-10-1’ 的效果等同于:where not 出生日期 >= ‘1990-10-1’。所以,使用石板语句也能实现not语句的效果,因此简单句式中一般不适用not运算符。在编写复杂SQL语句的时候,有时候经常会使用not。

案例2:从学生表里面,筛选出出生日期大于1990-10-1,小于1999-10-1的学生,写法如下:

select 姓名,出生日期

frome student

whrere not 出生日期 >‘1990-10-1’

and 出生日期 <‘1999-10-1';

其他的运算法的用法大同小异,可以依据上面的句子类推。

注释的写法

为什么要写注释?

如果之后写的代码太长太复杂,写注释可以帮你回忆关键点。而且良好的注释也能方便别人阅读你的代码。

SQL语句有两种注释的方法,一种是单行注释,一种是多行注释。

单行注释写法(两个横线):-- 这是单行注释,汉字和横线之间要留有空格

多行注释写法:/* 这是多行注释*/

以上就是SQL简单查询的常见用法,接下来将分享复杂查询,多表查询和一些实战数据分析。欢迎持续关注,公号:数据产品经理之路。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,542评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,822评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,912评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,449评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,500评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,370评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,193评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,074评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,505评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,722评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,841评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,569评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,168评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,783评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,918评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,962评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,781评论 2 354

推荐阅读更多精彩内容