MySQL 基本语法讲解及示例(上)


第一节:MySQL的基本操作

1. 创建数据库

在 MySQL 中,创建数据库的步骤如下:

命令行操作
  1. 打开 MySQL 命令行客户端或连接到 MySQL 服务器。

  2. 输入以下命令创建一个数据库:

    CREATE DATABASE database_name;
    

    例如,创建一个名为 test_db 的数据库:

    CREATE DATABASE test_db;
    
图形化操作

如果使用图形化管理工具(如 phpMyAdmin 或 MySQL Workbench),创建数据库的步骤如下:

  1. 打开工具并连接到 MySQL 服务器。
  2. 在左侧的导航面板中找到 “Databases” 或 “Schemas”。
  3. 点击 “Create Database” 或 “New Schema”。
  4. 输入数据库名称(例如 test_db),然后点击 “Apply” 或 “OK”。

2. 列出所有的数据库

命令行操作
  1. 在 MySQL 命令行客户端中输入以下命令列出所有数据库:

    SHOW DATABASES;
    
图形化操作
  1. 打开图形化管理工具并连接到 MySQL 服务器。
  2. 在左侧的导航面板中,您将看到所有现有的数据库列表。

3. 语法关键字

MySQL 中常用的语法关键字包括:

  • CREATE: 用于创建数据库、表格、视图等。
  • SHOW: 用于显示数据库、表格等信息。
  • DROP: 用于删除数据库、表格等。
  • SELECT: 用于从数据库中检索数据。
  • INSERT: 用于向表格中插入数据。
  • UPDATE: 用于更新表格中的数据。
  • DELETE: 用于删除表格中的数据。

4. 删除数据库

命令行操作
  1. 在 MySQL 命令行客户端中输入以下命令删除数据库:

    DROP DATABASE database_name;
    

    例如,删除名为 test_db 的数据库:

    DROP DATABASE test_db;
    
图形化操作
  1. 打开图形化管理工具并连接到 MySQL 服务器。
  2. 在左侧的导航面板中找到要删除的数据库(例如 test_db)。
  3. 右键点击数据库名称,选择 “Drop Database” 或 “Delete”。
  4. 确认删除操作。

第二节:如何创建数据库的表格

1. 介绍MySQL的数据类型

MySQL 提供了多种数据类型,用于存储不同类型的数据。常见的数据类型包括:

  • 整数类型:如 INT, TINYINT, SMALLINT, MEDIUMINT, BIGINT
  • 字符串类型:如 CHAR, VARCHAR, TEXT, BLOB
  • 日期和时间类型:如 DATE, TIME, DATETIME, TIMESTAMP, YEAR
  • 浮点数类型:如 FLOAT, DOUBLE, DECIMAL

2. 创建表格示例

命令行操作
  1. 在 MySQL 命令行客户端中输入以下命令创建一个表格:

    CREATE TABLE table_name (column1_name column1_type,column2_name column2_type,...
    );
    

    例如,创建一个名为 students 的表格,包括学生 ID、姓名和年龄:

    CREATE TABLE students (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(100),age INT
    );
    
图形化操作
  1. 打开图形化管理工具并连接到 MySQL 服务器。
  2. 选择要创建表格的数据库。
  3. 点击 “Create Table” 或 “New Table”。
  4. 输入表格名称(例如 students)。
  5. 添加列并指定数据类型(例如 idINTnameVARCHAR(100)ageINT)。
  6. 点击 “Apply” 或 “OK” 创建表格。

3. 如何增删表格中的要素

插入数据
命令行操作
  1. 在 MySQL 命令行客户端中输入以下命令向表格中插入数据:

    INSERT INTO table_name (column1, column2, ...)
    VALUES (value1, value2, ...);
    

    例如,向 students 表格中插入一条记录:

    INSERT INTO students (name, age)
    VALUES ('John Doe', 20);
    
