SQL语句详解四-DQL(数据查询语言-约束)

这篇具有很好参考价值的文章主要介绍了SQL语句详解四-DQL(数据查询语言-约束)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

约束

  • 概述:对表中的数据进行限定,保证数据的正确性,有效性和完整性。

约束分类

约束关键字 约束意思
primary key 主键约束
not null 非空约束
unique 唯一约束
foreign key 外键约束

例子:sname varchar(40) not null, – 代表 sname 这个字段不能为 NULL


非空约束

  • 概述:NOT NULL ,某一列的值不能为 NULL

  • 语法

    • 创建表的时候添加 非空约束
    CREATE TABLE stu(
    	id INT,
        name VARCHAR(40) NOT NULL				-- name 字段非空
    );
    
    • 创建完表后,添加 非空约束
    ALTER TABLE stu MODIFY name VARCHAR(40) NOT NULL;
    
    • 删除 name 的 非空约束
    ALTER TABLE stu MODIFY name VARCHAR(40);
    
  • 示例代码

    -- 创建数据库,并指定字符集
    CREATE DATABASE test CHARACTER SET utf8;
    
    -- 使用此数据库
    USE test;
    
    -- 创建表 a 时候,id 字段添加非空约束
    CREATE TABLE a(
    	id INT NOT NULL,
    	NAME VARCHAR(40)
    );
    
    -- 复制表 a ,新的表名是 b
    CREATE TABLE b LIKE a;
    
    -- 查询表结构
    DESC a;				-- 可以看到在 Null一列显示 NO(不可为空)
    DESC b;				-- 可以看到在 Null一列显示 NO
    
    -- 删除 b 表中非空约束
    ALTER TABLE b MODIFY id INT;
    
    DESC b;				-- 执行完删除后,才执行查询,显示为 YES
    
    -- b 表中 name 添加非空约束
    ALTER TABLE b MODIFY NAME VARCHAR(40) NOT NULL;
    
    DESC b;				-- 执行完删除后,执行查询,name 显示为 NO
    
    -- 使用完删除 数据库即可
    DROP DATABASE test;
    

唯一约束

  • 概述:UNIQUE ,某一列值唯一,不能重复

    • 唯一约束可以有 NULL 值,但是只能有一条记录为 NULL
  • 语法

    • 创建表时,添加 唯一约束
    CREATE TABLE stu(
    	id INT,
        phone_number VARCHAR(11) UNIQUE		-- 手机号唯一 
    );
    
    • 创建完表后,添加 唯一约束
    ALTER TABLE stu MODIFY phone_number VARCHAR(11) UNIQUE;
    
    • 删除 唯一约束
    ALTER TABLE stu DROP INDEX phone_number;
    
  • 示例代码

    -- 创建数据库,并指定字符集
    CREATE DATABASE test CHARACTER SET utf8;
    
    -- 使用此数据库
    USE test;
    
    -- 创建表 a ,并添加唯一约束
    CREATE TABLE a(
    	id INT,
    	phone_number VARCHAR(11) UNIQUE
    );
    
    -- 查看 a 表结构
    DESC a;				-- phone_number key一列为 UNI
    
    -- 删除 a 表中的唯一约束
    ALTER TABLE a DROP INDEX phone_number;
    
    DESC a;				-- phone_number key一列为 空白
    
    -- 给 a 表 id 添加唯一约束
    ALTER TABLE a MODIFY id INT UNIQUE;
    
    DESC a;				-- id key一列为 UNI
    
    -- 删除数据库
    DROP DATABASE test;
    

主键约束

  • 概述:PRIMARY KEY ,某一列设置为主键(非空且唯一)

    • 一张表只能有一个字段为主键
    • 主键是表中记录的唯一标识(例如:身份证号)
  • 语法

    • 创建表时,添加 主键约束
    CREATE TABLE stu(
    	id int primary key,					-- 给 id 添加主键约束
        name VARCHAR(40)
    );
    
    • 创建完表后,添加 主键约束
    ALTER TABLE stu MODIFY id INT PRIMARY KEY;
    
    • 删除 主键约束
    ALTER TABLE stu DROP PRIMARY KEY;
    
  • 示例代码

    -- 创建数据库,并指定字符集
    CREATE DATABASE test CHARACTER SET utf8;
    
    -- 使用此数据库
    USE test;
    
    -- 创建表 a 时候,id 字段添加主键约束
    CREATE TABLE a(
    	id INT PRIMARY KEY,
    	NAME VARCHAR(40)
    );
    
    -- 复制表a ,新表名为 b
    CREATE TABLE b LIKE a;
    
    -- 查询表的结构
    DESC a;				-- 可以看到id,key这一列显示 PRI,NULL 为 NO
    DESC b;				-- 可以看到id,key这一列显示 PRI,NULL 为 NO
    
    -- 删除 b 表中的主键约束
    ALTER TABLE b DROP PRIMARY KEY;
    
    DESC b;
    
    -- 添加 b 表中的主键约束
    ALTER TABLE b MODIFY id INT PRIMARY KEY;
    
    DESC b;
    
    -- 使用完,删除数据库
    DROP DATABASE test;
    
