MySQL笔记

1.NOT NULL 非空约束

(1)使用DDL(Database Difinion Language)语言将非空约束建立

在表结构上

create table temp(

id int not null,

name varchar(255) not null default 'ABC',

gender char(2) null); --数据库定义语言

--测试

mysql> insert into temp(id,gender) values(id,'男');

(2)使用sql语句添加非空约束

mysql> alter table temp modify gender char(2) not null

default '男';

(3)取消非空约束

mysql> alter table temp modify gender char(2) null;

2.唯一约束 :Mysql给唯一约束列名默认创建了唯一索引

(1)通过表结构创建

mysql> create table temp2(

-> id int not null,

-> name varchar(25),

-> password varchar(10),

-> constraint uq_name_password unique(name,password)

-> );

(2)通过sql语句建立唯一约束

添加唯一约束

alter table temp add unique(name, password);

添加唯一性约束

alter table temp modify name varchar(25) unique;

(3)删除约束

alter table temp drop index(关键字) name(约束名称);

3.主键约束:是相当于唯一约束和非空约束的组合

(1)创建唯一主键的方式

第一种: create table temp(

id int not null primary key,

name varchar(25)

);

第二种:create table temp(

id int not null,

name varchar(25),

primary key(id)

)

(2)组合主键

mysql> create table temp3_2(

-> id int not null,

-> name varchar(12),

-> pwd varchar(25),

-> constraint pk_name_pwd primary key(name,pwd)

-> );

第二种:通过sql建立组合主键

alter table temp add primary key(name, pwd);

(3)删除主键

ysql> alter table temp3_2 drop primary key;

4.通过表结构设置自增

5.mysql的外键约束

(1)创建外键列

主表

create table classes(

classes_id int auto_increment primary

key,

name varchar(20)

);

create table student(

id int auto_increment,

name varchar(22),

constraint pk_id primary key(id),

classes_id int references classes(id)

);

(2)创建外键约束

create table student(

id int auto_increment primary key,

name varchar(25),

classes_id int,

foreign key(classes_id) references classes(id)

);

6.外键约束

第一种:采用默认约束名称建立外键约束

(1)主表中的id必须是主键约束或者是唯一约束

(2)从表中的外键值必须在主表中能找到或者为空即外键值可

以为空

(3)在表结构中创建外键约束的语句是

foreign key(外键字段) references 主表名称(主表中的

主键字段)

create table student(

id int auto_increment primary key,

name varchar(25),

classes_id int,

foreign key(classes_id) references classes(id)

);

第二种:通过指定约束名建立外键约束名

mysql> create table student(

-> sid int not null primary key,

-> class_id int,

-> constraint FK_CLASS_ID foreign key(class_id)

references classess(cid)

-> );

7.外键约束的建立:多列外键组合,必须使用表级别用法

--建立主表

mysql> create table classes2(

-> id int,

-> name varchar(12),

-> number int,

-> primary key(name,number)

-> );

--建立从表

mysql> create table student2(

-> sid int not null primary key,

-> sname varchar(10),

-> cname varchar(10),

-> cnumber int,

-> foreign key(cname,cnumber) references

classes2(name,number)

-> );

8.SQL语句中增加外键约束

(1)建立默认约束名称的外键

> alter table student2 add foreign key(cname,cnumber)

references classes2(name,number);

(2)建立指定约束名称的外键

mysql> alter table student2 add constraint

Fk_cname_cnumber foreign key(cname,cnumber) references

classes2(name,number);

9.在同一张表结构中建立外键

mysql> create table tree(

-> tid int not null primary key,

-> tname varchar(20),

-> parent_id int,

-> foreign key(parent_id) references tree(tid)

-> );

10.级联删除

建立表结构的时候添加 on delete cascade;如果在建立外键约束的时候,没有添加on delete cascade,这时

非要删除数据,则先删除从表,在删除主表数据就可以。

相关推荐
momo小菜pa22 分钟前
【MySQL 06】表的增删查改
数据库·mysql
m0_689618281 小时前
水凝胶发生器,不对称设计妙,医电应用前景广
笔记
Ace'1 小时前
每日一题&&学习笔记
笔记·学习
挥剑决浮云 -1 小时前
Linux 之 安装软件、GCC编译器、Linux 操作系统基础
linux·服务器·c语言·c++·经验分享·笔记
新晓·故知2 小时前
<基于递归实现线索二叉树的构造及遍历算法探讨>
数据结构·经验分享·笔记·算法·链表
魔理沙偷走了BUG3 小时前
【数学分析笔记】第4章第4节 复合函数求导法则及其应用(3)
笔记·数学分析
程序员大金3 小时前
基于SpringBoot+Vue+MySQL的装修公司管理系统
vue.js·spring boot·mysql
gorgor在码农3 小时前
Mysql 索引底层数据结构和算法
数据结构·数据库·mysql
-seventy-3 小时前
SQL语句 (MySQL)
sql·mysql