mysql索引–普通索引,唯一索引,主键索引,参照完整性约束,数据完整性约束

-- 方法1:create index
-- 对employee表的员工部门号列创建普通索引depart_ind
-- create index depart_ind on employees(员工部门号);

-- 对employee表的姓名和地址列创建复合索引ad_ind;
-- create index ad_ind on employees(姓名,地址);

-- 对departments表的部门名称列创建唯一索引un_ind;
-- create unique index un_ind on departments(部门名称);

-- 方法2:alter table
-- 对employee表的出生日期列创建唯一索引date_ind ,姓名和性别列添加复合索引na_ind(用alter table命令完成)
-- alter table employees add unique data_ind(出生日期),add index na_ind(姓名,性别);

-- 练习:对departments表的部门编号列创建唯一索引key_ind;(用alter table)
-- alter table departments add unique key_ind(部门编号);

-- 方法3:创建表的同时创建索引
-- 创建表cpk(产品编号,产品名称,单价,库存量),并对产品编号创建主键,
-- 在库存量和单价列上创建复合索引cpk_fh
-- create table if not exists cpk(
-- 产品编号 varchar(5) primary key,产品名称 varchar(20),单价 float(4),库存量 int(4),
-- index cpk_fh(单价,库存量));

-- create table if not exists cpk2(
-- 产品编号 varchar(5),产品名称 varchar(20),单价 float(4),库存量 int(4),
-- index cpk_fh(单价,库存量),primary key(产品编号));

-- 参照完整性约束
-- create table if not exists jj(
-- employeeID char(6),je float(4),
-- foreign key(employeeID) references employees(员工编号)
-- on delete cascade on update cascade) engine=InnoDB;

-- insert into jj values("020018",78.01),("102208",123),("102201",456);
-- select * from jj;

-- delete from employees where 员工编号="102208";

-- 数据完整性
-- 创建雇员表emp,只考虑工号和性别两列,性别只能包含男或女
create table if not exists emp (工号 char(5),性别 char(2),check(性别="男" or 性别="女"));

insert into emp values("001","男"),("002","女");

-- 练习:创建表emp_3,有工号,工资和扣款3列,要求工资必须大于扣款。
-- 其中:工号 char(6) 工资 float(4),扣款 float(4)
create table if not exists emp3 (工号 char(5),工资 float(4),扣款 float(4)
,check(工资>扣款));

insert into emp3 values("001",1000,500),("002",2000,1500);

 

 日行一善--今天给我的老同学讲解excel图表知识

日进一步--昨天课间开始看书了。

原文链接:https://www.cnblogs.com/gdsmdsfy/p/17339649.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mysql索引–普通索引,唯一索引,主键索引,参照完整性约束,数据完整性约束 - Python技术站

(0)
上一篇 2023年4月22日
下一篇 2023年4月22日

相关文章

  • MYSQL WHERE语句优化

    MySQL WHERE语句是MySQL查询中一个非常重要的部分,它用于过滤出满足条件的数据行,从而实现数据查询的需求。然而,在使用MySQL WHERE语句进行数据查询的过程中,经常会遇到查询速度较慢、查询结果不准确等问题。因此,本篇文章将为大家详细讲解MySQL WHERE语句优化的完整攻略,帮助大家更好地理解和使用MySQL WHERE语句。 一、MyS…

    MySQL 2023年5月19日
    00
  • mysql数据库锁的产生原因及解决办法

    MySQL数据库锁的产生原因及解决办法 MySQL数据库锁的产生原因是多个客户端同时对同一数据进行操作,导致数据的不一致性,为了避免这种情况的发生,MySQL引入了锁机制。 MySQL锁的类型 MySQL锁分为两种类型:共享锁和排它锁。共享锁可以防止其他用户修改该数据,但允许其他用户读取该数据;排它锁则是完全锁定数据,其他用户无法读取或修改数据。在MySQL…

    MySQL 2023年5月18日
    00
  • mysql limit查询优化分析

    根据题目要求,我来详细讲解下“mysql limit查询优化分析”的完整攻略,以下是步骤: 1. 确定需求和问题 在分析之前,我们需要先确定需求和问题,比如查询的数据量大且需要进行分页显示,但查询速度过慢,甚至会导致系统崩溃等问题。需要找到原因并进行优化。 2. 分析数据库表结构和索引 在进行查询优化之前,我们需要了解查询的表结构和索引情况。比如需要确认哪些…

    MySQL 2023年5月19日
    00
  • 详解MySQL登录和退出服务器方法

    MySQL是一种关系型数据库管理系统,具有开源、高效、稳定和安全等特点,被广泛应用于Web开发和数据处理领域。为了使用MySQL,需要先登录数据库服务器,操作完成后再退出服务器。本文将详细介绍MySQL登录和退出服务器方法。 MySQL登录服务器方法 MySQL服务器通常在Linux或Windows操作系统上运行,需要使用MySQL客户端工具进行连接。MyS…

    MySQL 2023年3月10日
    00
  • Ubuntu下启动、停止、重启MySQL,查看错误日志命令大全

    针对Ubuntu下启动、停止、重启MySQL,查看错误日志命令,我为您提供以下攻略。 启动MySQL服务 要启动MySQL服务,可以通过以下命令: sudo service mysql start 示例说明:假设您的MySQL服务在Ubuntu系统中已经安装并且配置好了,这条命令可以启动MySQL服务。您可以在终端中输入以上命令来启动MySQL服务。 停止M…

    MySQL 2023年5月18日
    00
  • 详解MySQL AS:设置别名

    MySQL AS是用于给SQL查询结果列、表和子查询设置别名的关键字。AS不是必需的,但它使得查询结果更易于阅读和理解。 AS用法示例: 列别名 在SELECT语句中,使用AS关键字为查询结果列设置别名。例如: SELECT first_name AS given_name, last_name AS family_name FROM customers; …

    MySQL 2023年3月9日
    00
  • MySQL高速缓存启动方法及参数详解(query_cache_size)

    MySQL高速缓存启动方法及参数详解(query_cache_size) MySQL的高速缓存在处理频繁查询的情况下非常有用。它可以提高查询效率并减少服务器负载。在本攻略中,我们将学习如何启用MySQL高速缓存,并详细介绍其中的参数。 启用MySQL高速缓存 要启用MySQL高速缓存,需要进行以下步骤: 修改MySQL的配置文件my.cnf。在[mysqld…

    MySQL 2023年5月19日
    00
  • 数据库:socketserver模块、MySQL(一)

    一、socketserver实现并发 基于tcp的套接字,关键就是两个循环,一个链接循环,一个通信循环。 socketserver模块中分两大类:server类(解决链接问题)和request类(解决通信问题) server类: request类: 继承关系:   以下述代码为例,分析socketserver源码: ftpserver=socketserve…

    MySQL 2023年4月13日
    00
合作推广
合作推广
分享本页
返回顶部