复习MySQL20250327

news2025/3/31 13:29:33

第一章  基本操作

一、管理数据库

难点:创建数据库

输入cmd的MySQL安装路径C:\Program Files\MySQL\MySQL Server 8.0\bin 

1.查看所有数据库
show databases;
2.创建数据库
create database hsusers default charset utf8 collate utf8_general_ci;
    create database:这是一个 SQL 关键字,用于指示数据库系统创建一个新的数据库。
    hsusers:这是要创建的数据库的名称。在实际使用时,你可以依据自身需求将其替换为合适的名称。
    default charset utf8:指定了该数据库默认的字符集为 utf8。字符集定义了数据库存储和处理文本时所采用的字符编码方式。utf8 能够支持多种语言的字符,是一种广泛使用的字符编码。
    collate utf8_general_ci:指定了该数据库默认的排序规则为 utf8_general_ci。排序规则决定了在进行字符串比较和排序时的规则。utf8_general_ci 中的 ci 表示大小写不敏感(Case - Insensitive),即数据库在比较字符串时不会区分大小写。
3.删除数据库
drop database day1db;
4.进入数据库
use day1db;
5.查看数据库中的表
show tables;
create database hsusers default charset utf8 collate utf8_general_ci;

二、管理数据表

难点:创建数据表

(一)创建表

在 MySQL 里,你可以使用 CREATE TABLE 语句来创建表。下面为你详细介绍其基本语法、示例以及不同参数的作用。

基本语法

sql

CREATE TABLE table_name (
    column1 datatype [optional_constraints],
    column2 datatype [optional_constraints],
    ...
    [table_constraints]
);
语法解释
  • CREATE TABLE:这是用于创建表的关键字。
  • table_name:要创建的表的名称,需保证在数据库中该名称是唯一的。
  • column1, column2, ...:表中的列名,每个列都有对应的 datatype(数据类型)。
  • datatype:指定列可以存储的数据类型,例如 INT(整数)、VARCHAR(可变长度字符串)、DATE(日期)等。
  • optional_constraints:可选择的列约束条件,像 NOT NULL(非空)、UNIQUE(唯一)、PRIMARY KEY(主键)、FOREIGN KEY(外键)等。
  • table_constraints:表级约束条件,用于定义跨列的约束,例如复合主键、唯一键组合等。
示例

以下是创建一个名为 employees 的表的示例,该表包含员工的基本信息:

sql

CREATE TABLE employees (
    id INT NOT NULL AUTO_INCREMENT,
    first_name VARCHAR(50) NOT NULL,
    last_name VARCHAR(50) NOT NULL,
    birth_date DATE,
    hire_date DATE,
    salary DECIMAL(10, 2),
    department_id INT,
    PRIMARY KEY (id),
    FOREIGN KEY (department_id) REFERENCES departments(id)
);
示例解释
  • id:是一个自增的整数列,作为主键,确保每个员工记录有唯一的标识符。
  • first_name 和 last_name:为可变长度字符串列,用于存储员工的名字和姓氏,且不能为空。
  • birth_date 和 hire_date:为日期列,分别存储员工的出生日期和入职日期。
  • salary:是一个十进制数,用于存储员工的工资,精度为 10 位,小数部分为 2 位。
  • department_id:是一个整数列,作为外键,引用 departments 表中的 id 列,用于关联员工所属的部门。
创建临时表

若你需要创建一个临时表(该表在会话结束时会自动删除),可以使用 CREATE TEMPORARY TABLE 语句,语法如下:

sql

CREATE TEMPORARY TABLE temp_table_name (
    column1 datatype [optional_constraints],
    column2 datatype [optional_constraints],
    ...
    [table_constraints]
);

这些示例和语法应该能帮助你在 MySQL 中创建所需的表。在实际使用时,根据具体需求调整列名、数据类型和约束条件。

(二)列约束条件

在 MySQL 中,列约束条件用于限制列中存储的数据,确保数据的完整性和一致性。以下是常见的列约束条件及其含义:

1. NOT NULL
  • 含义:该约束规定列不允许存储 NULL 值。也就是说,在向该列插入数据时,必须提供一个有效的值。
  • 示例

sql

CREATE TABLE users (
    id INT,
    name VARCHAR(50) NOT NULL
);

在这个 users 表中,name 列不允许为 NULL,插入数据时必须提供一个名字。

2. UNIQUE
  • 含义:此约束保证列中的所有值都是唯一的,即同一列中不能有重复的值。
  • 示例

sql

CREATE TABLE employees (
    id INT,
    email VARCHAR(100) UNIQUE
);

在 employees 表中,email 列的每个值都必须是唯一的,不能有两个员工使用相同的电子邮件地址。

3. PRIMARY KEY
  • 含义PRIMARY KEY 约束用于唯一标识表中的每一行记录。它结合了 NOT NULL 和 UNIQUE 的特性,即主键列的值不能为 NULL 且必须唯一。一个表只能有一个主键,但主键可以由多个列组成(复合主键)。
  • 示例

