数据库设计-DDL

一、数据库设计

数据库设计根据产品原型以及需求文档,要分析各个模块涉及到的表结构以及表结构之间的关系,以及表结构的详细信息。最终我们需要将数据库以及数据库当中的表结构设计创建出来。

二、数据库操作

进行数据库设计,需要使用到SQL分类中的DDL语句。

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

DDL中数据库的常见操作:查询、创建、使用、删除。

2.1 查询数据库
  • 查询所有数据库:
show databases;
  • 查询当前数据库:
select database();
2.2 创建数据库
create database [ if not exists ] 数据库名;

如果创建一个已经存在的数据库,将会报错。

可以加上参数 if not exists ,如果数据库不存在,则创建该数据库;如果存在则不创建。

2.3 使用数据库
use 数据库名;

要操作某一个数据库下的表时,就需要通过该指令,切换到对应的数据库下,否则不能操作。

2.4 删除数据库
drop database [ if exists ] 数据库名;

如果删除一个不存在的数据库,将会报错。

可以加上参数 if exists ,如果数据库存在,再执行删除,否则不执行删除。

注意

上述语法中的database,也可以替换成schema

三、表操作

3.1 创建
create table  表名(
    字段1  字段1类型 [约束]  [comment  字段1注释 ],
    字段2  字段2类型 [约束]  [comment  字段2注释 ],
    ......
    字段n  字段n类型 [约束]  [comment  字段n注释 ] 
) [ comment  表注释 ] ;

注意:[ ] 中的内容为可选参数;最后一个字段后面没有逗号

约束

概念:所谓约束就是作用在表中字段上的规则,用于限制存储在表中的数据。

作用:就是来保证数据库当中数据的正确性、有效性和完整性。

在MySQL数据库当中,提供了以下5种约束:

约束描述关键字
非空约束限制该字段值不能为nullnot null
唯一约束保证字段的所有数据都是唯一、不重复的unique
主键约束主键是一行数据的唯一标识,要求非空且唯一primary key
默认约束保存数据时,如果未指定该字段值,则采用默认值default
外键约束让两张表的数据建立连接,保证数据的一致性和完整性foreign key

注意:约束是作用于表中字段上的,可以在创建表/修改表的时候添加约束。可以在主键约束primary key后加auto_increment进行自增。

数据类型

MySQL中的数据类型有很多,主要分为三类:数值类型、字符串类型、日期时间类型。

数值类型常用:tinyint、int、bigint、float、double、decimal

  • 示例:double(5,2):5表示整个数字长度,2 表示小数位个数
  • age tinyint unsigned,年龄无符号数的小整数

字符串类型常用:varchar、char

  • char(10): 最多只能存10个字符,不足10个字符,占用10个字符空间
  • varchar(10): 最多只能存10个字符,不足10个字符, 按照实际长度存储

char是定长字符串,指定长度多长,就占用多少个字符,和字段值的长度无关 。

varchar是变长字符串,指定的长度为最大占用长度 。相对来说,char性能更高。

日期时间类型常用:date、time、year、datetime

  • data:日期值,格式YYYY-MM-DD
  • datetime:日期和时间,格式YYYY-MM-DD HH:MM:SS
3.2 查询
  • 查询当前数据库所有表
show tables;
  • 查看指定表结构
desc 表名; #可以查看指定表的字段、字段的类型、是否可以为NULL、是否存在默认值等信息
  • 查询指定表的建表语句
show create table 表名;
3.3 修改
  • 添加字段
alter table 表名 add  字段名  类型(长度)  [comment 注释]  [约束];
  • 修改数据类型
alter table 表名 modify  字段名  新数据类型(长度);
alter table 表名 change  旧字段名  新字段名  类型(长度)  [comment 注释]  [约束];
  • 删除字段
alter table 表名 drop 字段名;
  • 修改表名
rename table 表名 to  新表名;
3.4 删除
drop  table [ if exists ]  表名;

if exists :只有表名存在时才会删除该表,表名不存在,则不执行删除操作(如果不加该参数项,删除一张不存在的表,执行将会报错)。

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值