美文网首页
sql自学笔记(四)

sql自学笔记(四)

作者: itczt | 来源:发表于2019-04-07 20:28 被阅读0次

约束

1.约束保证数据的完整性和一致性。
2.约束分为表级约束和列级约束
3.约束类型包括:

  • NOT NULL(非空 约束)
  • PRIMARY KEY(主键 约束)
  • UNIQUE KEY(唯一 约束)
  • DEFAULT (默认 约束)
  • PEREIGN KEY (外键约束)

FOREIGN KEYP

保持数据一致性,完整性
实现一对一或一对多的关系

外键约束的要求

1.父表和子表必须使用相同的存储引擎,而且禁止使用临时表。
2.数据表的存储引擎只能为InnoDB。
3.外键列和参照列必须具有相似的数据类型。其中数字的长度或是否有符号位必须相同;而字符的长度则可以不同。
4.外键列和参照列必须创建索引。如果外键列不存在索引的话,MySQL将自动创建索引。

编辑数据表的默认存储引擎

MySQL配置文件

default - storage - engine = INNODB

外键约束和参照操作

1.CASCADE:从父表删除或更新且自动删除或更新子表中匹配的行。
2.SETNULL:从父表删除或更新行,并设置于表中的外键列为NULL。如果使用该选项,必须保证子表列没有指定NOT NULL。
3.RESTRICT:拒绝对父表的删除或更新操作。
4.NO ACTION:标准SQL的关键字,在MySQL中与RESTRICT相同,标记约束与列级约束。
对一个数据建立的约束。称为列级约束。
对多个数据列建立的约束,称为表级约束。
列级约束既可以在列定义声明,也可以在列定义后声明
表级约束只能在列定义后声明

修改数据表

添加单列

ALTER TABLE tbl _name ADD(COLUMN)
(col _ name column _definition,....)

添加多列

ALTER TABLE tab _ name ADD(COLUMN)
(col  - name column _ defintion,...)

删除列

ALTER TABLE tab _ name DROP[COLUMN] col _ name

添加主键约束

ALTER TABLE tbl _ name ADD [CONSTRAINT [symbol]]
PRIMARY KEY [index  -type] (index _ col _ name;......)

添加唯一约束

ALTER TABLE tbl _ name ADD [CONSTRAINT [symbol]]
UNIQUE [INDEX] KEY] [index_name] [index _ type]
(index _ col_name,......)

添加外键约束

ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]]
FOREIGN KEY[index _name](index_cd_name,......)
reference_definition

添加/删除默认约束

ALTER TABLE tbl_name ALTER [COLUMN] col _ name
{SET DEFAULT literal | DROP DEFAULT}

删除主键约束

ALTER TABLE tbl _name DROP PRIMARY KEY

删除唯一约束

ALTER TABLE tbl _ name DROP {INDEX | KEY} index _name

删除外键约束

ALTER TABLE tbl _ name DROP FOREIGN KEY fk_symbol

修改列定义

ALTER TABLE tbl _ name MODIFY [COLUMN] col_name
column _ deflnition [FIRST] AFTER col _name]

修改列名称(尽量少用)

ALTER TABLE tbl _ name CHANGE[COLUMN] old_col_name
new_tbl _name column _ deflnition [FIRST] AFTER col _name]

数据表更名(尽量少用)

方法一

ALTER TABLE tbl _ name RENAME[TO|AS] new_tbl _name

方法二

RENAME TABLE tbl _name TO new _tbl _ name.
[,tbl_name 2 TO new _tbl_name2]....

知识点总结

相关文章

  • sql自学笔记(四)

    约束 1.约束保证数据的完整性和一致性。2.约束分为表级约束和列级约束3.约束类型包括: NOT NULL(非空 ...

  • SQL语言学习(一)

    本系列内容为http://www.w3cschool.cn/sql 教程的自学笔记 SQL,指结构化查询语言,全称...

  • sql自学笔记(七)

    连接 MySQL在SELECT语句、多表更新、多表删除语句中支持JOIN操作 语法结构 数据表参照 数据表可以使用...

  • sql自学笔记(一)

    1.数据库简介 解决的问题:持久化存储,优化读写,保证数据的有效性。关系型数据库:基于E-R模型、使用sql语言进...

  • sql自学笔记(三)

    数据类型 数据类型是指列存储过程参数,表达式和局部变量的数据特征,它决定了数据的存储格式,代表了不同的信息类型。 ...

  • sql自学笔记(五)

    INSERT 插入记录 方法一: 方法二:INSERT [INTO] tbl_name SET col _name...

  • sql自学笔记(二)

    MySQL bin目录,存储可执行文件。 data目录,存储数据文件。 docs,文档。 include目录,存储...

  • sql自学笔记(六)

    子查询 子查询(subquery)是指出现在其他SQL语句内的SELECT子句。例如:SELECT * FROM ...

  • sql自学笔记(九)

    自定义函数:简称UDF,是对MySQL扩展的的一种途经。创建自定义函数:CREATE TUNCTION .......

  • sql自学笔记(十)

    1.存储过程:是SQL语句和控制语句的预编译集合,以一个名称存储并作为一个单元处理。2.参数:输入类型、输出类型、...

网友评论

      本文标题:sql自学笔记(四)

      本文链接:https://www.haomeiwen.com/subject/rtxsiqtx.html