图形化操作
  1. 打开图形化管理工具并连接到 MySQL 服务器。
  2. 选择要插入数据的表格(例如 students)。
  3. 点击 “Insert” 或 “New Row”。
  4. 输入数据值。
  5. 点击 “Apply” 或 “OK”。
删除数据
命令行操作
  1. 在 MySQL 命令行客户端中输入以下命令删除表格中的数据:

    DELETE FROM table_name
    WHERE condition;
    

    例如,删除 students 表格中年龄大于20的所有记录:

    DELETE FROM students
    WHERE age > 20;
    
图形化操作
  1. 打开图形化管理工具并连接到 MySQL 服务器。
  2. 选择要删除数据的表格(例如 students)。
  3. 点击 “Delete” 或 “Remove Row”。
  4. 指定删除条件(例如,选择要删除的行)。
  5. 点击 “Apply” 或 “OK”。
更新数据
命令行操作
  1. 在 MySQL 命令行客户端中输入以下命令更新表格中的数据:

    UPDATE table_name
    SET column1 = value1, column2 = value2, ...
    WHERE condition;
    

    例如,更新 students 表格中 ID 为1的学生姓名:

    UPDATE students
    SET name = 'Jane Doe'
    WHERE id = 1;
    
图形化操作
  1. 打开图形化管理工具并连接到 MySQL 服务器。
  2. 选择要更新数据的表格(例如 students)。
  3. 点击 “Update” 或 “Edit Row”。
  4. 修改数据值。
  5. 点击 “Apply” 或 “OK”。

通过以上步骤,您可以在 MySQL 中完成基本的数据库和表格操作,包括创建、列出、删除数据库以及创建、增删改查表格中的数据。


第三节:如何在创建的表格中插入要素

在 MySQL 中,向表格中插入数据(要素)时有多种方式,可以按照顺序或非顺序插入数据,同时需要注意缺省值 NULL 的使用。以下是详细操作说明:

1. 如何正常增添要素

命令行操作
  1. 在 MySQL 命令行客户端中输入以下命令向表格中插入数据:

    INSERT INTO table_name (column1, column2, ...)
    VALUES (value1, value2, ...);
    

    例如,向 students 表格中插入一条记录:

    INSERT INTO students (name, age)
    VALUES ('John Doe', 20);
    
图形化操作
  1. 打开图形化管理工具并连接到 MySQL 服务器。
  2. 选择要插入数据的表格(例如 students)。
  3. 点击 “Insert” 或 “New Row”。
  4. 输入数据值。
  5. 点击 “Apply” 或 “OK”。

2. 如何非顺序写入要素

有时您可能不按表格中列的顺序插入数据。在这种情况下,需要明确指定插入的列名。

命令行操作
  1. 在 MySQL 命令行客户端中输入以下命令指定列名插入数据:

    INSERT INTO table_name (column2, column1, ...)
    VALUES (value2, value1, ...);
    

    例如,向 students 表格中以非正常顺序插入数据:

    INSERT INTO students (age, name)
    VALUES (20, 'John Doe');
    
图形化操作
  1. 打开图形化管理工具并连接到 MySQL 服务器。
  2. 选择要插入数据的表格(例如 students)。
  3. 点击 “Insert” 或 “New Row”。
  4. 输入数据值,注意按照指定的列名顺序输入。
  5. 点击 “Apply” 或 “OK”。

3. 如何删除指定要素

命令行操作
  1. 在 MySQL 命令行客户端中输入以下命令删除指定要素:

    DELETE FROM table_name
    WHERE condition;
    

    例如,删除 students 表格中年龄为20的记录:

    DELETE FROM students
    WHERE age = 20;
    
图形化操作
  1. 打开图形化管理工具并连接到 MySQL 服务器。
  2. 选择要删除数据的表格(例如 students)。
  3. 点击 “Delete” 或 “Remove Row”。
  4. 指定删除条件(例如,选择要删除的行)。
  5. 点击 “Apply” 或 “OK”。

