SQL-DDL

这里写自定义目录标题

DDL

Data Definition Language 数据定义语言

  • 定义数据库结构

  • 定义数据表结构

  • 增 GREATE

  • 删 DROP

  • 改 ALTER

注意:DDL在事务过程中会自动COMMIT

eg.

定义

数据库定义:

CREATE DATABASE base_name;
DROP DATABASE base_name;

数据表定义:

CREATE TABLE table_name;

创建用户表user name为varcher(255) id为int 且id为自增

GREATE TABLE user (
    id int(11) NOT NULL AUTO_INCREMENT,
    name varcher(255) NOT NULL
);

完整语句:

DROP TABLE IF EXISTS 'user';
CREATE TABLE user (
    'id' int(11) NOT NULL,
    'name' varcher(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
    'height' float(3,2) NULL DEFAULT 0.00,
     PRIMARY KEY ('id') USING BTREE,
     UNIQUE INDEX 'name'('name') USING BTREE,
)ENGINE = InnoDB CHARACTER SET = UTF8 COLLATE = utf8_general_ci ROW_FORMAT=Dynamic;

创建之前删除:

DROP TABLE IF EXISTS 'user';

字符集utf8

name varcher(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;

排序规则:

  • utf8_general_ci表示对大小写不敏感
  • utf8_bin表示对大小写敏感

设置主键:

PRIMARY KEY ('id') USING BTREE

将id设置为主键,并且是同BTREE的方式建立索引

将name字段添加唯一索引(UNIQUE)同时也使用BTREE的方式建立索引

数据库引擎使用InnoDB

全局字符集utf8,排序规则utf8_general_ci,行格式为Dynamic

修改

  1. 添加字段

ALTER TABLE user ADD (age int(11));

  1. 修改字段名

ALTER TABLE user RENAME COLUMN age to user_age;

  1. 修改字段格式

ALTER TABLE user MODIFY (age float(3,1));

  1. 删除字段

ALTER TABLE user DROP COLUMN age;

常见约束

  1. 主键约束 (唯一,非空,有且仅有一个,可以是一个字段也可以是多个字段的总和)
  2. 外键约束 (确保表与表之间的完整性,可重复,可为空)
  3. 唯一性字段约束(唯一, 可为空)
  4. 非空约束 (非空)
  5. 默认约束 (DEFAULT 定义默认值)
  6. CHECK约束 (定义字段值的有效范围)

数据表的设计原则

  • 保证数据正确性,插入删除更新的时候如何约束验证?
  • 降低数据表的冗余量
  • 使用方便
  1. 数据表个数越少越好
  • 表越少,数据结构越简洁
  1. 数据表中字段数越少越好
  • 字段少冗余程度小
  1. 数据表中的联合字段索引越少越好
  • 联合索引过多,占用空间越大,对性能影响越大,理解程度也会增加
  1. 主键和外键的使用越多越好
    • 键用的多,代表利用率高 (争议,权衡性能和数据正确性)/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值