MySQl基础入门⑩

news2024/11/26 18:58:39

上一章内容

数据插入、更新与删除

以下是创建一个名为users的表并定义其字段结构的SQL命令(以MySQL为例):

CREATE TABLE users (
    id INT AUTO_INCREMENT, 
    username VARCHAR(255) NOT NULL,
    email VARCHAR(255) NOT NULL UNIQUE,
    password VARCHAR(255) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (id)
);

在这个例子中:

  • id 是一个自动递增的主键字段。
  • usernameemail 是用于存储用户名和电子邮件地址的字符串字段,其中 email 字段要求唯一(UNIQUE约束)。
  • password 也是一个用于存储密码的字符串字段(在实际应用中,这个字段通常会存储加密后的密码)。
  • created_at 是一个时间戳字段,默认值为当前时间(CURRENT_TIMESTAMP)。

在数据库管理或编程中,插入数据通常使用SQL(结构化查询语言)的INSERT INTO命令语句。以下是一个基本的插入数据的例子:

-- 插入一条记录到名为'users'的表中
INSERT INTO users (id, username, email, password)
VALUES (1, 'JohnDoe', 'john.doe@example.com', 'hashed_password');

-- 如果表中有自增主键,可以省略其值
INSERT INTO users (username, email, password)
VALUES ('JaneDoe', 'jane.doe@example.com', 'another_hashed_password');

在上述例子中,users是一个假设存在的表,它有idusernameemailpassword字段。VALUES后面跟的是要插入的具体数据。

查看表数据的命令

SELECT * FROM 表名;
在这里插入图片描述
我们可以看到,数据已经添加进来了。
在这里说一下 select * from 表名 的作用就是查看表的数据。

第二种方法

想要根据某个条件从一个表选择某些记录,并将这些记录插入到另一个表中,你可以结合 SELECTWHEREINSERT INTO 来实现。

例如,假设你有一个名为 old_users 的表,你想把其中状态为 ‘active’ 的用户信息插入到新表 new_users 中:

INSERT INTO new_users (username, email, status)
SELECT username, email, status
FROM old_users
WHERE status = 'active';

在这个例子中,SELECT 语句从 old_users 表中选择满足 status = 'active' 条件的记录,并将这些记录的 usernameemailstatus 字段值插入到 new_users 表相应的字段中。

使用命令更新数据

在SQL中,更新数据通常使用UPDATE语句。以下是一个基本的更新数据命令示例:
在这里插入图片描述

-- 更新users表中id为1的用户的email地址
UPDATE users SET email = 'new.email@example.com' WHERE id = 1;

-- 或者同时更新多个字段
UPDATE users SET email = 'new.email@example.com', password = 'new_password' WHERE id = 1;

在这里插入图片描述

在这个例子中:

  • UPDATE users 表明我们要更新名为users的表中的记录。
  • SET email = 'new.email@example.com' 定义了要更新的字段及其新的值。
  • WHERE id = 1 是一个条件,指定了哪些记录应该被更新(即id为1的用户)。

请注意,在实际操作时,请确保你具有足够的权限来更新指定的数据,并且根据实际情况调整字段名和条件。

使用命令删除数据

在SQL中,删除数据通常使用DELETE语句。以下是一个基本的删除数据命令示例:

-- 删除users表中id为1的用户记录
DELETE FROM users WHERE id = 1;

-- 或者删除所有状态为inactive的用户
DELETE FROM users WHERE status = 'inactive';

在这里插入图片描述
删除完之后再查看就没有数据了。

在这个例子中:

  • DELETE FROM users 表明我们要从名为users的表中删除记录。
  • WHERE id = 1 是一个条件,指定要删除的记录(即id为1的用户)。
  • 第二个示例中,WHERE status = 'inactive' 指定删除所有状态为’inactive’的用户记录。

请注意,在执行删除操作时务必谨慎,因为一旦数据被删除就无法恢复。根据实际情况调整字段名和条件,确保你正在删除正确的数据,并且具有足够的权限进行此操作。


练习

1. 创建表:

假设你要创建一个名为 students 的表,用于存储学生信息。表中包含以下字段:

  • id(主键,自动递增)
  • name(学生姓名,字符串类型,非空)
  • email(学生邮箱,字符串类型,唯一)
  • major(学生专业,字符串类型)
CREATE TABLE students (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(255) NOT NULL UNIQUE,
    major VARCHAR(100)
);