4. 缺省值 NULL 的用法

NULL 表示数据缺失或未知值。在插入数据时,如果某列允许 NULL 值,可以显式插入 NULL,也可以在不指定该列值时默认为 NULL

命令行操作
  1. 在 MySQL 命令行客户端中输入以下命令插入 NULL 值:

    INSERT INTO table_name (column1, column2, ...)
    VALUES (value1, NULL, ...);
    

    例如,向 students 表格中插入 NULL 值:

    INSERT INTO students (name, age)
    VALUES ('John Doe', NULL);
    

5. 插入时应该注意的事项

  • 数据类型匹配:确保插入的数据类型与表格定义的列数据类型匹配。
  • 主键唯一性:如果表格定义了主键,插入的数据必须确保主键值唯一。
  • 非空约束:如果某列定义了 NOT NULL 约束,则插入的数据不能为 NULL
  • 外键约束:确保插入的数据满足外键约束条件。

通过以上步骤,您可以在 MySQL 中完成对表格的增删操作,处理数据缺省值 NULL,并遵循插入数据时的注意事项,确保数据的完整性和一致性。


第四节:讲述表格创建中的限制

在创建表格时,可以使用各种约束(constraints)来确保数据的完整性和一致性。常见的约束包括主键、唯一性、非空、外键和检查约束。以下是详细说明和示例:

常见约束类型

  1. PRIMARY KEY(主键)

    • 主键约束唯一标识表格中的每一行。一个表只能有一个主键,但主键可以由多个列组成(联合主键)。
    CREATE TABLE example (id INT PRIMARY KEY,name VARCHAR(50)
    );
    
  2. UNIQUE(唯一约束)

    • 唯一约束确保一列或多列的值在表格中是唯一的,允许一个表格中有多个唯一约束。
    CREATE TABLE example (id INT,email VARCHAR(100) UNIQUE
    );
    
  3. NOT NULL(非空约束)

    • 非空约束确保一列不能存储 NULL 值。
    CREATE TABLE example (id INT,name VARCHAR(50) NOT NULL
    );
    
  4. FOREIGN KEY(外键约束)

    • 外键约束确保一个表中的值必须在另一个表中存在,用于维护表之间的引用完整性。
    CREATE TABLE department (id INT PRIMARY KEY,name VARCHAR(50)
    );CREATE TABLE employee (id INT PRIMARY KEY,name VARCHAR(50),department_id INT,FOREIGN KEY (department_id) REFERENCES department(id)
    );
    
  5. CHECK(检查约束)

    • 检查约束用于确保列中的值符合特定条件。
    CREATE TABLE example (id INT,age INT CHECK (age >= 18)
    );
    

示例:使用约束创建表格

以下是一个完整的示例,包括删除现有表格、创建新表格并插入数据的过程。

删除表格

如果表格 student 已存在,需要先删除该表格:

DROP TABLE IF EXISTS `student`;
创建表格并添加约束

创建一个名为 student 的表格,并添加各种约束:

CREATE TABLE `student`(`student_id` INT AUTO_INCREMENT,`name` VARCHAR(20) NOT NULL,`major` VARCHAR(20) UNIQUE,PRIMARY KEY (`student_id`)
);

此表格包括:

  • student_id 列为主键,自动递增。
  • name 列为非空。
  • major 列为唯一。
插入数据

student 表格插入数据:

INSERT INTO `student` VALUES(1, '小白', '历史');
INSERT INTO `student` VALUES(2, '小黑', '生物');
INSERT INTO `student`(`name`, `major`) VALUES('小黑', '化学');
查询数据

查询 student 表格中的所有数据:

SELECT * FROM `student`;

额外讲解示例

使用上述约束创建表格并插入数据后的结果应如下所示:

DROP TABLE IF EXISTS `student`;CREATE TABLE `student`(`student_id` INT AUTO_INCREMENT,`name` VARCHAR(20) NOT NULL,`major` VARCHAR(20) UNIQUE,PRIMARY KEY (`student_id`)
);INSERT INTO `student` VALUES(1, '小白', '历史');
INSERT INTO `student` VALUES(2, '小黑', '生物');
INSERT INTO `student`(`name`, `major`) VALUES('小黑', '化学');SELECT * FROM `student`;

在执行上述 SQL 语句后,student 表格将包含以下数据:

student_idnamemajor
1小白历史
2小黑生物
3小黑化学

第五节:如何修改和删除要素

在 MySQL 中,您可以使用 UPDATE 语句修改表格中的数据,并使用 DELETE 语句删除表格中的数据。以下是详细操作说明和示例:

修改和删除要素的案例

步骤一:设置 SQL 安全更新模式

为了允许对数据的修改和删除操作,可能需要关闭 MySQL 的安全更新模式:

SET SQL_SAFE_UPDATES = 0;
步骤二:删除旧表格并创建新表格

首先,删除旧的 student 表格,并创建一个新的 student 表格:

DROP TABLE IF EXISTS `student`;CREATE TABLE `student`(`student_id` INT PRIMARY KEY,`name` VARCHAR(20),`major` VARCHAR(20),`score` INT
);
步骤三:插入数据

student 表格中插入一些示例数据:

INSERT INTO `student` VALUES (1, '小白', '英语', 50);
INSERT INTO `student` VALUES (2, '小黄', '生物', 90);
INSERT INTO `student` VALUES (3, '小绿', '历史', 70);
INSERT INTO `student` VALUES (4, '小蓝', '英语', 80);
INSERT INTO `student` VALUES (5, '小黑', '化学', 20);
步骤四:查询数据

查询 student 表格中的所有数据:

SELECT * FROM `student`;
步骤五:修改数据

使用 UPDATE 语句修改表格中的数据,例如将 major 为“英语”的记录修改为“英语文学”:

UPDATE `student`
SET `major` = '英语文学'
WHERE `major` = '英语';
步骤六:删除数据

使用 DELETE 语句删除表格中的数据,例如删除 student_id 为 4 的记录:

DELETE FROM `student`
WHERE `student_id` = 4;

详细示例

以下是完整的 SQL 操作步骤:

-- 设置 SQL 安全更新模式
SET SQL_SAFE_UPDATES = 0;-- 删除旧表格并创建新表格
DROP TABLE IF EXISTS `student`;CREATE TABLE `student`(`student_id` INT PRIMARY KEY,`name` VARCHAR(20),`major` VARCHAR(20),`score` INT
);-- 插入数据
INSERT INTO `student` VALUES (1, '小白', '英语', 50);
INSERT INTO `student` VALUES (2, '小黄', '生物', 90);
INSERT INTO `student` VALUES (3, '小绿', '历史', 70);
INSERT INTO `student` VALUES (4, '小蓝', '英语', 80);
INSERT INTO `student` VALUES (5, '小黑', '化学', 20);-- 查询数据
SELECT * FROM `student`;-- 修改数据
UPDATE `student`
SET `major` = '英语文学'
WHERE `major` = '英语';-- 删除数据
DELETE FROM `student`
WHERE `student_id` = 4;-- 查询修改和删除后的数据
SELECT * FROM `student`;

修改和删除操作的注意事项

  1. 谨慎使用 UPDATEDELETE 语句:特别是在没有 WHERE 子句的情况下,可能会意外修改或删除表格中的所有数据。
  2. 备份数据:在执行批量修改或删除操作前,建议先备份数据,以防出现操作失误导致数据丢失。
  3. 使用事务:在需要保证数据操作的原子性时,可以使用事务(START TRANSACTION, COMMIT, ROLLBACK)来确保数据的完整性。

如果这对您有所帮助,希望点赞支持一下作者! 😊

[ 详细全文-点击查看](

)