自动增长
  • 概述:如果某一列是数值类型,使用 AUTO_INCREMENT 完成值的自动增长

  • 语法

    • 创建表时,添加主键约束,并且完成主键自增长
    CREATE TABLE stu(
    	id INT PRIMARY KEY AUTO_INCREMENT,		-- 主键,自增长
        name VARCHAR(40)
    );
    
    • 创建完后,添加自动增长
    ALTER TABLE stu MODIFY id AUTO_INCREMENT;
    
    • 删除自动增长
    ALTER TABLE stu MODIFY id INT;
    
  • 示例代码

    -- 创建数据库,并指定字符集
    CREATE DATABASE test CHARACTER SET utf8;
    
    -- 使用此数据库
    USE test;
    
    -- 创建表 a ,并添加主键约束和自增长
    CREATE TABLE a(
    	id INT PRIMARY KEY AUTO_INCREMENT,
    	phone_number VARCHAR(11) 
    );
    
    -- 查看 a 表结构
    DESC a;				-- id Extra一列为 auto_increment
    
    -- 删除 a 表中的自动增长
    ALTER TABLE a MODIFY id INT;
    
    DESC a;				-- id Extra一列为 空白
    
    -- 给 a 表 id 添加 自动增长
    ALTER TABLE a MODIFY id INT AUTO_INCREMENT;
    
    DESC a;				-- id Extra一列为 auto_increment
    
    -- 删除数据库
    DROP DATABASE test;
    

外键约束

  • 概述:FOREIGN KEY ,让表和表之间产生关系,从而保证数据的正确性

  • 语法

    • 创建表时,添加外键约束
    CREATE TABLE stu(
    	...
        外键列, 
        CONSTRAINT 外键名称 FOREIGN KEY (外键列名称) REFERENCES 主表名称(主表列名称)
    );
    
    • 创建完表后,添加外键
    ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称 (主表列名称)
    • 删除外键
    ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;
    
  • 示例代码

    
    -- 创建数据库,并指定字符集
    CREATE DATABASE test CHARACTER SET utf8;
    
    -- 使用此数据库
    USE test;
    
    -- 创建 部门 表
    CREATE TABLE dept(
    	deptId INT PRIMARY KEY,		-- 部门表号
    	NAME VARCHAR(40)		-- 部门名字
    );
    
    -- 创建员工表
    CREATE TABLE employ(	
    	id INT PRIMARY KEY,	     --	员工编号	
    	ename VARCHAR(40),           -- 员工名字
    	dept_id INT,		     -- 员工部门编号
    	CONSTRAINT emp_dept FOREIGN KEY (dept_id) REFERENCES dept(deptId)
    );
    
    -- 看下述步骤查看是否有外键
    
    
    -- 删除 员工表外键
    ALTER TABLE employ DROP FOREIGN KEY emp_dept;
    
    -- 查看
    
    -- 添加 员工表外键
    ALTER TABLE employ ADD CONSTRAINT emp_dept FOREIGN KEY (dept_id) REFERENCES dept(deptId);
    
    -- 查看
    
    -- 删除数据库
    DROP DATABASE test;
    
查看外键
  • 删除外键后

SQL语句详解四-DQL(数据查询语言-约束),MySQL,sql,数据库,约束

  • 添加外键后

SQL语句详解四-DQL(数据查询语言-约束),MySQL,sql,数据库,约束文章来源地址https://www.toymoban.com/news/detail-794516.html

