童话说说技术创业美文职业
投稿投诉
职业母婴
职场个人
历史治疗
笔记技能
美文纠纷
幽默家庭
范文作文
乐趣解密
创业案例
社会工作
新闻家居
心理安全
技术八卦
仲裁思考
生活时事
运势奇闻
说说企业
魅力社交
安好健康
传统笑话
童话初中
男女饮食
周易阅读
爱好两性

数据产品经理必备之SQL基础

11月7日 游鱼坊投稿
  SQL语言是用于访问和处理数据库的标准的计算机语言,本文将从基本语法和高级语法两方面来介绍SQL语言。
  数据产品经理从字面上看包含“数据”和“产品经理”两方面,是产品经理领域中更加细分的数据领域。可见,“数据”之于“数据产品经理”的重要性。
  在不同的公司数据产品经理可能会出现不同的名称,比如“数据产品经理”、“大数据产品经理”、“数据平台产品经理”、“产品经理(数据方向)”,但不管是什么样的名称,我们从招聘网站上面查阅数据产品经理的职位描述,看到该领域的产品经理所需要的素质和技能是类似的。
  在阿里巴巴、百度、京东等互联网公司的数据产品经理职位描述中我们反复看到招聘信息中有关于求职者掌握SQL的描述,可见在数据产品经理领域SQL已经是和PPT、Excel一样成为数据产品经理必不可少的技能。
  那么为什么数据产品经理需要掌握SQL呢?
  因为数据产品经理需要经常和数据打交道,而掌握SQL能够获取数据,只有拥有了数据才能进一步进行数据探索设计数据产品。
  SQL语言是用于访问和处理数据库的标准的计算机语言,下面我们将从基本语法和高级语法两方面来介绍SQL语言。
  SQL基本语法
  1。操作数据库
  (1)创建数据库
  语法格式:
  CREATEDATABASE〔IFNOTEXISTS〕数据库名〔〔DEFAULT〕CHARACTERSET字符集名〕〔〔DEFAULT〕COLLATE校对规则名〕;
  语法说明:
  数据库名:创建数据库的名称。数据库名称必须符合操作系统的文件夹命名规则。
  IFNOTEXISTS:在创建数据库之前进行判断,只有该数据库目前尚不存在时才能执行操作。此选项可以用来避免数据库已经存在而重复创建的错误。
  〔DEFAULT〕CHARACTERSET:指定数据库的默认字符集。
  〔DEFAULT〕COLLATE:指定字符集的默认校对规则。
  示例:
  创建数据库databasename
  
  (2)删除数据库
  语法格式:
  DROPDATABASE〔IFEXISTS〕数据库名
  语法说明:
  数据库名:指定要删除的数据库名。
  IFEXISTS:用于防止当数据库不存在时发生错误。
  DROPDATABASE:删除数据库中的所有表格并且同时删除数据库。使用此语句时一定要慎重和小心,以免出现错误删除。如果要使用DROPDATABASE,需要获得数据库DROP权限。
  示例:
  删除数据库databasename
  
  (3)修改数据库
  语法格式:
  ALTERDATABASE〔数据库名〕{〔DEFAULT〕CHARACTERSET字符集名〔DEFAULT〕COLLATE校对规则名}
  语法说明:
  ALTERDATABASE用于更改数据库的全局特性。这些特性存储在数据库目录的db。opt文件中。
  使用ALTERDATABASE需要获得数据库ALTER权限。
  数据库名称可以忽略,此时语句对应于默认数据库。
  CHARACTERSET子句用于更改默认的数据库字符集。
  示例:
  修改数据库databasename
  
  (4)查看数据库
  语法格式:
  SHOWDATABASES〔LIKE‘数据库名’〕;
  语法说明:
  LIKE从句是可选项,用于匹配指定的数据库名称。LIKE从句可以部分匹配,也可以完全匹配。
  数据库名由单引号’‘包围。
  示例:
  查看所有数据库
  
  (5)使用数据库
  语法格式:
  USE数据库名
  示例:
  使用数据库databasename
  
  2。操作数据表
  (1)创建数据表
  语法格式:
  CREATETABLE表名(〔表定义选项〕)〔表选项〕〔分区选项〕;
  其中,〔表定义选项〕的格式是:列名1类型1〔,〕列名类型列名n列名1
  语法说明:
  CREATETABLE:用于创建给定名称的表,必须拥有表CREATE的权限。
  表名:指定要创建表的名称,在CREATETABLE之后给出,必须符合标识符命名规则。表名称被指定为databasebname。tablename,以便在特定的数据库中创建表。无论是否有当前数据库,都可以通过这种方式创建。在当前数据库中创建表时,可以省略dbname。如果使用加引号的识别名,则应对数据库和表名称分别加引号。例如,’mydatabaseb’。’mytable’是合法的,但‘mydatabaseb。mytable’不合法。
  表定义选项:表创建定义,由列名(columnname)、列的定义(columndefinition)以及可能的空值说明、完整性约束或表索引组成。
  默认的情况是,表被创建到当前的数据库中。若表已存在、没有当前数据库或者数据库不存在,则会出现错误。
  示例:
  创建了表tablename,包含类型为int的id列
  createtabletablename(idint);
  (2)修改数据表
  语法格式:
  ALTERTABLE表名〔修改选项〕;
  其中,〔修改选项〕的格式是:
  {ADDCOLUMN列名类型列名
  CHANGECOLUMN旧列名新列名新列类型列名列名
  ALTERCOLUMN列名{SETDEFAULT默认值DROPDEFAULT}列名
  MODIFYCOLUMN列名类型列名
  DROPCOLUMN列名列名
  RENAMETO新表名}
  示例:
  修改数据表tablename使其添加name列
  altertabletablenameaddnamevarchar(30);
  (3)删除数据表
  语法格式:
  DROPTABLE〔IFEXISTS〕表名〔,表名1,表名2〕
  语法说明:
  表名:被删除的表名。DROPTABLE语句可以同时删除多个表,用户必须拥有该命令的权限。
  表被删除时,所有的表数据和表定义会被取消,所以使用本语句要小心。
  表被删除时,用户在该表上的权限并不会自动被删除。
  参数IFEXISTS用于在删除前判断删除的表是否存在,加上该参数后,在删除表的时候,如果表不存在,SQL语句可以顺利执行,但会发出警告(warning)。
  示例:
  删除数据表tablename
  
  3。操作数据
  (1)插入数据
  语法格式:
  INSERTINTO表名〔列名1〔,列名〕〕VALUES(值1)〔,(值n)〕;列名n列名1
  语法说明:
  表名:指定被操作的表名。
  列名:指定需要插入数据的列名。若向表中的所有列插入数据,则全部的列名均可以省略,直接采用INSERT表名VALUES()即可。列名
  VALUES或VALUE子句:该子句包含要插入的数据清单。数据清单中数据的顺序要和列的顺序相对应。
  示例:
  insertintotablename(id)values(1);
  (2)删除数据
  语法格式:
  DELETEFROM表名〔WHERE子句〕〔ORDERBY子句〕〔LIMIT子句〕
  语法说明:
  语法说明如下:
  表名:指定要删除数据的表名。
  ORDERBY子句:可选项。表示删除时,表中各行将按照子句中指定的顺序进行删除。
  WHERE子句:可选项。表示为删除操作限定删除条件,若省略该子句,则代表删除该表中的所有行。
  LIMIT子句:可选项。用于告知在控制命令被返回数据前被删除行的最大值。
  示例:
  删除表tablename中全部数据
  
  (3)修改数据
  语法格式:
  UPDATE表名SET字段1值1〔,字段2值2〕〔WHERE子句〕〔ORDERBY子句〕〔LIMIT子句〕
  语法说明:
  表名:用于指定要更新的表名称。
  SET子句:用于指定表中要修改的列名及其列值。其中,每个指定的列值可以是表达式,也可以是该列对应的默认值。如果指定的是默认值,可用关键字DEFAULT表示列值。
  WHERE子句:可选项。用于限定表中要修改的行。若不指定,则修改表中所有的行。
  ORDERBY子句:可选项。用于限定表中的行被修改的次序。
  LIMIT子句:可选项。用于限定被修改的行数。
  示例:
  更新所有行的id列为0
  updatetablenamesetid0
  (4)查询数据
  语法格式:
  SELECT{字段列名}列名
  〔
  FROM表1,表2
  〔WHERE表达式
  〔GROUPBY
  〔HAVING〔{}〕〕
  〔ORDERBY〕
  〔LIMIT〔,〕〕
  〕
  语法说明:
  {字段列名}包含星号通配符的字段列表,表示查询的字段,其中字段列至少包含一个字段名称,如果要查询多个字段,多个字段之间要用逗号隔开,最后一个字段后不要加逗号。列名
  FROM表1,表2,表1和表2表示查询数据的来源,可以是单个或多个。
  WHERE子句是可选项,如果选择该项,将限定查询行必须满足的查询条件。
  GROUPBY字段,该子句用于按照指定的字段分组。
  〔ORDERBY字段〕,该子句用于指定按什么样的顺序显示查询出来的数据,可以进行的排序有升序(ASC)和降序(DESC)。
  〔LIMIT〔,〕〕,该子句用于指定每次显示查询出来的数据条数。
  示例:
  查询表中全部记录
  
  SQL高级语法
  1。操作符
  操作符是一个保留字或字符,用于指定条件或者联接多个条件。常见操作符有比较操作符、逻辑操作符、算术操作符。
  (1)比较操作符
  比较操作符是指等于、不等于、大于、小于、大于等于、小于等于
  示例:
  id1;1;1;1;1;1;
  (2)逻辑操作符
  逻辑操作符包括与NULL值比较ISNULL、位于两个值之间BETWEEN、与指定列表比较IN、与类似的值比较LIKE、多个条件与连接AND、多个条件或连接OR
  示例:
  idbetween‘0’and’10’;idin(‘0,’1,’10’);idlike‘123’;1020;;id10orid20;
  (3)算术操作符
  算术操作符有加法、减法、乘法、除法,支持组合使用
  示例:
  wherecol1col2’20’;wherecol1col2’20’;wherecol110’20’;where(col110)’20’;
  2。连接
  (1)内连接
  语法格式:
  SELECT列名1,列名2列名1,列名2
  FROM表名1INNERJOIN表名2〔ON子句〕
  语法说明:
  列名1,列名2:需要检索的列名。列名1,列名2
  表名1表名2:进行内连接的两张表的表名。
  示例:
  selectid,namefromtable1innerjointable2ontable1。cidtable2。
  (2)全连接
  语法格式:
  SELECT列名1,列名2列名1,列名2
  FROM表名1FULLJOIN表名2〔ON子句〕
  语法说明:
  列名1,列名2:需要检索的列名。列名1,列名2
  表名1表名2:进行全连接的两张表的表名。
  示例:
  selectid,namefromtable1fulljointable2ontable1。cidtable2。
  (3)左连接
  语法格式:
  SELECT列名1,列名2列名1,列名2
  FROM表名1LEFTJOIN表名2〔ON子句〕
  语法说明:
  列名1,列名2:需要检索的列名。列名1,列名2
  表名1表名2:进行左连接的两张表的表名。
  示例:
  selectid,namefromtable1leftjointable2ontable1。cidtable2。
  (4)右连接
  语法格式:
  SELECT列名1,列名2列名1,列名2
  FROM表名1RIGHTJOIN表名2〔ON子句〕
  语法说明:
  列名1,列名2:需要检索的列名。列名1,列名2
  表名1表名2:进行右连接的两张表的表名。
  示例:
  selectid,namefromtable1rightjointable2ontable1。cidtable2。
  3。视图
  视图是一个虚拟表,包含一系列带有名称的列和行数据,但视图并不是数据库真实存储的数据表。存储在数据库中的查询操作SQL语句定义了视图的内容,列数据和行数据来自于视图查询所引用的实际表,引用视图时动态生成这些数据。视图的结构形式和表一样,可以进行查询、修改、更新和删除等操作。
  (1)创建视图
  语法格式:
  CREATEVIEW视图名AS
  语法说明:
  视图名:指定视图的名称。该名称在数据库中必须是唯一的,不能与其他表或视图同名。
  :指定创建视图的SELECT语句,可用于查询多个基础表或源视图。
  示例:
  
  (2)查看视图
  语法格式:
  DESCRIBE视图名;
  语法说明:
  视图名:查看的视图名称。该名称在数据库中必须是唯一的,不能与其他表或视图同名。
  示例:
  
  (3)修改视图
  语法格式:
  ALTERVIEW视图名AS
  语法说明:
  视图名:指定视图的名称。该名称在数据库中必须是唯一的,不能与其他表或视图同名。
  :指定修改视图的SELECT语句,可用于查询多个基础表或源视图。
  示例:
  
  (4)删除视图
  语法格式:
  DROPVIEW视图名1〔,视图名2〕
  语法说明:
  视图名:指定删除的视图名称。
  示例:
  
  4。索引
  索引是一种十分重要的数据库对象。索引是数据库性能调优技术的基础,常用于实现数据的快速检索。对表建立一个索引,在列上创建了索引之后,查找数据时可以直接根据该列上的索引找到对应记录行的位置,从而快捷地查找到数据。索引存储了指定列数据值的指针,根据指定的排序顺序对这些指针排序。
  (1)创建索引
  语法格式:
  CREATE索引名ON表名(列名〔长度〕〔ASCDESC〕)列名
  此外,还可以在CREATETABLE、ALTERTABLE时创建索引
  语法说明:
  索引名:指定索引名。一个表可以创建多个索引,但每个索引在该表中的名称是唯一的。
  表名:指定要创建索引的表名。
  列名:指定要创建索引的列名。通常可以考虑将查询语句中在JOIN子句和WHERE子句里经常出现的列作为索引列。列名
  长度:可选项。指定使用列前的length个字符来创建索引。使用列的一部分创建索引有利于减小索引文件的大小,节省索引列所占的空间。在某些情况下,只能对列的前缀进行索引。索引列的长度有一个最大上限字节数,如果索引列的长度超过了这个上限,就只能用列的前缀进行索引。另外,BLOB或TEXT类型的列也必须使用前缀索引。
  ASCDESC:可选项。ASC指定索引按照升序来排列,DESC指定索引按照降序来排列,默认为ASC。
  示例:
  createindexindexnameontablename(columnname,columnname)
  (2)删除索引
  语法格式:
  DROPINDEX索引名ON表名
  语法说明:
  索引名:要删除的索引名。
  表名:指定该索引所在的表名。
  示例:
  dropindexindexnameontablename
  5。事务
  事务是并发控制的单位,是用户定义的一个操作序列,主要用于处理操作量大,复杂度高的数据。这些操作要么都做,要么都不做,是一个不可分割的工作单位。通过事务,SQL能将逻辑相关的一组操作绑定在一起,以便保持数据的完整性。
  一般来说,事务是必须满足4个条件(ACID):原子性(Atomicity,又称为不可分割性)、一致性(Consistency)、隔离性(Isolation,又称为独立性)、持久性(Durability)。
  (1)开始事务
  语法格式:
  BEGINTRANSACTION事务名称事务变量名称
  语法说明:
  事务变量名称是由用户定义的变量,必须用char、varchar、nchar或nvarchar数据类型来声明该变量。
  BEGINTRANSACTION语句的执行使全局变量TRANCOUNT的值加1。
  示例:
  begintransaction
  (2)提交事务
  语法格式:
  COMMITTRANSACTION事务名称事务变量名称
  语法说明:
  COMMITTRANSACTION语句的执行使全局变量TRANCOUNT的值减1。
  示例:
  committransaction
  (3)撤销事务
  语法格式:
  ROLLBACK〔TRANSACTION〕〔事务名称事务变量名称存储点名称含有存储点名称的变量名
  语法说明:
  当条件回滚只影响事务的一部分时,事务不需要全部撤销已执行的操作。可以让事务回滚到指定位置,此时,需要在事务中设定保存点(SAVEPOINT)。保存点所在位置之前的事务语句不用回滚,即保存点之前的操作被视为有效的。保存点的创建通过“SAVINGTRANSACTION保存点名称”语句来实现,再执行“ROLLBACKTRANSACTION保存点名称”语句回滚到该保存点。
  若事务回滚到起点,则全局变量TRANCOUNT的值减1;若事务回滚到指定的保存点,则全局变量TRANCOUNT的值不变。
  示例:
  rollback
  6。约束
  (1)主键约束
  主键约束是一个列或者列的组合,其值能唯一地标识表中的每一行,这样的一列或多列称为表的主键,通过主键约束可以强制表的实体完整性。
  语法格式:
  字段名数据类型PRIMARYKEY〔默认值〕
  示例:
  PRIMARYKEY(id)
  (2)唯一约束
  唯一约束要求该列唯一,允许为空,但只能出现一个空值。唯一约束能够确保一列或者几列不出现重复值。
  语法格式:
  字段名数据类型UNIQUE
  示例:
  unique(id)
  (3)外键约束
  外键约束用来在两个表的数据之间建立链接,它可以是一列或者多列。一个表可以有一个或多个外键。
  语法格式:
  〔CONSTRAINT外键名〕FOREIGNKEY字段名〔,字段名2,〕
  REFERENCES主表名主键列1〔,主键列2,〕
  语法说明:
  外键名为定义的外键约束的名称,一个表中不能有相同名称的外键;字段名表示子表需要添加外健约束的字段列;主表名即被子表外键所依赖的表的名称;主键列表示主表中定义的主键列或者列组合。
  示例:
  foreignkey(id)
  (4)非空约束
  非空约束(NOTNULL)可以通过CREATETABLE或ALTERTABLE语句实现。在表中某个列的定义后加上关键字NOTNULL作为限定词,来约束该列的取值不能为空。
  语法格式:
  字段名数据类型NOTNULL;
  示例:
  idint(10)notnull
  (5)检查约束
  检查约束基于行中其他列的值在特定的列中对值进行限制,用于限制列中的值的范围。
  语法格式:
  CHECK表达式
  语法说明:
  表达式指的就是SQL表达式,用于指定需要检查的限定条件。
  示例:
  check(0)
  小结
  SQL语言是结构化查询语言的简称,其具有功能丰富、语言简洁、灵活易学的优点。从上面的SQL语言的语法介绍中我们可以看出SQL语法接近英语口语,我们很容易学习和上手,希望本篇文章可以帮助到想要学习SQL语言的数据产品经理们,让数据产品经理日常工作中数据的获取更加简单、方便,从而在此基础上能够做出更好的数据产品。