file

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

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

相关文章

android 常用工具

adb root adb root adb remountadb logcat # clear adb logcat -c# 记录到文件adb logcat -v time > log.txtadb 查看当前运行包名 adb shell "dumpsys window|grep mCurrentFocus"查案GPU dumpsys gfxinfo dumpsys gfxinfo package# 显卡使用情况 cat /sys/…

明星直播带货 即将走向终结

在用户看来是演员、明星的人。在电商看来只是没有变现的流量而已。 但是明星直播带货即将走向终结,这可能是历史的必然。双十一,贾乃亮直播间宣称 2, 899 的羽绒服只卖449,但是后续被网友发现在其他地方同款居然只要 220 到 270 之间。 贾乃…

ApplicationEventPublisher的使用、Spring事件发布

spring事件的订阅发布,适用业务解耦合 使用场景:新用户注册之后,需要发放优惠券;一个订单服务在接收到新订单时发布一个“订单已创建”事件,库存服务和通知服务分别订阅该事件;日志和监控;实时通知系统;异…

React的form表单自定义校验规则

使用antd开发的过程中&#xff0c;必定会遇到需要对form表单进行必填校验的处理&#xff0c;正常情况下&#xff0c;我们都会一个空的必填校验&#xff0c;如下&#xff1a;一般我们只需要简单配置rules即可 <FormItem label"管理员姓名" {...itemLayout.wholeLi…

银行数仓项目实战(二)--数据采集(Kettle的抽取(E)转换(T)加载(L))

Kettle安装 Kettle又名PDI 要求电脑中有Java环境。 下载Kettle9.0的安装包&#xff0c;如有需要可以联系up私发噢。 注意&#xff01;&#xff01;&#xff01; 解压路径不能有中文&#xff0c;空格 解压后双击spoon.bat即可使用 链接数据库需要相应的驱动&#xff0c;Oracle的…

Python图像处理库之pyvips使用详解

概要 在图像处理领域,高效和快速的图像处理工具对于开发者来说至关重要。pyvips 是一个强大的 Python 库,基于 libvips 图像处理库,提供高效、快速且节省内存的图像处理能力。pyvips 支持多种图像格式,并且能够执行各种复杂的图像处理任务,如裁剪、缩放、旋转、滤波等。本…

采用了宽电压设计的测径仪为什么仍旧需要到现场勘察电力环境

关键字: 测径仪宽电压设计,测径仪电压范围,电压影响测径仪,测径仪车间电压 设备宽电压设计是指该设备能够在一定范围的电压波动内正常工作&#xff0c;而不会因为电压的轻微变化而导致性能下降或损坏。宽电压设计通常涉及到电源电路的优化和设计&#xff0c;以确保设备在电压波…

【C语言习题】31.冒泡排序

文章目录 作业标题作业内容2.解题思路3.具体代码 作业标题 冒泡排序 作业内容 实现一个对整形数组的冒泡排序 2.解题思路 先了解一下冒泡排序&#xff1a; 两两相邻的元素进行比较&#xff0c;如果前面元素大于后面元素就交换两个元素的位置&#xff0c;最终的结果是最大的…

代码随想录刷题经历

最近要着手于准备秋招了&#xff0c;之前都是零零散散的刷题&#xff0c;并且刷过就忘&#xff0c;于是乎准备用这篇博客记录刷题的经历和思想。 1、数组 2、链表 3、哈希表 4、字符串 5、双指针 6、栈与队列 7、二叉树 8、回溯算法 9、贪心算法 10、动态规划 11、单…

在浏览器中,设置小于1px的边框可能会被渲染为1px。这是由于浏览器的渲染引擎对小于1px的值处理不一致

为了实现小于1px的视觉效果&#xff0c;你可以使用一下几种方法 方法一&#xff1a;使用 CSS 的 transform 属性来缩放边框 你可以先设置一个1px的边框&#xff0c;然后使用 transform: scale() 来缩小它。 .element { border: 1px solid black; transform: scale(0.5); tran…