sql

CREATE TABLE products (
    product_id INT PRIMARY KEY,
    product_name VARCHAR(200)
);

这里 product_id 列被定义为主键,用于唯一标识每个产品。

4. FOREIGN KEY
  • 含义FOREIGN KEY 约束用于建立表与表之间的关联。它引用另一个表的主键列,确保该列中的值必须存在于被引用表的主键列中。通过外键可以实现数据库的参照完整性。
  • 示例

sql

CREATE TABLE orders (
    order_id INT PRIMARY KEY,
    product_id INT,
    FOREIGN KEY (product_id) REFERENCES products(product_id)
);

在 orders 表中,product_id 列是外键,它引用了 products 表的 product_id 主键列。这意味着 orders 表中的 product_id 值必须是 products 表中已经存在的 product_id 值。

5. DEFAULT
  • 含义DEFAULT 约束为列指定一个默认值。当插入数据时,如果没有为该列提供值,则会使用默认值。
  • 示例

sql

CREATE TABLE customers (
    customer_id INT,
    status VARCHAR(20) DEFAULT 'active'
);

在 customers 表中,如果插入数据时没有为 status 列提供值,那么该列将自动使用默认值 'active'

6. CHECK
  • 含义CHECK 约束用于限制列中的值必须满足特定的条件。在 MySQL 8.0.16 及以后的版本中,CHECK 约束是强制执行的。
  • 示例

sql

CREATE TABLE students (
    student_id INT,
    age INT,
    CHECK (age >= 18)
);

在 students 表中,CHECK 约束确保 age 列的值必须大于或等于 18。

7. AUTO_INCREMENT
  • 含义AUTO_INCREMENT 约束用于为整数类型的列自动生成唯一的、递增的值。通常与 PRIMARY KEY 约束一起使用,用于自动生成主键值。
  • 示例

sql

CREATE TABLE users (
    user_id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50)
);

在 users 表中,每次插入新记录时,user_id 列会自动生成一个比上一个记录的 user_id 值大 1 的新值。

注意:MySQL并非只有这个7个列约束条件,其他孤不常用,在此不作深入讲解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2324418.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Docker-MySQL安装-命令解读-常见命令-数据卷挂载-本地目录挂载-自定义镜像-网络-前端部署-DockerCompose

目录 Docker: 安装MySQL: 镜像容器: 镜像仓库: ​编辑命令解读: 镜像命名规范: docker run中常见参数: Docker常见命令: ​编辑数据卷: ​编辑数据卷-操作命令&…

Docker 安装部署Harbor 私有仓库

Docker 安装部署Harbor 私有仓库 系统环境:redhat x86_64 一、首先部署docker 环境 定制软件源 wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repoyum install -y yum-utils device-mapper-persistent-data lvm2…

StarRocks 存算分离在京东物流的落地实践

康琪:京东物流高级技术专家、StarRocks & Apache Flink Contributor 导读:本文整理自京东物流高级技术专家在 StarRocks 年度峰会上的分享,UData 平台从存算一体到存算分离架构演进后,查询性能得到提升。Cache hit 时&#xf…

英伟达GB300新宠:新型LPDDR5X SOCAMM内存

随着人工智能(AI)、机器学习(ML)和高性能计算(HPC)应用的快速发展,对于高效能、大容量且低延迟内存的需求日益增长。NVIDIA在其GB系列GPU中引入了不同的内存模块设计,以满足这些严格…

具身智能 - Diffusion Policy:技术解析与应用实践

具身智能之 Diffusion Policy:技术解析与应用实践 一、Diffusion Policy 的核心概念 Diffusion Policy 是一种基于扩散模型(Diffusion Models)的决策生成框架,专为具身智能(Embodied Intelligence)设计。其核心思想是通过逐步去噪的过程,在复杂环境中生成鲁棒的动作序列…

[C++] 智能指针 进阶

标题:[C] 智能指针 进阶 水墨不写bug 在很久之前我们探讨了智能指针的浅显认识,接下来会更加深入,从源码角度认识智能指针,从而了解智能指针的设计原理,并应用到以后的工作项目中。 本文将会按照C智能指针的发展历史&…

kubernetes》》k8s》》 kubeadm、kubectl、kubelet

kubeadm 、kubectl 、kubelet kubeadm、kubectl和kubelet是Kubernetes中不可或缺的三个组件。kubeadm负责集群的快速构建和初始化,为后续的容器部署和管理提供基础;kubectl作为命令行工具,提供了与Kubernetes集群交互的便捷方式;而…

C++中的new、malloc、realloc、calloc——特点?函数原型?释放方式?区别?校招面试常问内容?

作者:求一个demo 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 内容通俗易懂,没有废话,文章最后是面试常问内容(建议通过标题目录学习) 废话不多…

