APP全栈工程师修炼之路(三)

第三章 数据库设计
        从本章开始,我们将真正的开始进入全栈之路。因为全栈工程师不需要对某种技术有着深入的研究,所以本书不会深入探讨技术细节,只注重产品的设计与开发。

3.1 MySql概要

        MySql是一个关系型数据库,最初是由瑞典MySql AB公司开发,后来被Oracle公司收购,成为Oracle旗下产品。
        MySql所使用的Sql语言是访问数据库最常用的标准化语言。它采用双授权政策,分为社区版和商业版,由于其体积小、速度快,尤其是开源,一般作为中小型企业的项目开发都将Mysql作为数据库的第一选择。

3.2 Sql语言

        Sql,英文名Struct Query Language,结构化查询语言,也就是它是专门针对关系型数据库提供的数据查询语言。但是每种数据库提供的Sql语言不尽相同,但是都大同小异,学会了其中一种数据库,其他数据库就可以举一反三,本书主要介绍Mysql的数据库脚本语言。
        Sql基本操作有:查询(Select)、插入(Insert)、更新(update)、删除(Delete)、创建(Create)
        Sql对大小写不敏感,因此大小写都可以。

        3.2.1 查询

        查询的基本语法是:select * from 表名或者select 列名 from 表名,其中列名可以包含多个列名,中间以逗号隔开,这句Sql的含义是查询某张表的某些列的数据,如果select后面跟"*"的话,则是查询全部列的数据。
      查询语句后面可以跟条件,语法是:where 列名 条件符 值,具体的条件符请看下表:
条件符 解释
= 等于
> 大于
< 小于
>= 大于等于
<= 小于等于
!=或者<> 不等于
like/not like 字符包含/不包含
in/not in 数据包含/不包含
   
      下面 举个实际的例子:
      假如我们要查询person表中age大于20的数据,sql语句是:select * from person where age > 20
      如果有多个条件,需要在条件之间加上and(并且)或者or(或者),如:
      select * from person where age > 20 and age < 30,表示查询age在20-30之间的数据。
      select * from person where age < 20 or age > 30,表示查询age小于20或者大于30的数据。
      条件符中需要特别注意like和in关键词,like 后面跟字符串,如:like '%abc%',表示所有包含abc的数据,其中百分号表示匹配所有字符,abc%,表示以abc开头的,%abc表示以abc结束的。
      in关键词后面跟多条数据,如:age in(1,2,3,4),它等同于age = 1 or age = 2 or age = 3 or age = 4。
      我们还可以对查询出的数据进行排序,用关键词order by 列名 asc/desc,其中asc表示升序(默认),desc表示降序,如:
      select * from person order by age,对age字段升序,select * from person order by age desc,对age字段降序。字段可以有多个,多个字段之间以逗号隔开,排序是根据字段顺序依次排序。

3.3 数据库实战

        对于一个互联网项目,设计数据库是必要的过程。一个数据库设计的好与坏很大程序决定了系统的可扩展性、维护性。一个数据库由多张表构成,不同的表存储着不同的内容。
        每张数据库表包含多个字段,每个表之间一般通过外键联系。
        从本节开始,笔者就将带领大家完成一个完整的互联网项目,这个项目是一个商城APP,一个商城主要包括了注册、登录、购物车、商品、类目、订单、支付、用户中心等功能。
        根据以上功能,我们可以分析出包含以下表:用户表、购物车表、商品表、类目表、订单表、订单详情表。
        每张表的结构如下:
        
原创文章 108 获赞 219 访问量 42万+

猜你喜欢

转载自blog.csdn.net/lynnlovemin/article/details/70851422