基于格网拓扑关系的边缘点检测

1、背景介绍 前文已介绍对点云进行格网处理,可以计算平面点云面积、格网拓扑关系构建,相关博客如下: (1)点云格网过程可视化(C++ PCL)-CSDN博客 (2)

使用 Web Serial API 在浏览器中实现串口通讯(纯前端)

文章目录 目的相关资料使用说明代码与演示总结 目的 串口是非常常用的一种电脑与设备交互的接口。目前在浏览器上直接使用电脑上的串口设备了&#xff0c;这篇文章将介绍相关内容。 相关资料 Web Serial API 相关内容参考如下&#xff1a; https://developer.mozilla.org/en…

无人机技术的原理和发展

无人机技术的原理 无人机技术的原理主要涵盖三个核心方面&#xff1a;空气动力学原理、机械原理和电子原理。 空气动力学原理&#xff1a;无人机能够飞行的基础。无人机通过四个主要力——升力、重力、推力和阻力来实现飞行和稳定。升力是使飞机上升的力&#xff0c;由机翼形…

汇编语言实验四 分支与循环结构程序设计

1&#xff0e;已定义四位年份&#xff0c;判断是否是闰年&#xff0c;是则输出y&#xff0c;不是输出n。 .model small,c .stack 200h .data res db ? year dw 2000h mod4 dw ? mod100 dw ? mod400 dw ? ;这些类型的余数必须是dw和year类型匹配 .code .startup mov dx,0 m…

消息队列-分布式消息队列技术选型

Kafka Kafka 是 LinkedIn 开源的一个分布式流式处理平台&#xff0c;已经成为 Apache 顶级项目&#xff0c;早期被用来用于处理海量的日志&#xff0c;后面才慢慢发展成了一款功能全面的高性能消息队列。 流式处理平台具有三个关键功能&#xff1a; 消息队列&#xff1a;发布和…

C#——文件读取IO操作File类详情

文件读取操作 IO类 就是对应文件的操作的类I/O类 包含各种不同的类 用于执行各种文件操作&#xff0c;创建文件删除文件读写文件 常用的类: File处理文件操作的类 FilleStream用于文件当中任何位置的读写 File类 1.文件创建 File.Create() 在指定路径下创建…

智慧校园综合解决方案:提供全方位的学校管理支持

在当今数字化时代&#xff0c;学校管理面临着越来越多的挑战&#xff0c;包括学生管理、教职员工管理、校园安全等。为了应对这些挑战&#xff0c;智慧校园综合解决方案应运而生。智慧校园综合解决方案融入了先进的信息技术&#xff0c;为学校带来了一场管理与教育模式的革新。…

12寸晶圆厂AGV和天车对网络建设的一些要点

12寸晶圆厂往往有AGV&#xff08;自动导引车&#xff09;和天车作为自动化设备&#xff0c;对网络有特定的参数指标要求&#xff0c;以确保它们的稳定运行和高效通信。以下是一些关键的网络参数指标要求&#xff1a; 1、 对于AGV的网络参数指标要求&#xff1a; 1. 通信协议支…

函数式组件:函数式组件是无状态的,它们不会被实例化,整个渲染过程被简化。我们可以讨论何时使用函数式组件以及如何使用

函数式组件的定义和特点 函数式组件是 Vue.js 提供的一种轻量级、简单、无状态的组件形式。它们被称为"函数式"的原因就在于它们只是一个纯函数,根据输入(属性)返回一个渲染的节点 Tree。 无状态 无状态是指函数式组件没有自己的状态,或者说没有自己的响应式…

给循环里的属性前三个加不同的样式

<template><view class"search-hot"><view class"search-hot-title" v-show"hotWord.length > 0">热词</view><view class"search-hot-list"><viewclass"search-hot-list-item"v-for&q…