投诉 评论 转载

要想干得好,做O2O必须向线下学习本文强调了O2O产品经理向线下学习的重要性,并且展示了如何学习的三个关键词。O2O产品经理和其他做纯互联网项目的产品经理相比,有明显的差异性,在很多纯互联网的项目中,PM……什么是敏捷开发Scrum及其适用场景?笔者根据自己对敏捷开发Scrum的理解,总结了敏捷开发从开始到结束的流程以及其适用的场景。一、敏捷开发到底是什么很难用一两句话说清楚敏捷到底是什么,也许因为它只是一……开发运营设计,转岗产品经理难不难呢?转岗产品经理,第一点需要评估的就是抗压能力是否足够强,其次才是是否有良好的学习能力、决策能力、沟通和协调能力。我经常会被问到:设计师转做产品经理难不难?运营转……数据产品经理之图表设计本文介绍了数据产品经理需要懂的常用图表设计,并针对19种图表的定义、适用场景、优缺点,进行了分析说明。概述数据产品经理在日常产品设计时经常需要设计一些图表来对数据进……基于经验,总结B端产品经理产品思维本文结合B端产品经理的工作场景以及产品特点,总结了需要了解与掌握的7点B端产品思维。在我们梳理产品经理的能力和工作方式时,我们总会要求产品经理应该具备产品思维。产品思维是……产品经理如何高效沟通表达?沟通表达能力是产品经理在工作中需要掌握的技能,产品经理如何高效沟通表达呢?本文作者从对程序员、发邮件、用户设计三个方面对这一问题进行了分析并总结,与大家分享。一、万物皆表……数据产品经理必备之SQL基础SQL语言是用于访问和处理数据库的标准的计算机语言,本文将从基本语法和高级语法两方面来介绍SQL语言。数据产品经理从字面上看包含“数据”和“产品经理”两方面,是产品经理领……产品经理玩狼人杀不务正业?狼人杀与产品经理有某些共通之处,或许,玩玩狼人杀可以提升产品能力,完善产品经理的能力体系。狼人杀,你所不知道的秘密!好处多多哟,客官,请细细品味!对产品经理的……产品经理如何绘制状态流转图?状态流转图,可以让需求的表达更直观、更高效!那么,产品经理如何绘制状态流转图?在我刚入行的时候,我设计了一个优惠券的产品方案。对“优惠券使用逻辑”的需求描述如下:用……支付产品经理入门(1)行业各角色分析本事作者梳理分析了支付体系内的各种概念和角色分工,希望通过此文能够加深你对支付行业的认识。很多刚刚入门支付领域的产品经理,一定会被整个支付体系的各种概念搞的眼花缭乱。……离职找工作,产品总监也忧愁产品总监是公司内的头衔,不具备市场流通性,离开公司,也就不再是总监了。一、引言前段时间,和一位老朋友聊天,老朋友曾任职大厂高级产品经理,随后以合伙人身份加入了创业团……如何评估需求的可行性?当一个需求出现的时候,如何评估做不做?本文作者对这个问题进行了分析梳理,从2个大方向对这个问题总结了自己的看法,与大家分享。作为一个产品人员,接收需求已经成为家常便饭,无……
移动触屏的手指触发尺寸便捷度人性化体验视频类软件横向评测44个酷炫的黑暗主题网页设计避免设计中的违和感分析卡片收集游戏《RageofBahamut》盈利机制写给程序猿们的交互设计微博UDC:浅谈用户体验的“反面模式”跨平台字体效果浅析Ps改进UI设计的一些技巧浅谈用户体验的“反面模式”7个网页设计新趋势产品设计从“心“开始雅迪第三代石墨烯电池正式发布!电池结冰72小时续航破240公夜雨丨高正卿同窗绩效薪酬的风险控制手段探析各种脸型适合的发型不同脸型女生的百搭发型常吃熏腊食品隐患多,谨慎食用工伤期间营养费谁承担,工伤赔偿的法律规定有哪些草鱼死了多久不能吃草鱼死了还能吃吗公务员停薪留职读研可行吗家用水泵什么牌子好(中国最好的水泵品牌)大爷放型男模特进菜地吓麻雀,效果出奇的好,稻草人被迫下岗啦热闹的早晨加快百度蜘蛛快速抓取技巧,你学会了吗

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找作文动态热点娱乐育儿情感教程科技体育养生教案探索美文旅游财经日志励志范文论文时尚保健游戏护肤业界