MySQL笔记2

数据库设计

E-R图转DBMS数据模型

范式

为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。

1.第一范式(确保每列保持原子性)
2.第二范式(确保表中的每列都和主键相关)
3.第三范式(确保每列都和主键列直接相关,而不是间接相关)
4.巴斯·科德范式BCNF(前提必须遵循3NF,要求主键列互不依赖)
5.第四范式(禁止多值依赖)
6.第五范式(第五范式将表分割成尽可能小的块,为了排除在表中所有的冗余)

第一范式用来消除某个表列存储多个值的冗余现象。
第二范式用来处理冗余数据的删除问题。
第三范式用来消除没有直接依赖于第一范式和第二范式形成的非主键列。
BCNF范式用来消除没有直接依赖于第一范式和第二范式形成的主键列。
第四范式用来消除多值依赖。
第五范式用来处理消除所有的业务冗余,以独立的表来表达每一个业务需求。

数据类型

char:1byte,定长字符串
varchar:2byte,可变长字符串(省空间)
tinybiob:二进制字符串,二进制存储
tinytext:文本字符串,ASCII存储
biob
text

DDL

创建 MySql 的表时,表名和字段名外面的符号 ` 不是单引号,而是英文输入法状态下的反单引号,也就是键盘左上角 esc 按键下面的那一个 ~ 按键。反引号是为了区分 MySql 关键字与普通字符而引入的符号,一般的,表名与字段名都使用反引号。

#utf-8
create database if not exists zarok default charset utf8;
CREATE DATABASE 数据库名称 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

gbk

CREATE DATABASE 数据库名称 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
创建数据库并指定字符集(否则有可能乱码)
create table if not exists table1(col1 int,col2 char(20));
创建表并指定两列
? create;? show #使用帮助
alter table table1 add birthday date;
增加一日期列
alter table 表名 modify 属性列名 属性类型;
修改表中列
alter table 表名 drop column 属性列名;
删除列

DML

insert into 表名 (col1,col2)value(1,“zarok”);
insert into 表名 value(所有属性数据);
插入数据
update 表名 set col1=1,col2=“zarok”;
更新整列的值
update 表名 set col1=2,col2=“zarok”where col1=1;
更新col1列属性为1的记录col1,col2的值(有重复属性无法区分时全部修改)
update 表名 set col1=2,col2=“zarok2” where col1=1&&col2=“zarok1”;
更新col1列属性为1与col2列属性为zarok1的记录col1,col2的值,也可以用||,and,or
delete from 表名;
删除表中全部数据
delete from 表名 where 属性名1=属性值1&&(||,or,and,!)属性名2=属性值2
删除属性列数据

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值