day09:约束(主键,唯一,非空,默认)、表与表关系(11,1多,多多)、三大范式、多表查询(非等值、连接查询(显隐内连接,左右外连接,子查询))、多表查询的练习

本文详细介绍了数据库设计的基本约束,包括主键、唯一、非空和默认约束,解析了表与表之间的关系,如一对一、一对多、多对多,并探讨了数据库的三大范式。此外,还深入讲解了多表查询的各种方法,如非等值查询、内连接、外连接和子查询,并提供了多表查询的实战练习。
摘要由CSDN通过智能技术生成

一 回顾

1.sql语句分类
  DDL 主要用于操作数据库 以及数据库表
  DML 主要用于操作数据库表中数据 增加 删除 修改
  DQL 主要用于操作数据库表中数据  查询
  DCL 主要是用于操作用户管理 以及权限管理
2.DDL-对表的操作
   A.创建表
     create  table  表名(
        列名  数据类型(长度),
        .....
     );
  B.查询所有表 show tables
  C.删除表 drop   table   表名
  D.修改表名 alter  table  表名 rename  to 新的表名
3.DDL-对表中列的操作
   A.增加列  alter  table  表名 add  列名 数据类型(长度)
   B.在指定列后增加 alter  table  表名   add  列名  数据类型(长度) after 原有的列名
   C.修改列名 alter table   表名 change  原列名  新列名 数据类型(长度)
   D.删除列 alter  table   表名  drop  列名
4.DML-对表中数据进行操作 增加  删除 修改
   增加: insert  into   表名(列名...)values(值....)
   修改: update 表名 set 列名= 值 ... where 条件
   删除: delete from   表名  where 条件
        truncate  table  表名
5.单表的查询:
   查询语句顺序: select  * from  表名  where  条件 group by 分组 + having +过滤(is null)+order by +排序+limit +分页
   模糊查询
        like  ?
         % 匹配 0个或者多个字符
         _ 匹配一个字符
    去重 distnict
    between  and  两者之间  
    in  连接多个条件  or
    not 非
    is   null 是空   is  not null 非空
6.函数: 聚合函数 时间函数  字符串函数
7.约束:
    主键约束: primary  key   auto_increment
    特点:  唯一  非空  一张表中只有一个主键
    增加主键约束: alter  table 表名  add   primary  key(列名)
    删除主键约束: alter  table  表名  drop   primary  key

二 五大约束

2.1 主键约束

1.特点:唯一 非空 一张表中只有一个主键

2.2 唯一约束

1. 关键字 unique
2. 特点 : 唯一 不能重复 可以为 null (可以有多个null)
3. 主键约束与唯一约束的区别
        A.主键约束 一张表中只能有一个 唯一约束一张表中可以有多个
        B.主键约束不能为空 唯一约束是可以设置空
        C.唯一约束可以设置为联合唯一约束 ( 多个列组成约束条件 )
4. 唯一约束两种创建方式 A. 创建表的时候设置 B. 表创建完成之后设置

第一种方式

#创建唯一约束
create table p1(
	pid int(11) primary key auto_increment,
	pname varchar(20) unique
);

第二种方式

CREATE TABLE p2(
  pid  INT(11) PRIMARY KEY  AUTO_INCREMENT,
  pname VARCHAR(20)
);


语法:
alter  table  表名 add CONSTRAINT 唯一约束的名称  unique(列名)
#增加唯一约束
ALTER  TABLE   p2 ADD CONSTRAINT u_name   UNIQUE(pname)
语法:
alter  table  表名 drop   index  唯一约束的名称
#删除唯一约束
ALTER TABLE   p2   DROP   INDEX  u_name

联合唯一约束 (条件:两个重复才会报错)

CREATE TABLE p3(
  pid  INT(11) PRIMARY KEY  AUTO_INCREMENT,
  pname VARCHAR(20),
  pwd VARCHAR(20),
  UNIQUE(pname,pwd)
); 
INSERT  INTO   p3(pname,pwd)VALUES("你好","123");

验证唯一约束的特点

 2.3 非空约束

1. 关键字 : not null
2. 作用 : 插入数据的时候必须插入数据 不能插入 null
3. 在创建表的时候进行设置

非空约束

#非空约束
CREATE  TABLE  p4(
   pid  INT(11) PRIMARY KEY  AUTO_INCREMENT,
   pname VARCHAR(20) NOT  NULL 

);

INSERT INTO  p4(pname)VALUES(NULL)

2.4 默认约束

1. 关键字 :default
2. 作用 : 用于设置列的默认值
3. 在创建表的时候进行设置
4. 说明 :
        A.指定列设置默认约束之后 未插入数据 显示默认值
        B.指定列设置默认约束之后 插入 default 也是默认值
        C.插入具体的数据时候 才会替换默认值

默认约束


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

LI JS@你猜啊

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

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

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

打赏作者

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

抵扣说明:

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

余额充值