DDL:数据库定义语言
数据库定义语言 一、库的管理 创建、修改、删除 二、表的管理 创建、修改、删除 创建 create 修改 alter 删除 drop 三、表的复制 仅仅复制表的结构 create table 新表 like 旧表 CREATE TABLE copy like SC 复制表的结构+数据 CREATE TABLE copy2 SELECT * from SC WHERE sid = '01' 仅仅复制某些字段同时不要数据 CREATE TABLE copy3 select sid,cid from SC WHERE 0 特别的注意啊 mysql 中 0 表示 false 非零表示true 映射到java 对象属性的时候也是true或者false CREATE TABLE copy4 select sid,cid from SC WHERE 3 四、表的删除 drop table 表名 如下: drop TABLE copy4 五、数据类型 分类 数值型 整型 小数 定点数 浮点数 字符型 较短的文本: char,varchar 较长的文本: text,blob(较长的二进制数据图片) 日期型 整型 TinyInt, SmallInt, MediumInt, int, BigInt 字节数: 1 2 3 4 8 每个字节由8个比特组成 对应的java数据类型 byte short 无 int Long 字节数: 1 2 4 8 每个字节由8个比特组成 整型的特点 1、创建表的时候如果不指定长度会有默认的长度,长度的意思是显示的最大宽度,不是可以插入的最大最小值,插入的数值 大小由数据类型来决定的,如果指定了长度如果再插入时长度不够会再左边由零补充,一般可以不指定长度。 小数 浮点型 float(M,D) double(M,D) 定点数 decimal(M,D) float double DECIMAL(M,D) 字节数: 4 8 对应的java数据类型 float double BigDecimal 字节数: 4 8 特点: 1、M代表的意思整数位和小数位的个数和 DECIMAL(3,1) 表示小数个数是1,整数个数是2 2、D表示小数点后的个数 3、M和D都可以省略但是如果定点型小数(decimal) 默认是(10,0),float和double不用指定精度(小数点个数) 4、如果涉及到了金额运算就要用decimal了,如果只是数据的展示就用float就行了。 字符型 较短的文本 char(M),varchar(M) 较长的文本: text(系列),blob(较长的二进制数据图片) 较短的二进制 binary和varbinary 一般图片不会放到数据库里面,一般放图片地址,这两个类型用的不多 特点: 1、M代表的意思是 最多字符数 2、char代表的是固定长度的字符,char比较耗费存储空间,char 效率比较好 3、varchar代表的是可变长度的字符,varchar比较省存储空间,varchar 效率比较低 4、char类型的字段长度可以省略默认是1,varchar不能省略 什么时候用char 或者varchar 例如存储字符比较固定的就用char,不固定的用varchar,例如sex字段 用char(1),name用varchar(20) 枚举 这个枚举是补充说明的,一般枚举对应的是数据库表中的字段的类型是varchar类型 日期型 Timestamp:时间戳模式 年月日 时分秒 Datetime:日期模式 年月日 时分秒 mysql的当前时间和系统时间不一致问题解决 https://blog.csdn.net/guiyin1150/article/details/116171503?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-116171503-blog-121224663.pc_relevant_multi_platform_whitelistv2&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-116171503-blog-121224663.pc_relevant_multi_platform_whitelistv2&utm_relevant_index=1 六、常见的约束 含义: 一种限制,用于限制表中的数据,为了保证表中的数据的准确性和可靠性 分类: FOREIGN KEY: 外键,用于限制两个表的关系,用于保证该字段的值必须来自于主表关联列的值,用于保证数据的准确,在从表添加外键 从表的外键一般是主表的主键同时先要创建主表从表的外键才能使用主表的key 插入数据时应该先插入主表的数据,才能添加从表 删除数据时先删除从表的数据,然后才能删除主表的数据 查看索引 show index from 表名 主键和唯一主键的大对比 1、主键和唯一索引都能保证唯一性(添加、修改、删除、查询) 2、主键不允许为空唯一索引可以为空(只能一个) 3、主键一个表只能有一个,唯一索引可以有多个 4、主键和唯一索引都可以多个字段组合 什么时候创建唯一索引场景 我们一般主键如果是自增或者代码生成的,在高并发的时候如果单单的靠主键,不能保证业务数据的唯一性,这时候就要用上了唯一所以