2. 插入数据:

插入以下3条学生记录到刚刚创建的 students 表中:

  • 学生1:id为自动生成,姓名“张三”,邮箱“zhangsan@example.com”,专业“计算机科学”
  • 学生2:id为自动生成,姓名“李四”,邮箱“lisi@example.com”,专业“数学与应用数学”
  • 学生3:id为自动生成,姓名“王五”,邮箱“wangwu@example.com”,专业“物理学”

请编写SQL命令插入这些记录。

INSERT INTO students (name, email, major)
VALUES ('张三', 'zhangsan@example.com', '计算机科学'),
       ('李四', 'lisi@example.com', '数学与应用数学'),
       ('王五', 'wangwu@example.com', '物理学');

3.更新数据

比如要将“张三”的专业从“计算机科学”更改为“软件工程”,你可以使用UPDATE语句:

-- 更新张三的专业为'软件工程'
UPDATE Students SET major = '软件工程' WHERE name = '张三';

-- 更新后查询以确认更改
SELECT * FROM Students WHERE name = '张三';

这样就成功地将“张三”的专业更新为了“软件工程”。同样,你可以根据需要更改的字段和条件进行调整。

4.删除数据

如果你想从Students表中删除一个学生的记录,比如要删除“王五”的记录,你可以使用DELETE FROM语句:

-- 删除王五的记录
DELETE FROM Students  WHERE name = '王五';

-- 删除后查询以确认
SELECT * FROM Students WHERE name = '王五'; -- 此时应无结果返回

这样就成功地从Students表中删除了名为“王五”的学生记录。同样,你需要根据实际需要调整删除条件。注意:删除操作是不可逆的,请谨慎操作。


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

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

相关文章

