Web后端开发——数据库设计

问题

开发一个项目需要什么?

1.项目目标

2.需求分析

3.设计

4.开发

5.测试

6.部署与发布

7.维护与迭代

8.项目管理

开发流程是什么样?

1.数据库设计

2.数据库操作

3.数据库优化

该流程哪个环节需要数据库?

很多环节都需要用到数据库

在我们要开发一个项目之前,通常会拿到页面原型及需求文档。

第一阶段,在拿到需求和原型之后,首先要进行项目的设计(概要设计,详细设计,接口设计,数据库设计)最终将数据库以及数据库当中的表结构设计创建出来。

在第二阶段,我们要进行功能的开发,参照页面原型以及需求编码实现功能

开发完毕上线之后,后期可以对项目进行优化,其重要的一个部分就是数据库的优化(索引的建立,SQL的优化等等)

软件工程专业的学生应该有所了解,开发一个软件的过程与之相类似

一.数据库的设计——DDL语句

DDL

DDL 英文全称是 Data Definition Language数据定义语言,用来定义数据库对象(数据库、表)

1.数据库

查询
查询所有数据库:
show databases;
查询当前数据库:
select database();

第一个数据库是之前创建的,后面四个是创建数据库时自带的

使用(切换)
使用数据库(切换数据库):
use  数据库名 ;

创建

        创建数据库:

create  database [ if  not  exists ]   数据库名 ;

注:数据库不可被重复创建 (所以可以在database后面加入 [ if  not  exists ]:如果存在,不创建,如果不存在,创建)

删除

         删除数据库:

drop  database [ if exists ]   数据库名 ;

 

注意:上述语法中的database也可以换为schema 

2.表(增删改查)

存在的问题:

通过上面的语句可以了解到,在命令行中编写语句很不方便

a.无提示

在命令行中编写语句没有任何的提示,非常非常容易敲错

b.操作繁琐

所有的功能操作全部得通过SQL语句来完成,操作非常繁琐而且效率不高

c.无历史记录

当我们关闭窗口之后,下一次打开所有的SQL语句全部消失,没有保留任何的历史记录

所以我们可以使用MYSQL的图形化管理工具来编写SQL语句

我所使用的软件是DataGrip,网上有破解的,可以自行查找

在我们下载了DG软件之后,创建一个数据源为MYSQL的sql文件

填写自己的数据库名称以及密码,根据提示下载相应的驱动和插件,点击测试连接连通MYSQL

连接完之后,会发现左边的文件栏里面就是我们之前控制面板创建的数据库

在console(控制台)窗口里面可以执行相关sql语句

编写好sql语句,点击运行,即可在下面看到运行之后的结果

DDL(表操作)
1.创建

create table  表名(

  字段字段类型  [ 约束 ]  [ comment  字段1注释 ] ,

  ......

  字段字段类型  [ 约束 ]  [ comment  字段n注释 ]

) [ comment  表注释 ] ;

创建表单之后,就可以在表里面添加数据了

但是,唯一标识ID在这种情况下可以重复,那我们该如何约束限制?

2.约束

概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。
目的:保证数据库中数据的正确性、有效性和完整性。
以下有五种约束

约束

描述

关键字

非空约束

限制该字段值不能为null

not  null

唯一约束

保证字段的所有数据都是唯一、不重复的

unique

主键约束

主键是一行数据的唯一标识,要求非空且唯一

primary  key

默认约束

保存数据时,如果未指定该字段值,则采用默认值

default

外键约束

让两张表的数据建立连接,保证数据的一致性和完整性

foreign  key

对之前写的表格加以约束,即可更加安全稳定

本节源码:


-- DDL:  表结构
-- 创建:基本语法

create table tb_user(
                        id int comment 'ID,唯一标识',
                        username varchar(20) comment '用户名',
    -- 此处在java里面是String类型的数据,但是在mysql里面是varchar   ()里面的数字表示能够容纳多少字符
                        name varchar(10) comment '姓名',
                        age int comment '年龄',
                        gender char(1) comment '性别'
    -- 最后一个不用加逗号
) comment '用户包'


-- 创建:基本语法(约束)

create table tb_user(
                        id int  primary key comment 'ID,唯一标识',
                        -- 主键约束
                        username  varchar(20)  not null unique comment '用户名',
                        -- 非空约束加唯一约束
    -- 此处在java里面是String类型的数据,但是在mysql里面是varchar   ()里面的数字表示能够容纳多少字符
                        name varchar(10) not null comment '姓名',
                        -- 非空约束
                        age int comment '年龄',
                        -- 无约束
                        gender char(1) default '男' comment '性别'
                        -- 默认约束  注:default后面要加默认值
    -- 最后一个不用加逗号
) comment '用户包'

  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值