数据库Mysq学习(04)

接前面数据库Mysq学习(03)

什么是DDL:

数据定义语言(DDL:Data Definition Language):其语句包括动词CREATE,ALTER和DROP。在数据库中创建新表或修改、删除表(CREATE TABLE 或 DROP TABLE);为表加入索引等。DDL 只操作数据库、表、视图、索引,但是不操作表中的数据

创建表:

语法:
create table 表名(
  字段名1  字段类型 [约束1 约束2 ....],
  字段名2  字段类型 [约束1 约束2 ....]
)


CREATE TABLE `course` (
  `c_id` varchar(20) NOT NULL DEFAULT '',
  `c_name` varchar(20) NOT NULL DEFAULT '',
  `t_id` varchar(20) NOT NULL,
  PRIMARY KEY (`c_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 字段类型

1:数字类型

1:区分有符号和无符号,如果有符号高位表示正数(0)和负数(1),如果无符号,那么高位是数字的一部分

2:正数型len(长度)无意义的,决定整数只有它的字节大小

3:可以用float和double去表示浮点数,但是float和double存在精度丢失

4:如果不能容忍精度丢失,强烈建议使用decimal数据类型

CREATE TABLE t_user (

id INT , age TINYINT , balance DECIMAL(4,2)

)

DECIMAL(m,n) m = 正数部分+小数部分 n:小数部分,如果小数部分超过n会自动四舍五入

2:字符类型

char:定长,例如char(5),如果数据没有超过5,会使用空格补,定长的缺点占用磁盘空间,优点是读取效率比较高

varchar:变长,例如varchar(5) ,如果数据只占用1个字符,不会使用空格补,变长的缺点读取效率比较低,优点是节省磁盘空间

text:大本文存储

1: TINYTEXT(255字符)

2:TEXT(65535字符)

3:MEDIUMTEXT(16M)

4:LONGTEXT(long最大值4G)

BLOB (binary large object),二进制大对象,是一个可以存储二进制文件(文件、视频、音频、图片)等

1.TinyBlob 最大 255字节

2.Blob 最大 65K

3.MediumBlob 最大 16M

4.LongBlob 最大 4G

日期类型
datetimetimestamp的区别
1:时间范围的区别
2:datetime 不会随着时区变化,但是timestamp随着时区自动变化

约束

1:主键约束

主键(primary key):唯一标记数据表中一行数据

主键约束:一旦一个字段被设置为主键,那么这个字段的值必须唯一而且不能为null

主键自增长 :当主键的字段类型为int类型时,可以设置主键自增

注意点:一张表中只能有一个主键,不允许多个主键 但是可以联合主键

2:唯一约束

唯一约束:一旦一个字段设置了唯一约束,那么这个字段的值必须唯一,可以为null

一张表可以给多个字段设置唯一约束

3:非空约束

非空约束,一旦表字段设置了非空约束,那么这个字段的值必须不能为null

4:默认值约束

默认值约束:一旦表字段设置了默认值,如果在插入的时候没有给值,那么会使用默认值

5:外键约束

 

外键(foreign key) 简称FK ,外键的值包含在另外一张表的主键中,设计外键的目的就是为了连表查询

外键约束:一旦一个外键设置了外键约束,那么

1:外键的值必须来源于另外一张表的主键,不能无中生有

2:删除主键表中的数据是,如果有外键引用了这条数据,那么这条数据不允许被删除

alter和drop了解即可 谨慎使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小理想!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值