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

news2024/12/23 10:55:24

思维导图

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;

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

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

相关文章

Android 深层链接利用

为了能够从我们的应用程序打开另一个应用程序,我们通常通过声明我们想要访问的 Activity 类的名称来实现这一功能。但是,如果我们要打开的 Activity 在其清单文件中设置了android:exported"false" ,则无法使用此方法。而其中一种替…

人工智能有助于解决 IT/OT 集成安全挑战

思科的一项研究表明,信息技术 (IT) 和运营技术 (OT) 融合所带来的安全问题可以通过人工智能 (AI) 解决,尽管该技术也可能被恶意行为者利用。 该报告由思科和 Sapio Research 联合发布,对 17 个国家的 1,000 名行业专业人士进行了调查&#x…

基于Java,SpringBoot和Vue的仓库管理商品管理电商后台管理系统

摘要 基于Java、Spring Boot和Vue的仓库管理系统是一个现代化的库存管理解决方案,旨在提高仓库运营效率和准确性。系统采用Java作为后端开发语言,结合Spring Boot框架简化配置和部署过程,实现业务逻辑和数据处理。前端使用Vue.js构建用户界面…

2024.9.25 数据分析学习

资料: 【开课吧哩堂】数据挖掘项目之用户流失预警系统_哔哩哔哩_bilibili 五万字 | Spark吐血整理,学习与面试收藏这篇就够了!-腾讯云开发者社区-腾讯云 (tencent.com) 黑马程序员Spark全套视频教程,4天spark3.2快速入门到精通…

**CentOS7安装配置mysql**

CentOS7安装配置mysql 首先先将mysql57-community-release-el7.rpm解压出来 rpm -ivh mysql57-community-release-el7.rpmls /etc/yum.repos.d/ -l // 检查是否解压成功安装mysql yum install -y mysql-community-server可能会出现 GPG 密钥过期 rpm --import https://r…

一个可以免费上传样本图册的网站

在数字化时代,图像和样本图册的重要性不言而喻。无论是设计师、摄影师、艺术家还是普通用户,都需要一个可靠的平台来上传、分享和存储自己的作品。今天,给大家推荐一个可以免费上传样本图册的网站——【FLBOOK】,它为用户提供了无…

UE学习篇ContentExample解读------Blueprint_Communication-上

文章目录 总览描述批次阅览1.1 Basic communication with a target blueprint1.2 Basic communication via actor casting1.3 Blueprint communication via actor casting to child Blueprint1.4 Communicating with all actors of a specific class 概念总结致谢: …

关于预处理详解 #define 宏 #和##

#和## #运算符 #运算符将宏的⼀个参数转换为字符串字⾯量。它仅允许出现在带参数的宏的替换列表中。 #运算符所执⾏的操作可以理解为”字符串化“。 当我们有⼀个变量 int a 10; 的时候,我们想打印出: the value of a is 10 . 就可以写&#xff…

MySQL函数:流程函数

1.IF函数 基本语法:IF(expr1,expr2,expr3) 功能:如果value为true,返回t, 否则返回f 例如:这个里面expr1里面是false,返回的是Error,如果是true,返回OK select if(false, OK, Err…

开通微信视频号直播的流程

首先我们要了解什么是视频号? 视频号其实就是腾讯家的“抖音”/“快手”,可以发布视频和直播(包括直播带货)。 微信视频号不同于订阅号、服务号,它是一个全新的内容记录与创作平台,也是一个了解他人、了解…

适合二开的web组态软件

技术文档 官网网站:http://www.hcy-soft.com 体验地址:by组态[web组态插件] 可以广泛应用于化工、石化、制药、冶金、建材、市政、环保、电力等几十个行业。 一、产品简介 BY组态是完全自主研发的集实时数据展示、动态交互等一体的全功能可视化平台。帮…

OJ在线评测系统 后端基础部分开发 完善CRUD相关接口

完善相关接口 判斷编程语言是否合法 先从用户的请求拿到Language package com.dduo.dduoj.service.impl;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dduo.dduoj…

OpenHarmony(鸿蒙南向)——平台驱动开发【SDIO】

往期知识点记录: 鸿蒙(HarmonyOS)应用层开发(北向)知识点汇总 鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~ 持续更新中…… 概述 功能简介 SDIO(Secure Digital Input and Outpu…

【Faster-Rcnn】训练与测试

✨ Blog’s 主页: 白乐天_ξ( ✿>◡❛) 🌈 个人Motto:他强任他强,清风拂山冈! 💫 欢迎来到我的学习笔记! 1.提前准备 1.1. mobaxterm(远程连接服务器) 链接&#xff1a…

达索系统SOLIDWORKS2025新版本即将来袭

达索系统SOLIDWORKS2025新版本即将来袭 北京众联亿诚是达索官方授权的SOLIDWORKS经销商,专业经销SOLIDWORKS正版软件并提供免费试用、培训认证、二次开发等增值服务。 在CAD软件领域,SOLIDWORKS作为达索系统旗下的旗舰产品,一直以其优越的三…

CTF学习路线(非常详细)零基础入门到精通,收藏这一篇就够了

**CTF概述:**CTF(夺旗赛)是一种网络安全竞赛,通过解决一系列安全问题来测试参赛者的技能和经验。对于网络安全爱好者和从业者来说,学习CTF是一个不错的选择。 下面是从零开始学习CTF的详细规划和路线: 1 基础知识 要开始学习C…

问题:机器字长为n位的二进制数可以用补码来表示()个不同的有符号定点整数。

一、概念 概念:无论原码、反码、补码,n位二进制数可以表示2^n个数值 二、从范围证明 有符号的情况下,表格如下: 其中,原码、反码含有-0、0 , 而补码不划分0 由此,可知: ① 原码…

Ubuntu 编译安装 ImageMagick 来处理图片

一:克隆 ImageMagick cd /tools git clone https://github.com/ImageMagick/ImageMagick.git cd ImageMagick 二:安装编译 ImageMagick 所需的软件包 sudo apt -y install build-essential libltdl-dev libjpeg-dev libpng-dev libtiff-dev libgif-dev…

Unity 外描边简单实现(Shader Graph)

1:原理 将物体的模型空间的位置(也就是顶点数据)放大,作为一个单独的渲染通道单独渲染,这时候模型是已经发大过的,要想看到外描边的效果,需要将正面显示的东西给去掉,显示背面渲染的…

HTTPS证书配置

NGINX、SSl配置 修改conf目录下NGINX中的crt和key文件 单点配置SSL 需要的文件和配置信息 证书和keytool.exe(使用jdk1.8的)工具要在同一个目录下 gxszy.qhxzhny.top.pfx(证书) keystorePass.txt(密码) 使用JDK自带的keyto…