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,这时

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

相关推荐
周杰伦_Jay10 分钟前
【电商微服务日志处理全方案】从MySQL瓶颈到大数据架构的实战转型
大数据·mysql·微服务·架构
AA陈超11 分钟前
ASC学习笔记0010:效果被应用时的委托
c++·笔记·学习
AA陈超11 分钟前
ASC学习笔记0004:通知相关方能力规格已被修改
c++·笔记·学习·游戏·ue5·游戏引擎·虚幻
hadage23324 分钟前
--- git 笔记 ---
笔记·git·elasticsearch
合作小小程序员小小店27 分钟前
桌面开发,在线%考试管理%系统,基于eclipse,java,swing,mysql数据库。
java·数据库·mysql·eclipse·jdk
im_AMBER38 分钟前
数据结构 11 图
数据结构·笔记·学习·图论
vx_bscxy32244 分钟前
告别毕设焦虑!Python 爬虫 + Java 系统 + 数据大屏,含详细开发文档 基于微信小程序的民宿预约系统22398 (上万套实战教程,赠送源码)
java·spring boot·mysql·微信小程序·课程设计
老虎06271 小时前
黑马点评学习笔记11(Redission)
笔记·学习
YJlio2 小时前
ListDLLs & Handle 学习笔记(8.11):谁注入了 DLL?谁占着文件不放?一篇教你全搞定
网络·笔记·学习
蒙奇D索大2 小时前
【算法】回溯算法精讲:从深度优先搜索到剪枝优化
经验分享·笔记·算法·深度优先·剪枝·改行学it