当前位置: 首页 > news >正文

MySql语言操作数据库---增删改查数据库,表,数据

思维导图

SQL语言共分为四大类:
数据定义语言DDL:数据定义语言DDL用来创建数据库中的各种对象-----[库]、[表]、[视图]、[索引]、
数据操纵语言DML:(1) 插入:INSERT (2) 更新:UPDATE (3) 删除:DELETE 
数据查询语言DQL:数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE
数据控制语言DCL:数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果[了解]

DDL定义数据库

# 例如,使用命令创建数据库:
# (1)创建一个班级db_database1数据库,且使用默认编码;
create database db_database1;
# (2)创建一个班级db_database2数据库,charset设置编码为utf8;
create database db_database2 charset utf8;
# (3)思考:若再使用相同命令创建一个已有的数据库:班级db_database1/3,能成功吗?
# if not exists   # 判断
create database if not exists db_database3;
# [HY000][1007] Can't create database 'db_database1'; database exists

字符集概念

什么是字符集

字符集是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同,常见字符集有:==ASCII字符集==、ISO 8859字符集、GB2312字符集、BIG5字符集、GB18030字符集、unicode,==GBK==,==UTF8== 字符集等.

为什么要有字符集

因为计算机底层只能存储二进制数字.不能存储任何的字符,因此要使用数字来固定表示某个字符.这样就可以在使用

字符的时候个将数字根据字符集转变成为字符.

DDL查看数据库

-- 查看所有库
show databases;
-- 查看建库语句
show create database db_database3;
# CREATE DATABASE `db_database1` /*!40100 DEFAULT CHARACTER SET utf8mb4
#     COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */;
-- 使用库 (选择库)
use db_database3;
# 例如,使用命令来操作:
# (1)使用数据库班级db_database2;
use db_database2;
# (2)查看当前正在使用的数据库名;
select database();
# (3)思考:如果要查找到MySQL数据库下默认库名mysql中的user表,该怎么操作呢?
use mysql;

DDL删除数据库

drop database db_database3;

数据类型

1.整数

2.小数

3.字符串

4.时间和日期

DDL创建表

# 例如,使用创建数据表命令来完成:
# (1)创建字段时,不添加任何[约束]条件;
# (2)新建一个用户表user,字段有编号、用户名、昵称;
# (3)思考:若再使用相同命令创建一个已有的数据表:user,能成功吗?
-- 选择库
use db_database1;
-- 创建表
create table user(id int,username varchar(20),nikename varchar(20)
);
-- 判断表不存在才会执行创建
create table if not exists user(id int,username varchar(20),nikename varchar(20)
);

DDL数据表的查看

# 例如,使用命令查看数据表:
# (1)在当前数据库中再创建一个邮箱表email,有编号、邮箱号、密码、来源等字段;
create table email(id int,email_addr varchar(20),password varchar(20),scr varchar(20)
);# (2)查看当前数据库中有哪些数据表;
show tables ;
# (3)查看创建数据表email的创建语句;
show create table email;
-- 运行结果
# CREATE TABLE `email` (
#   `id` int(11) DEFAULT NULL,
#   `email_addr` varchar(20) DEFAULT NULL,
#   `password` varchar(20) DEFAULT NULL,
#   `scr` varchar(20) DEFAULT NULL
# ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci# (4)查看数据表email的表结构。
desc email;
-- 运行结果:
# id,         int(11),            YES
# email_addr, varchar(20),        YES
# password,   varchar(20),        YES
# src,        varchar(20),        YES

DDL删除表

# 例如,使用命令删除数据表:
# (1)新建一个只有姓名字段的学生表,然后查看库中有哪些数据表;
create table stu(stu_name varchar(20)
);
# (2)删除学生表后,再查看有哪些数据表。
drop table stu;

DDL 修改表之添加列