到了这里,关于SQL语句详解四-DQL(数据查询语言-约束)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Mysql 数据库DQL 数据查询语言 SELECT 基本查询、条件查询、聚合查询、分组查询、排序查询、分页查询——包含DQL所有查询语句。吐血分享。

    DQL:数据查询语言; 用来对表内的数据进行查找 。Database Query Language SQL语句分为:基本查询、条件查询、聚合查询、分组查询、排序查询、分页查询。  可以发现name字段就只剩下一个张三了;   条件: 条件查询—比较运算符 比较运算符 功能 大于 = 大于等于 小于 = 小于等

    2024年01月19日
    浏览(56)
  • [JavaWeb]SQL介绍-DQL查询数据

    DQL查询基础的语法结构如下: 说明 语法 查询多个字段 SELECT 字段列表 FROM 表名; SELECT * FROM 表名; -- 查询所有数据 去除重复记录 SELECT DISTINCT 字段列表 FROM 表名; 起别名 列名 AS 别名 (AS也可以省略) 条件查询的语法很简单但是要结合不同的条件表达式去使用 SELECT 字段列表 FRO

    2024年02月14日
    浏览(46)
  • SQL-DML、DQL查询数据

    DML主要是对数据进行 增 ( insert ) 删 ( delete ) 改 ( update )操作。 1.1 添加数据 给指定列添加数据 给全部列添加数据 批量添加数据 1.2 修改数据 修改表数据 注意: 修改语句中如果不加条件, 则将所有数据都修改 ! 像上面的语句中的中括号,表示在写sql语句中可以省略

    2024年02月08日
    浏览(81)
  • 学习笔记-数据查询语言DQL

    1.基本语法 2.数据准备 3.简单查询 4.条件查询 (1)比较查询 (2).范围查询 (3).逻辑查询 (4).模糊查询 (5).非空查询 5.排序查询 ASC 升序 (默认) DESC 降序 6.聚合查询 7.分组查询 having与where的区别: 1).having是在分组后对数据进行过滤,where是在分组前对数据进行过滤 2).having后面可以使用分

    2024年02月02日
    浏览(64)
  • MySQL数据库基础(十):DQL数据查询语言

    文章目录 DQL数据查询语言 一、数据集准备 二、select查询 三、简单查询 四、条件查询 1、比较查询 2、范围查询 3、逻辑查询 4、模糊查询 5、非空查询 五、排序查询 六、聚合查询 七、分组查询与having子句 1、分组查询介绍 2、group by的使用 3、group by + 聚合函数的使用 4、gro

    2024年02月21日
    浏览(43)
  • 【MySQL】数据库的查询语言DQL

    目录 前言: 一.基本查询 1.1查询多个字段 1.2设置别名 1.3去除字段中重复的值 二.条件查询 2.1条件的种类 2.1.1比较运算符 2.1.2逻辑运算符 三.结尾   在前面讲完了如何增删改数据表中的记录后,那么如何使用这些数据就成了另一个重点。   当我们浏览网站的时候,商品的各种

    2024年02月08日
    浏览(44)
  • 数据库 SQL高级查询语句:聚合查询,多表查询,连接查询

    创建Students和Courses表 直接查询 设置别名查询 设置条件查询 使用COUNT(*) 和 COUNT(StudentID)是一样的效果,因为StudentID是主键,每行记录的主键都不同。另外我们在聚合查询中还是能使用WHERE子句的,比如我们要 查找年龄大于20岁的学生数量 ,可使用以下SQL语句: 函数 说明 SUM

    2024年02月09日
    浏览(127)
  • 数据库作业-sql语句查询

    建表的插入数据的表 数据库作业-sql建表和插入数据_快乐的xiao何的博客-CSDN博客 create table supplier( supplierno char(6) primary key, suppliername nvarchar(10), address nvarchar(20), number char(11) )create table category( categoryno char(5) primary key, categoryname varchar(20), descriptions text... https://blog.csdn.net/m0_539670

    2023年04月23日
    浏览(57)
  • WordPress必备数据库SQL查询语句整理

    最近明月给博客和主站都部署了SSL证书,彻彻底底的加入了HTTPS站点行列。这个期间也用到了SQL查询语句来批量的对内链的HTTP前缀做替换,就感觉掌握一些SQL方面的语句还是非常有必要的,这不在【俄语译客】博客上就发现了几条比较实用的,适合 WordPress 实用的SQL语句。于

    2024年02月01日
    浏览(103)
  • 数据库学习笔记-----SQL查询语句和代码演示

    SQL不区分大小写,本文是邹兆年老师的课件和课堂的部分内容总结,部分比较细的内容请看课件 Db笔记(1).pdf 数值型: 整型:INT/SMALLINT/BIGINT        4个字节/两个字节/八个字节 浮点型:NUMERIC/DECIMAL(p,s):定点数,p位有效数字,小数点后s位                               

    2023年04月12日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包