new mars3d.layer.GeoJsonLayer({的pupup配置参考

new mars3d.layer.GeoJsonLayer({的pupup配置可选项以及相关效果参考: 说明:popup按属性字段配置,可以是字符串模板或数组 1.popup仅配置{type}{name}等属性的的时候,指显示json文件内数据的type与name,效果如下 相关…

关系型数据库mysql(2)SQL语句

目录 一.SQL语句简介 1.1SQL语言 1.2SQL语句分类 1.3SQL分类 1.4SQL 语言规范 二.数据库基本操作 2.1查看数据库中的库信息 2.2查看数据库中的表信息 数据库内查看 数据库外查看 2.3显示数据库的结构(字段) ​编辑 2.4 字段属性 2.5常见的数…

记录一下目前为止的算法成长

每日笔记 复习曲线 间隔1天、3天、7天、15天、30天,然后以一个月为周期复习 2023. 12. 24 一定要每天早中晚都要复习一下 早中午每段一两道, 而且一定要是同一个类型, 不然刷起来都没有意义 11.29 开始向着面试刷题跟进! 每天刷4题左右 ,一周之内一定要是统一类…

这里是一本关于 DevOps 企业级 CI/CD 实战的书籍...

文章目录 📋 前言🎯 什么是 DevOps🎯 什么是 CI/CD🎯什么是 Jenkins🧩 Jenkins 简单案例 🎯 DevOps 企业级实战书籍推荐🔥 参与方式 📋 前言 企业级 CI/CD 实战是一个涉及到软件开发…

AIOCR:AI文字识别web集成系统@Kylin+RISCV

基于kotti_ai的AI文字识别web集成系统 AIOCR项目目标: 在KylinRISCV搭建一个kotti_ai构架的网站,提供AI OCR文字识别web服务。 二期目标:在AIOCR的基础上提供chatgpt和文心一言等大模型调用,建立综合大模型应用平台。 功能&am…

STL_list文档使用介绍与底层代码实现简介

文章目录 list介绍list的使用构造函数(constructor)迭代器list capacitylist modify(修改)其他接口函数list迭代器失效问题 list实现基础框架(节点类)基础框架(迭代器类)基础框架(链…

爬虫系列-CSS基础语法

🌈个人主页:会编程的果子君 💫个人格言:“成为自己未来的主人~” CSS全称层叠样式表 ,主要用来定义页面内容展示效果的一门语言,HTML:页面骨架,素颜CSS:页面效果美化&#xff1a…

【概念】神马是分布式?

SueWakeup​​​​​ 个人主页:SueWakeup 系列专栏:学习Java框架 个性签名:保留赤子之心也许是种幸运吧 本文封面由 凯楠📷 友情赞助播出! 目录 前言 1. 系统架构的演变 2. SOA 与微服务的关系 3. 分布式核心知识…

PCL QT visualizer

PCL QT visualizer 用Qt创建PCL 可视化应用程序。 项目组织 UI界面 Compile & Run cmake -B build -S . -DCMAKE_TOOLCHAIN_FILED:\vcpkg\scripts\buildsystems\vcpkg.cmakecmake --build build --config Releasewindeployqt6.exe .\pcl_visualizer.exe.\build\Release\…

“因聚而生,数智有为”实在智能Agent牵手华为生态合作

近日,2024华为中国合作伙伴大会顺利闭幕,实在智能受邀出席,携TARS大模型及实在Agent(智能体)数字员工精彩亮相,与华为生态伙伴共同探讨如何帮助客户抓住数智化转型的巨大机遇,加速培育“新质生产…

Python数学建模-2.9Matplotlib库

Matplotlib库是Python中一个非常流行的绘图库,它提供了大量的绘图工具,可以生成各种类型的静态、动态、交互式的图表。Matplotlib的设计初衷是为了与NumPy配合使用,从而提供一个强大的数学绘图工具。 1.Matplotlib的主要特点 丰富的图表类型…

vue2 中使用音频

vue2 中使用音频 在 template 页面 写入 audio 标签 <template><div><audio ref"moreAudio" :src"moreAudioSrc"></audio><audio ref"noAudio" :src"noAudioSrc"></audio></div> </t…

MySQL 索引的分类和优化

​ 优质博文&#xff1a;IT-BLOG-CN 索引是什么 &#xff1a; MySQL 官方对索引的定义&#xff1a;索引&#xff08;Index&#xff09;是帮助 MySQL 高效获取数据的数据结构。可以得到索引的本质&#xff1a;索引是数据结构。索引的目的在于提高查询效率。可以简单理解为&#…

css实现的3D立体视觉效果鸡蛋动画特效

这是一个基于纯css实现的3D立体视觉效果鸡蛋动画特效&#xff0c;喜欢的朋友可以拿来使用演示动态效果 css实现的3D立体视觉效果鸡蛋动画特效

音频和视频标签

音频用audio标签 controls表示控制栏 loop循环播放音频 autoplay自动播放&#xff08;浏览器基于隐私一般不支持&#xff09; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Com…

从零到一构建短链接系统(八)

1.git上传远程仓库&#xff08;现在才想起来&#xff09; git init git add . git commit -m "first commit" git remote add origin OLiyscxm/shortlink git push -u origin "master" 2.开发全局异常拦截器之后就可以简化UserController 拦截器可以…

分布式文件存储与数据缓存(二)| Redis

目录 Redis概述_什么是NoSQLNoSQL的四大分类KV型NoSql&#xff08;代表----Redis&#xff09;列式NoSql&#xff08;代表----HBase&#xff09;文档型NoSql&#xff08;代表----MongoDB&#xff09;搜索型NoSql&#xff08;代表----ElasticSearch&#xff09; 关系型数据库和非…

【Kotlin】扩展属性、扩展函数

1 类的扩展 Kotlin 提供了扩展类或接口的操作&#xff0c;而无需通过类继承或使用装饰器等设计模式&#xff0c;来为某个类添加一些额外的属性或函数&#xff0c;我们只需要通过一个被称为扩展的特殊声明来完成。通过这种机制&#xff0c;我们可以将那些第三方类不具备的功能强…

Css提高——Css3盒子模型border-box

1、盒子模型的种类与区别 CSS3 中可以通过 box-sizing 来指定盒模型&#xff0c;有2个值&#xff1a;即可指定为 content-box、border-box&#xff0c;这样我们 计算盒子大小的方式就发生了改变。 CSS3 盒子模型 可以分成两种情况&#xff1a; 1. box-sizing: content-box 盒…

智慧安全:守护智慧城市的安全屏障

随着信息技术的迅猛发展&#xff0c;智慧城市已成为现代城市发展的重要方向。智慧城市通过集成应用先进的信息通信技术&#xff0c;实现城市管理、服务、运行的智能化&#xff0c;为城市的可持续发展注入了新的活力。然而&#xff0c;在智慧城市的建设过程中&#xff0c;安全问…