# 例如,使用命令完成:
# (2)添加判断语句,新建一张用户表table_user,有用户名、密码这2个字段;
create table if not exists table_user(username varchar(20),password varchar(20)
);
# (3)给用户表添加一列信息展示information字段,长度为140;
-- 默认添加到末尾
alter table table_user add information varchar(140);# (4)思考1:在用户表的最开始处,添加一列最初名称first_name,该怎么做呢?
alter table table_user add first_name varchar(20) first ;# (5)思考2:在用户表的密码字段后,添加一列年龄age字段,该怎么做?
alter table table_user add age varchar(20) after password;#--查看表详细信息
desc table_user;

DDL修改表之修改列的类型和数据

# 例如,使用命令完成:
# (1)给用户表的信息字段类型修改为char,长度修改为60;
alter table table_user modify information varchar(60);
# (2)将用户名字段修改长度为16,且添加不为空约束。
-- not null 表示非空约束
alter table table_user modify username varchar(16) not null;  -- not null 表示非空约束
# 如果表中有数据,修改类型还需要注意数据能否改为你想要的类型.

DDL修改表之修改列名

# 例如,使用命令完成:
# (1)把用户表的用户名修改为name,字符串类型、长度为18;
alter table table_user change username name varchar(18);
# (2)把用户表的信息字段列名修改为info,类型修改为varchar,长度为100。
alter table table_user change information info varchar(100);

DDL修改表之删除列

# (1)删除用户表中的年龄这一列;
alter table table_user drop age;
# (2)使用命令查看表结构。
desc table_user;

DDL修改表之修改表名

# (1)把用户表的表名更改为t_user;
rename table table_user to t_user;
# (2)使用命令查看库中所有数据表信息。
-- 查看所有的表.
show tables ;

DML操作

insert插入数据到表

# 例如,使用命令完成:
# (2)用户表的字段信息有编号、人物名、性别、住址等;[不添加任何约束条件]
create table user1(id int,user_name varchar(20),gender varchar(2),addr varchar(20)
);
# (3)使用插入数据的语法分别插入一条数据;
insert into user1 values (1,'李明','男','安徽');-- Column count doesn't match value count at row 1# (4)思考1:给所有字段名一次性插入2条数据信息,该怎么做?
insert into user1 values (2,'李华','女','上海'),(3,'李飞','男','北京');
# (5)思考2:给用户表一次性插入仅包含人物名、年龄、性别字段的3条数据,该怎么做?
insert into user1 (user_name,gender,addr) values ('李','女','上海');
# (6)若发现在性别字段后,还缺少了年龄字段,该怎么处理呢?
alter table user1 add age int;# 查看表中数据
SELECT * FROM user1;
value和values的区别
1:在MySQL中,value和values都是用于插入数据的关键字,但它们的用法和执行效率有所不同。
2:value和values在基本用法上没有明显区别,它们都可以用于插入单条或多条数据。
3:如果你需要高效地插入单条数据,value是更好的选择;如果你需要批量插入多条数据,那么使用values会更加高效。同时,保持代码的一致性和正确性也是非常重要的。因此一般全都使用values.

update修改数据

# 例如,使用命令完成:
# (1)将用户表内所有用户性别一次性设置为女;
update  user1 set gender = '女';
# (2)将用户表内所有用户的性别修改为男、年龄修改为18;
update user1 set gender = '男',age = 18;
# (3)将用户表内编号为2的用户性别设置为女;
update user1 set gender = '女' where id = 2;
# (4)将用户表内编号为3的用户年龄更新为30,且住址更新为湖北省武汉市;
update user1 set age = 30 ,addr = '湖北省武汉市' where id = 3;
# (5)思考:去年存储的用户数据到今年了,那么存储在user数据表里的用户年龄都要增加1岁,该怎么处理呢?
update user1 set age = age +1 ;

delete删除数据

