数据库建表原则和方式
MySql中数据类型:
数值型:
整数类型:int
小数类型:decimal
小数格式:decimal(总长度,小数位)
decimal(5,2) 要求你传递过来的数据总长度是5位,小数位是2位
日期和时间类型
字符串类型
char(字符串的长度) 定长
varchar(字符串的长度) 变长
姓名 char(10) tom--->3 10个字符-3=7个字符的空间 剩余的空间不会释放,系统会用空格填充满
varchar(10) tom--->3 还剩下7个字符空间,给释放出来
创建表语法格式:
create table 表名(
列名1 数据类型,
列名2 数据类型,
列名3 数据类型,
列名4 数据类型,
);
删除表
格式:drop table 表名;
删除多张表:drop table 表名1,表名2...
修改表结构
添加列(属性):
alter table 表名 add 属性名 数据类型:
删除列(属性):
alter table 表名 drop 属性名;
修改i列的数据类型:
alter table 表名 modify 列名 新的数据类型
修改列名(字段):
alter table 表名 change 旧列名 新列名 数据类型;
显示表结构
desc 表名
数据的完整性:指的是数据库中数据的准确性和可靠性
实体完整性约束:
目的:在表中至少有一个唯一的标识,主属性字段中,不能为空,不能重复
主键(primary key)约束:唯一,不重复,不能为空 一个表中有且只有一个主键约束
创建表的同时创建主键约束
格式一:
create table 表名(
列名1 数据类型 primary key,
列名2 数据类型
);
格式二:主键约束名字的写法:PK_列名
create table 表名(
列名1 数据类型,
列名2 数据类型,
constraint 主键约束的名字 primary key(列名1)
);
格式三:
create table 表名(
列名1 数据类型,
列名2 数据类型,
primarily key(列名1)
);
针对已经存在的表,添加主键约束
格式一:
alter table 表名 modify 列名 数据类型 primary key;
格式二:
alter table 表名 add primary key(列名):
格式三:
alter table 表名 add constraint 主键约束的名字 primary key(列名)
删除主键约束
格式:alter table 表名 drop primary key;
联合主键:指的是把两个列看成是一个整体,这个整体是不为空、唯一、不重复
创建表的同时创建联合主键
格式二:主键约束名字的写法:PK_列名
create table 表名(
列名1 数据类型,
列名2 数据类型,
constraint 主键约束的名字 primary key(列名1,列名2)
);
格式三:
create table 表名(
列名1 数据类型,
列名2 数据类型,
primarily key(列名1,列名2)
);
针对已经存在表,添加联合主键
alter table 表名 add constraint 主键约束的名字 primary key(列名1,列名2)
唯一约束 unique
特征:
不允许有重复的值,保证数据的唯一性
可以有空值
在一个表中,可以有多个唯一约束
默认情况下,唯一约束的名字和列名保持一致
添加唯一约束的列,系统也会默认给这个列添加一个唯一索引
索引:等同于书本的目录,将来能够加跨数据的查询速度
创建表的同时创建唯一约束
格式一:
create table 表名(
列名1 数据类型,
列名2 数据类型,
constraint 唯一约束的名字 unique(列名1)
);
格式二:
create table 表名(
列名1 数据类型 unique,
列名2 数据类型 unique,
列名3 数据类型
);
针对已经存在的表,添加唯一约束
格式:alter table 表名 add unique(列名);
删除唯一约束
格式:alter table 表名 drop index 唯一约束的名字
域完整性约束:保证在表中不会输入无效的数据
默认约束 default 当默认约束来修饰某个列的时候,修饰的列即使不写数据也会默认一个值的
创建表的同时创建默认约束
格式:create table 表名(
列名1 数据类型 default '字符串类型或者日期类型的默认值',
列名2 数据类型 default 数值,
列名3 数据类型
);
针对已经存在的表,添加默认约束
格式:alter table 表名 modify 列名 数据类型 default '值'
删除默认约束
格式:alter table 表名 modify 列名 数据类型;
非空约束 not null 当前列是必须有值
在创建表的同时创建非空约束
格式:create table 表名(
列名1 数据类型 not null,
列名2 数据类型 not null,
列名3 数据类型
);
针对已经存在的表,添加非空约束
格式:alter table 表名 modify 列名 数据类型 not null;
参照完整性 foreign key
创建表的同时创建外键约束
主表(接下来再建新表的时候,要参照的表)
create table 表1(
列名1 数据类型 primary key,
列名2 数据类型,
);
从表(外键约束所在表)
create table 表2(
列名1 数据类型,
列名2 数据类型,
constraint 外键约束的名字 foreign key(从表的列名1) references 主表表名1(列名10
);
注意:关于引用的列是要求:从表的列和主表的列,列名可以不一样,但是,这两个列的数据类型和内容必须保持一致
针对已经存在的表,添加外键约束
格式:alter table 从表 add constraint 外键约束的名字 foreign key(从表表名1) references 主表表名(主表列名)
删除外键约束
格式:alter table 表名 drop foreign key 外键约束的名字
数据库建表原则和方式相关推荐
- MySQL数据库建表原则与方式
目录 一.MySQL数据类型分类 1.MySQL支持所有标准sql数值数据类型 2.日期和时间类型 二.数据库建表方式和原则 1.创建表 2.删除表 3.修改表 4.显示表 一.MySQL数据类型分类 ...
- 数据库建表原则,SQL数据库建表前期优化,SQL数据库操作优化,数据库命名规范...
2019独角兽企业重金招聘Python工程师标准>>> 关键字: 数据库建表原则 ·1. 原始单据与实体之间的关系 可以是一对一.一对多.多对多的关系.在一般情况下,它们是一对一的关 ...
- 数据库建表的 15 个最佳实践方式
前言 对于后端开发同学来说,访问数据库,是代码中必不可少的一个环节. 系统中收集到用户的核心数据,为了安全性,我们一般会存储到数据库,比如:mysql,oracle等. 后端开发的日常工作,需要不断的 ...
- (19)一篇掌握MySQL数据库基础下 基本操作(外键约束、建表原则、多表查询、子查询)
MySQL数据库基础下 一.修改表--添加外键约束 二.多表之间的建表原则 1.建数据库原则:通常情况下,一个项目/应用建一个数据库 2.多表之间的表原则: (1)一对多:分类和商品 (一个分类对应多 ...
- 数据库建表的两种经典方式
数据库建表的两种方法 准备工作 点击右键新建数据库,输入数据库名称即可! 在这里我们数据库的名称为Students,其余默认即可. (1)如下图所示,Students为建好的数据库,接下来建表. 第一 ...
- 聊聊数据库建表的15个小技巧
前言 对于后端开发同学来说,访问数据库,是代码中必不可少的一个环节. 系统中收集到用户的核心数据,为了安全性,我们一般会存储到数据库,比如:mysql,oracle等. 后端开发的日常工作,需要不断的 ...
- java 建表 框架_【Java框架型项目从入门到装逼】第九节 - 数据库建表和CRUD操作...
1.新建学生表 这节课我们来把和数据库以及jdbc相关的内容完成,首先,进行数据库建表.数据库呢,我们采用MySQL数据库,我们可以通过navcat之类的管理工具来轻松建表. 首先,我们得建一个数据库 ...
- 数据库建表-- 一对多/多对一/一对一/多对多 关系
转自: https://blog.csdn.net/zhongshan_c/article/details/8210196 数据库建表-- 一对多/多对一/一对一/多对多 关系 关联映射:一对多 ...
- PowerDesigner,如何将Oracle数据库建表语句转化成Mysql数据库建表语句。
在实际工作中,一张表,我们可能需要在Mysql数据库中建表,又要在Oracle数据库中建表.表中每个字段的数据类型.中文注释.是否可为NULL 问题,非常影响我们建表的效率.本篇文章,以Oracle数 ...
最新文章
- 最小生成树(Kruskal )
- Struts值栈与Ognl
- nyoj - 概率计算 926
- mysql5.6主从参数详解
- php 转码iconv,PHP iconv()函数转字符编码的问题(转)
- 服务器不删档的设置_CCD2服务器已经开启,准备好刷刷刷了吗
- 若依前后端分离前端使用Vue3启动教程
- matlab生成不重复的随机数_怎么生成不重复随机数——《超级处理器》应用
- Haproxy-1.5.x SSL配置
- Java单例模式实现(线程安全)
- java 神经网络算法_70行Java代码实现深度神经网络算法分享
- 中英文翻译、语料库等资料
- 三.	SECS/GEM封装库RapidSecs开发手记-SECS/GEM基础知识-1
- 最短路径BFS算法matlab,数据结构笔记——最短路径BFS算法
- 如何用ps制作GIF动图
- 网络流量采集(一)概述
- jvm精通之柳暗花明
- 分类变量 哑变量矩阵 指标矩阵_ML基础:协方差矩阵
- 牛客编程语言练习赛第三场(C++)
- 指纹支付 java lang6_支付宝;超6成人使用指纹、刷脸支付,网友;喜欢用密码!...
热门文章
- “GIIS 2018智能网联汽车产业创新峰会”隆重召开,共探科技出行图景
- 一个超好用的论文图片编辑神器---Inkscape(Mark)
- vscode如何查看修改过的部分_VS Code 使用小技巧
- 小米商城下载APP页面
- NKOI 3747 宠物
- C# 字符串对象转JSON
- 在pycham中生成微信二维码向微信助手发送消息
- 银联开发平台银行卡信息查询接口的使用
- 怎样在服务器上绑定域名解析,服务器怎么绑定域名 服务器绑定域名方法【详细步骤】...
- 网站源码下载项目,小白简单搬运月入1w+