MySQL基本sql语句-阶段中

1、自动编号:auto_increment

  • 目的保证数据的唯一性,譬如设置id字段,auto_increment
  • 自动编号,且必须与主键一起使用。
  • 默认情况下,起始值为1,每次增量为1.

2、主键:PRIMARY KEY

  • 每张数据表当中只有一个主键字段。(从而能够查找行记录)
  • 主键保证其唯一性,即不可以重复。
  • not null

3、唯一约束:unique key

  • 唯一约束可以用来保证记录的唯一性,即不可重复(重复会报错)
  • 唯一约束的字段可以是空值
  • 每张数据表中可以为多个唯一约束

4、默认值:default

  • 当插入数据记录时,没有声明该字段赋值,它会自动赋值默认值

5、 数据类型

整型

在这里插入图片描述

浮点型

在这里插入图片描述
double的存储范围比float大,但是占用的空间也大,所以除非有需要才使用double。
一般使用float类型而不是double类型。

日期时间型

在这里插入图片描述
很少使用到日期类,大多数是使用时间戳数字来记录时间。

字符型

在这里插入图片描述

6、外键约束

  • 1、父表和子表必须使用相同的存储引擎
  • 2、数据表的存储引擎只能为InnoDB
  • 3、外键列和参照列必须具有相同数字参数。字符型比较特殊,长度可以不一致。
  • 4、外键列和参照列必须创建索引。如果外键表无索引,那么它会自动创建索引。

外键约束的参数:
cascade:从父表删除或更新且自动删除或更新子表中匹配的行
set null:从父表删除或更新行,并设置子表的外键列为null。如果使用该选项,必须保证子表列没有指定not null
restrict:拒绝对父表的删除或更新操作
no action:标准SQL的关键字,在MySQ中和restrict一样

外键的使用对于减少数据库冗余性,以及保证数据完整性和一致性有很大作用。
另外注意,如果两张表之间存在外键关系,则MySQL不能直接删除表(Drop Table),而应该先删除外键,之后才可以删除。
所以一般默认就好(RESTRICT)。

create table user1(
'id' smallint (5) unsigned not null auto_increment,
'username' varchar(10) not null,
'pid' smallint(5) unsigned default null,
PRIMARY key ('id'),
key ('pid'),
constraint 'user1' foreign key('pid') references 'provinces' ('id') on delete cascade
)ENGINE=InnoDB Default CHARSET=utf-8;

7、修改数据表

添加单列

alter table tbl_name add [column] col_name column_definition
[first|after col_name]

alter table tbl_name add age tinyint usigned not null default 10;

添加多列

alter table tbl_name add [column] (col_name column_definition,…)

删除列

alter table tbl_name drop password,drop age

添加约束

添加主键约束:PRIMARY KEY('index_col_name')
添加唯一约束:UNIQUE KEY/INDEX [index_name][index_type](index_col_name,..)
添加外键约束:ALTER table tbl_name add foreign key(pid) references tal_name2(id);
添加/删除默认约束:ALTER table tbl_name3 alter col_name {set defult data_value|drop default}

删除约束

删除主键约束:alter table tbl_name drop primary key
删除唯一约束:alter table tbl_name drop {INDEX|KEY} index_name
删除外键约束:allter table tbl_name drop foreign key tbl_name_ibfk

修改列定义

alter table tbl_name modify [column] col_name column_definition [first|after col_name]

FIRST表示c|r|u|d此列为第一个列
AFTER表示c|r|u|d在某个列之后

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值