# 例如,使用命令完成:
# (1)在当前库中创建一个用户表2,表字段有编号、用户名、密码,再增加3条数据;
create table user2(id int,username varchar(20),password varchar(20)
);
insert into user2 values (1,'李四','xxxxx'),(2,'张四','xxxxx'),(3,'王四','xxxxx');
select * from user2;
# (2)删除表内编号为1的这条数据,再删除用户名为李四的这条数据;
delete from user2 where id = 1;
delete from user2 where username = '张四';
# (3)使用命令删除表内所有数据,观察效果。
delete from user2;

相关文章:

MySql语言操作数据库---增删改查数据库,表,数据

思维导图 SQL语言共分为四大类: 数据定义语言DDL:数据定义语言DDL用来创建数据库中的各种对象-----[库]、[表]、[视图]、[索引]、 数据操纵语言DML:(1) 插入:INSERT (2) 更新:UPDATE (3) 删除:DELETE 数据查询语言DQL:数据查询语…...

C++深入学习string类成员函数(2):容器管理

引言 C 标准库中的容器(如 std::string、std::vector、std::list 等)都提供了一系列容器管理成员函数,用于处理容器的大小、容量、清空等操作。容器管理成员函数可以分为几类,主要包括容量查询、修改容器大小、清空容器等操作。 …...

MariaDB 和 MySQL 全面对比:选择数据库需要考虑这几点

谁在使用 MySQL 和 MariaDB? MySQL 和 MariaDB 都发布了各自的用户名单。 使用 MySQL 的有 Facebook、Github、YouTube、Twitter、PayPal、诺基亚、Spotify、Netflix 等。 使用 MariaDB 的有 Redhat、DBS、Suse、Ubuntu、1&1、Ingenico 等。 功能比较…...

Python 实现图形学几何变换算法

目录 Python 实现图形学几何变换算法几何变换介绍变换矩阵Python 实现几何变换代码解释总结 Python 实现图形学几何变换算法 在计算机图形学中,几何变换是非常重要的概念。它们允许我们对对象的位置、大小、方向进行操作,比如平移、缩放、旋转、反射等。…...

接口测试|超详细面试题【附答案】

今天给姐妹们整理了一套超详细的附答案的接口测试面试题,姐妹们快学起来吧~ 接口测试的重要性,相信不用我多说了。接口测试是现在软件测试工程师一个加分项。因为很多朋友一开始做了几年的软件测试都是在做功能测试,做界面UI的测试&#xff…...

Qt网络编程——QTcpServer和QTcpSocket

文章目录 核心APITCP回显服务器TCP回显客户端 核心API QTcpServer用于监听端口和获取客户端连接 名称类型说明对标原生APIlisten(const QHostAddress&, quint16 port)方法绑定指定的地址和端口号,并开始监听bind和listennextPendingConnection()方法从系统中获…...

CentOS 7 aarch64制作openssh 9.9p1 rpm包 —— 筑梦之路

本篇文章还是基于开源项目openssh-rpms制作。 https://github.com/boypt/openssh-rpms.git 官方发行说明: OpenSSH: Release Notes 1. 修改version.env 2. 下载源码包 openssl网站改版,下载地址和之前不一样了 # 下载openssl1.1.1w源码包cd downlo…...

Flink和Spark的区别

1、设计理念不同 flink:Flink是基于事件驱动的,是面向流的处理框架, Flink基于每个事件一行一行地流式处理,是真正的流式计算. 另外他也可以基于流来模拟批进行计算实现批处理。 spark:Spark的技术理念是使用微批来模拟流的计算,…...

以太网开发基础-MAC和PHY

直接参考: 以太网基础-MAC和PHY-CSDN博客 路由器上一般有三类MAC地址 给一个范例: 00:0C:E5:4B:F2:85 这个地址就可以作为LAN MAC地址 00:0C:E5:4B:F2:86 这个地址就可以作为WAN MAC地址 00:0C:E5:4B:F2:87 这个地址就可以作为无线 MAC地址 通常,路由器…...