27_promise

插入一下前端助手测试&#xff0c;顺手可以用来做安全 promise promise 是一个es6新增的语法 汉语&#xff1a;承诺的意思 作用:是专门用来解决回调地狱!!!! 什么是回调函数&#xff1f; <script>// 回调函数 callback回调// 就是把函数A当作参数传递到函数B中// 在函…

leetcode刷题日记——跳跃游戏 II

[ 题目描述 ]&#xff1a; [ 思路 ]&#xff1a; 题目要求在一个一定能达到数组末尾的跳跃数组中(见55题 跳跃游戏)&#xff0c;找出能够跳到末尾的最小次数要求次数最少&#xff0c;那肯定是选取能选步数中最大的数。也就是在当前能够达到的距离中&#xff0c;选择能够达到的…

无人机进行航空数据收集对于分析道路状况非常有用-使用无人机勘测高速公路而不阻碍交通-

无人机进行航空数据收集对于分析道路状况非常有用-使用无人机勘测高速公路而不阻碍交通- 瑞士拥有1,400 多公里长的高速公路网络。这些公路将人和货物从山谷高原运送到阿尔卑斯山的最高山口。维护这些高速公路使国家得以顺利运转。高速公路维护的重要性显而易见&#xff0c;但在…

注意力蒸馏技术

文章目录 摘要abstract论文摘要简介方法预备知识注意力蒸馏损失注意力引导采样 实验结论总结参考文献 摘要 本周阅读了一篇25年二月份发表于CVPR 的论文《Attention Distillation: A Unified Approach to Visual Characteristics Transfer》,论文开发了Attention Distillation…

PERL开发环境搭建>>Windows,Linux,Mac OS

特点 简单 快速 perl解释器直接对源代码程序解释执行,是一个解释性的语言, 不需要编译器和链接器来运行代码>>速度快 灵活 借鉴了C/C, Basic, Pascal, awk, sed等多种语言, 定位于实用性语言,既具备了脚本语言的所有功能,也添加了高级语言功能 开源.免费 没有&qu…

鸿蒙项目源码-记账本app个人财物管理-原创!原创!原创!

鸿蒙记账项目源码个人财务管理含文档包运行成功ArkTS语言。 我一个月写的原创作品&#xff0c;请尊重原创。 原创作品&#xff0c;盗版必究&#xff01;&#xff01;&#xff01; api12 SDK5.0.0仅适用于最新的2024版本DevEco studio 共9个页面&#xff1a;广告倒计时页、登录、…

Ovito的python脚本

在 OVITO 里,Python 对象是构建脚本化操作的基础。下面为你详细介绍 OVITO 中 Python 对象的基本概念: 1. 数据管道(Pipeline) 数据管道是 OVITO 里最核心的对象之一。它就像一个流水线,把数据输入进来,经过一系列处理步骤,最后输出处理好的数据。 创建管道:借助 imp…

【免费】2007-2019年各省地方财政文化体育与传媒支出数据

2007-2019年各省地方财政文化体育与传媒支出数据 1、时间&#xff1a;2007-2019年 2、来源&#xff1a;国家统计局、统计年鉴 3、指标&#xff1a;行政区划代码、地区、年份、地方财政文化体育与传媒支出 4、范围&#xff1a;31省 5、指标说明&#xff1a;地方财政在文化、…

NOIP2007提高组.矩阵取数游戏

题目 492. 矩阵取数游戏 思路 不难发现, 每一行之间是独立的, 因此可以求出每一行的最大值, 然后行与行之间最大值相加, 就是总的最大值 对于行内来说, 每次可以选取左边或者右边, 可以使用区间 d p dp dp求解, 时间复杂度 O ( n 3 ) O(n ^ 3) O(n3), 因为列的最大值是 80 …

项目实战--权限列表

后端数据&#xff1a; 用表格实现权限列表 const dataSource [{key: 1,name: 胡彦斌,age: 32,address: 西湖区湖底公园1号,},{key: 2,name: 胡彦祖,age: 42,address: 西湖区湖底公园1号,}, ];const columns [{title: 姓名,dataIndex: name,key: name,},{title: 年龄,dataInd…

若依赖前端处理后端返回的错误状态码

【背景】 后端新增加了一个过滤器&#xff0c;用来处理前端请求中的session 若依赖存放过滤器的目录&#xff1a;RuoYi-Vue\ruoyi-framework\src\main\java\com\ruoyi\framework\security\filter\ 【问题】 后端返回了一个状态码为403的错误&#xff0c;现在前端需要处理这…

【计网】数据包

期末复习自用的&#xff0c;处理得比较草率&#xff0c;复习的同学或者想看基础的同学可以看看&#xff0c;大佬的话可以不用浪费时间在我的水文上了 1.数据包的定义&#xff1a; 数据包是网络通信中的基本单元&#xff0c;它包含了通过网络传输的所有必要信息。数据包的结构…