Java 发布jar包到maven中央仓库(2024年9月保姆级教程)

文章目录 前言一、账号准备1. 注册登录账号2. 新建命名空间3. 验证命名空间4. 生成令牌5. 为 maven 设置令牌二、GPG准备1. 下载GPG2. 发布证书2.1 新建证书2.2 发布证书到服务器2.3 验证发布三、发布jar包到中央仓库1. 编辑项目pom文件2. 打包上传3. 发布jar包4. 搜索我们的ja…...

Pandas和Seaborn可视化详解

1.Pandas绘图-单变量 概述 pandas库是Python数据分析的核心库 它不仅可以加载和转换数据,还可以做更多的事情:它还可以可视化 pandas绘图API简单易用,是pandas流行的重要原因之一 可视化小技巧: 如果是类别型 柱状 饼图 (类别相对较少 5-…...

【Python】Windows下安装使用FFmpeg

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。之前为了MP3转wav,需要pip安装并import AudioSegment,但是会报错:FileNotFoundError: [WinError 2] 系统找不到指定的文件。 因为FFmpeg需要另…...

LLM - 使用 XTuner 指令微调 多模态大语言模型(InternVL2) 教程

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/142528967 免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。 XTuner…...

【Python】数据可视化之热力图

热力图(Heatmap)是一种通过颜色深浅来展示数据分布、密度和强度等信息的可视化图表。它通过对色块着色来反映数据特征,使用户能够直观地理解数据模式,发现规律,并作出决策。 目录 基本原理 sns.heatmap 代码实现 基…...

个人博客系统测试(selenium)

P. S.:以下代码均在VS2019环境下测试,不代表所有编译器均可通过。 P. S.:测试代码均未展示头文件stdio.h的声明,使用时请自行添加。 博主主页:Yan. yan.                        …...

【速成Redis】01 Redis简介及windows上如何安装redis

前言: 适用于:需要快速掌握redis技能的人(比如我),在b站,找了个课看。 01.课程简介_哔哩哔哩_bilibili01.课程简介是【GeekHour】一小时Redis教程的第1集视频,该合集共计19集,视频…...

入侵检测系统(IDS)和入侵预防系统(IPS)

入侵检测系统(IDS)和入侵预防系统(IPS)是网络安全领域中用来检测和防止潜在的恶意活动或政策违规行为的系统。它们的主要目的是保护网络和主机不受未授权访问和各种形式的攻击。以下是它们的主要区别和功能: 一&#…...

pytorch 加载模型参数后 如何测试数据,应用模型预测数据,然后连续变量转换成 list 或者numpy.array padans并保存到csv文件中

在PyTorch中,加载模型参数后测试数据通常涉及以下几个步骤: 1. **加载模型**:首先,你需要定义模型的结构,然后加载预训练的参数。 2. **加载数据**:准备你的测试数据集。确保数据集已经正确地预处理&…...

uni-app开发流程(开发、预览、构建和发布过程)

uni-app 是一个使用 Vue.js 开发所有前端应用的框架,支持编写一次代码,生成可以在多个平台(如微信小程序、H5、App等)运行的应用。下面是 uni-app 的开发流程,包括从创建项目到部署的各个阶段。 1. 创建项目 通过 HB…...

Linux Shell: 使用 Expect 自动化 SCP 和 SSH 连接的 Shell 脚本详解

文章目录 0. 引言2. 解决方案3. 脚本详解脚本1:使用 SSH 和 Expect 自动化登录远端机器脚本说明 脚本2:使用 SCP 和 Expect 自动化文件上传脚本说明 脚本3:使用 SCP 和 Expect 自动化文件下载脚本说明 4. 脚本的使用方法5. 关键技术点5.1. Ex…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录

ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

自然语言处理——循环神经网络

自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM&#xff09…...

AI病理诊断七剑下天山,医疗未来触手可及

一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...