常见Mysql数据库操作语句

-- DDL创建数据库结构
-- 查询所有数据库
show databases ;
-- 修改数据库字符集
alter database db02 charset utf8mb4;
-- 创建字符编码为utf——8的数据库
create database db05 DEFAULT CHARACTER SET utf8;-- 创建表格
create table tb_user(id int auto_increment primary key comment 'ID,唯一标识',username varchar(20) not null unique comment '用户名',name varchar(20) not null  comment '姓名',age int comment '年龄',gender varchar(20)  default '男' comment '性别'
)comment '用户表';-- 创建表格2
create table tb_emp
(id          int auto_increment comment 'ID主键'primary key,create_time datetime                     not null comment '创建时间',update_time datetime                     not null comment '更新时间',username    varchar(20)                  not null comment '用户名',password    varchar(32) default '123456' null comment '密码',name        varchar(10)                  not null comment '员工姓名',gender      tinyint unsigned             not null comment '1男 2女',image       varchar(300)                 null comment '图像',job         tinyint unsigned             null comment '1班主任 2讲师 3学工主管 4教研主管',entrydate   date                         null comment '入职日期',constraint tb_emp_username_uindexunique (username)
)comment '员工表';-- 查询表结构
desc tb_emp;-- 删除表
drop table tb_emp;-- DML数据操作语言
insert into tb_emp(id, create_time, update_time, username, password, name, gender, image, job, entrydate) values
(null,now(),now(),'zhouzhiruo3','123','周芷若',2,'1.jpg',2,'2023-12-28');insert into tb_emp values (null,now(),now(),'zhangwuji2','123','张无忌',1,'2.jpg',1,'2023-12-28');insert into tb_emp (id, create_time, update_time, username, name, gender) values (null,now(),now(),'weiyixiao1','韦一笑',2);insert into tb_emp (create_time, update_time,username, name, gender) values (now(),now(),'weiyixiao3','韦一笑',2);update tb_emp set name='张三',update_time=now() where id=1;update tb_emp set entrydate='2024-1-1',update_time=now() ;delete from tb_emp where id=10;-- DQL数据查询语言
select id, create_time, update_time, username, password, name, gender, image, job, entrydate from tb_emp ;
-- 别名
select username as '用户名' ,job  '职位'  ,update_time 更新时间 from tb_emp;
-- 去重
select distinct job  from tb_emp;
-- 条件查询
select * from tb_emp where entrydate between '2023-12-28' and '2023-12-29';select * from tb_emp where name like '张_';select * from tb_emp where job in (1,3);select * from tb_emp where image is not null ;
-- 聚合函数
select count('7') from tb_emp;-- 分组查询
select gender,count(*) from tb_emp group by gender having count(*)>3;select job,count(*) from tb_emp where entrydate<'2024-01-01'group by job having job=2;select * from tb_emp where username='zhouzhiruo3';-- 排序查询
select * from tb_emp order by entrydate desc ,job;-- 分页查询
select * from tb_emp limit 5;
select * from tb_emp limit 0,5;select * from tb_emp limit 5,5;-- MYSQL控制函数 if 和caseselect if(gender=1,'男性','女性') 性别,count(*) 数量 from tb_emp group by gender;select (case job when 1 then '班主任' when 2 then '学生' when 3 then '助教' else '其他' end) 职位 ,count(*)from tb_emp group by job;
select (case job when 1 then '班主任' when 2 then '学生' when 3 then '助教' else '其他' end) 职位 from tb_emp;-- 案例创建category分类表
-- 多表查询select * from tb_emp,tb_dept;
select * from tb_emp;-- 隐式内连接
select * from tb_emp,tb_dept where tb_emp.dept_id=tb_dept.id;select tb_emp.name,tb_dept.deptname from tb_emp,tb_dept where tb_emp.dept_id=tb_dept.id;-- 显式内连接
select tb_emp.name,tb_dept.deptname from tb_emp inner join tb_dept on tb_emp.dept_id = tb_dept.id;
select e.name,d.deptname from tb_emp e join tb_dept d on e.dept_id = d.id;
-- 左外链接select e.name,d.deptname from tb_emp e left join tb_dept d on e.dept_id = d.id-- 右外链接
select e.name,d.deptname from tb_emp e right join tb_dept d on e.dept_id = d.id;-- 标量子查询
-- 查询教研部门下的员工
select id from tb_dept where tb_dept.deptname='教研部门';select * from tb_emp where tb_emp.dept_id = 2;select * from tb_emp e where e.dept_id = (select id from tb_dept d where d.deptname='教研部门');-- 查看房东白后入职的员工信息
select entrydate from tb_emp e where e.name='方东白';
select entrydate from tb_emp e where entrydate >'2021-01-04';select entrydate from tb_emp e where entrydate >(select entrydate from tb_emp e where e.name='方东白');
-- 列子查询
-- 查询教研部门和后勤部门的员工信息select id from tb_dept where deptname in('教研部门','后勤部门');select * from tb_emp where tb_emp.dept_id in(2,3);select * from tb_emp where tb_emp.dept_id in(select id from tb_dept where deptname in('教研部门','后勤部门'));-- 行子查询
-- 查询和风不吹相同入职时间和职位的员工信息。
select entrydate,job from tb_emp where name ='风不吹';select * from tb_emp where entrydate = '2025-01-04' and job  = 7 ;select * from tb_emp where (entrydate,job) = (select entrydate,job from tb_emp where name ='风不吹');-- 表子查询
-- 查询2024-01-04号后的员工信息,及部门名称
select * from tb_emp where entrydate >'2024-01-04' ;select e.*,d.deptname from (select * from tb_emp where entrydate >'2024-01-04') e,tb_dept d where e.dept_id= d.id;-- 分类表
create table category
(id          int unsigned auto_increment comment '主键ID'primary key,name        varchar(20)                not null comment '分类名称',type        tinyint unsigned           not null comment '分类类型:1菜品分类 2套餐分类',sort        tinyint unsigned           not null comment '排序字段',status      tinyint unsigned default 0 not null comment '状态:0停售 1启售',create_time datetime                   not null comment '创建时间',update_time datetime                   not null comment '更新时间',constraint category_name_uindexunique (name)
)comment '分类表';
-- 菜品表
create table dish
(id           int unsigned auto_increment comment '主键id'primary key,name         varchar(20)                not null comment '菜品名称',category_id  int unsigned               not null comment '菜品分类',price        decimal(8, 2)              not null comment '价格',image        varchar(300)               not null comment '图片',describetion varchar(200)               null comment '描述',status       tinyint unsigned default 0 not null comment '状态 0停售 1起售',create_time  datetime                   not null comment '创建时间',update_time  datetime                   not null comment '修改时间',constraint dish_name_uindexunique (name)
)comment '菜品表';-- 套餐表
create table setmeal
(id          int unsigned auto_increment comment '主键id'primary key,name        varchar(20)                not null comment '套餐名称',category_id int unsigned               not null comment '套餐分类id',price       decimal(8, 2)              not null comment '价格',image       varchar(300)               not null comment '图片',description varchar(200)               null comment '描述信息',status      tinyint unsigned default 0 not null comment '状态:0停售 1启售',create_time datetime                   not null comment '创建时间',update_time datetime                   not null comment '修改时间',constraint setmeal_name_uindexunique (name)
)comment '套餐表';
-- 套餐菜品表
create table setmeal_dish
(id         int unsigned auto_increment comment '主键ID'primary key,setmeal_id int unsigned     not null comment '套餐ID',dish_id    int unsigned     not null comment '菜品ID',copies     tinyint unsigned not null comment '菜品的份数'
)comment '套餐菜品关系表';-- 查询价格低于10元的,菜品名称价格和及菜品的分类名称select d.name,d.price,c.name from category c,dish d where c.id=d.category_id and d.price<10  ;
-- 查询所有价格在10-50(包含)之间的菜品且状态为‘起售’的名称,价格,及分类名称(即使菜品没有分类,也要查询出来)select d.name,d.price,c.name , d.status from dish d left join category c on d.category_id = c.id  where  d.status=1  and  d.price between 10 and 50  ;
select d.name,d.price,c.name from dish d left join category c on d.category_id = c.id  where  d.price between 10 and 50 and d.status=1 ;-- 查询每个分类下,最贵的菜品,展示出分类的名称,最贵的菜品价格;
select c.name,d.name,max(d.price) from dish d ,category c where d.category_id=c.id group by c.id ;-- 查询每个分类下,菜品状态为‘起售’,并且该分类下菜品的数量大于等于2的分类名称select c.name,count(*) from category c,dish d where c.id = d.category_id and d.status=1 group by c.name having count(*)>=2;-- 查询经典川菜中包含那些菜品,套餐的名称价格,菜品的名称价格和份数。select d.name,s.name,s.price,d.name,sd.copies from dish d,setmeal s,setmeal_dish sd where s.id=sd.setmeal_id and d.id=sd.dish_id and s.name='经典川菜';-- 查询低于菜品平均价格的菜品信息,菜品名称,菜品价格
select avg(price)
from dish;select name,price from dish where price<(select avg(price) from dish);-- 事务
-- 开启事务
start transaction ;
delete  from tb_dept where id=1;
delete  from tb_emp where dept_id=1;
-- 提交事务
commit;
-- 回滚事务
rollback;select * from tb_emp;
select * from tb_dept;-- 创建索引
create index idx_emp_name on tb_emp(name);-- 查看索引
show index  from tb_emp;-- 删除索引
drop index idx_emp_name on tb_emp;

 

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

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

相关文章

搜维尔科技:【简报】元宇宙数字人赛道,2022年金奖《金魚姬》赏析!

一名网络直播主名叫琉璃&#xff0c;在即将展开她日常进行的每日准时直播前&#xff0c;肚子极为不舒服&#xff0c;突然很想上厕所&#xff0c;由于时间紧迫&#xff0c;导致琉璃需要在厕所里面完成直播&#xff01;为了掩饰自己所在的处境&#xff0c;她决定运用自己设计的虚…

85.乐理基础-记号篇-力度记号

内容来源于&#xff1a;三分钟音乐社 上一个内容&#xff1a;78.乐理基础-非常见拍号如何打拍子-CSDN博客 85-78之间的内容观看索引&#xff1a; 腾讯课堂-三分钟音乐社-打拍子&#xff08;20&#xff09;-总结、重点、练习与检验方法开始看 力度记号&#xff1a;p、f、mp、…

基于SpringBoot的精品在线试题库系统(系统+数据库+文档)

&#x1f345;点赞收藏关注 → 私信领取本源代码、数据库&#x1f345; 本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目 希望你能有所收获&#xff0c;少走一些弯路。&#x1f345;关注我不迷路&#x1f345;一、绪论 1. 研究背景 现在大家…

软件测试|Python Faker库使用指南

简介 Faker是一个Python库&#xff0c;用于生成虚假&#xff08;假的&#xff09;数据&#xff0c;用于测试、填充数据库、生成模拟数据等目的。它可以快速生成各种类型的虚假数据&#xff0c;如姓名、地址、电子邮件、电话号码、日期等&#xff0c;非常适合在开发和测试过程中…

【Vue】文件管理页面制作

<template><div><div style"margin: 10px 0"><el-input style"width: 200px" placeholder"请输入名称" suffix-icon"el-icon-search" v-model"name"></el-input><el-button class"ml…

RIP复习实验

条件: R1为外网&#xff0c;R8和r9的环回分别是172.16.1.0/24和172.16.2.0/24 中间使用78.1.1.0/24 剩下的路由器2-6使用172.16.0.0/16 要求: R1为运营商 r1远程登录r2实际登录r7 R2访问r7要求走r5去访问 全网可达 实现流程: 首先配置好各接口ip address 然后r2-r7使用rip…

数据库授权问题 ERROR 1410 (42000): You are not allowed to create a user with GRANT

当我要给数据库授权时&#xff0c;却出现了错误。 ERROR 1410 (42000): You are not allowed to create a user with GRANT 包括对数据库角色权限信息的查询&#xff0c;同样也会出现问题 ERROR: 1141: There is no such grant defined for user xuxu on host localhost 这是…

扒一扒Go语言中的“语法糖”

概 述 最近学习Golang语言的过程中&#xff0c;我发现Golang&#xff08;后面简称Go&#xff09;中的语法糖还蛮多的&#xff0c;有些语法糖还让会让人很懵逼。那么接下来&#xff0c;让我以一个曾经的 Java CURD boy&#xff0c;来说一说 Go 中的语法糖。 语法糖定义 语法糖…

Selenium自动化程序被检测为爬虫,怎么屏蔽和绕过

Selenium 操作被屏蔽 使用selenium自动化网页时&#xff0c;有一定的概率会被目标网站识别&#xff0c;一旦被检测到&#xff0c;目标网站会拦截该客户端做出的网页操作。 比如淘宝和大众点评的登录页&#xff0c;当手工打开浏览器&#xff0c;输入用户名和密码时&#xff0c…

windows和liunx对比及Linux分类

windows一定比liunx差吗&#xff0c;这绝对是天大误解&#xff0c;不是说你常用的开始是liunx就代表windows差 windows和liunx对比 有人说Linux性能远高于Windows&#xff0c;这个笔者是不认可的&#xff0c;给Linux套上一个图形界面&#xff0c;你再使劲美化一下&#xff0c…

逆向7通用寄存器

MOV指令前后的容器宽度要一致 如ECX与EAX 都是32位 mov eax&#xff0c;0x111 可以少写后面补零多写的会移除 源操作数是后面的 目标操作数是前面的 32位和64位寻址宽度 是查找内存宽度的范围 每一个编号对应一个字节 即内存宽度 32位是4g 64位大的多 0x123456是临时数

光缆通信有什么特点?

光缆由一个或多个光纤组成&#xff0c;每个光纤由一个非常纤细的玻璃或塑料纤维组成&#xff0c;可以传输光信号的高速数据。光缆通信具有以下特点&#xff1a; 1. 高带宽&#xff1a;光缆通信可以提供非常高的带宽&#xff0c;远远超过传统的铜缆通信。光纤的宽带特性使其能够…

【PixPin】比Snipaste、QQ的截图长图和动图还好用的截图工具

1.下载地址—— 下载地址 2.下载压缩包 双击exe文件运行 按默认的来 中文安装 选择安装路径 下一步&#xff0c;安装 安装完成&#xff0c;可以自己设置快捷键

python画房子

前言 今天&#xff0c;我们来用Python画房子。 一、第一种 第一种比较简单。 代码&#xff1a; import turtle as t import timedef go(x, y):t.penup()t.goto(x, y)t.pendown() def rangle(h,w):t.left(180)t.forward(h)t.right(90)t.forward(w)t.left(-90)t.forward(h) de…

Android通知---创建通知(附加代码)

1. 创建基本通知 (1) 创建基本通知 NotificationCompat.Builder builder new NotificationCompat.Builder(this, "channel_id").setSmallIcon(R.drawable.notification_icon) .setContentTitle("textTitle") .setContentText("text…

ubuntu查看内存使用情况命令

命令简介 在Ubuntu系统中&#xff0c;可以使用终端命令来查看电脑的内存使用情况。打开终端并输入以下命令&#xff1a; free -h 该命令可用于查看系统中内存的总量、已使用的内存、空闲的内存及缓冲区使用的内存。其中“-h”选项用于以人类可读的格式显示内存大小。执行该命…

YOLOv8-Seg改进:轻量化改进 | 超越RepVGG!浙大阿里提出OREPA:在线卷积重参数化

🚀🚀🚀本文改进:OREPA在线卷积重参数化巧妙的和YOLOV8结合,并实现轻量化 🚀🚀🚀YOLOv8-seg创新专栏:http://t.csdnimg.cn/KLSdv 学姐带你学习YOLOv8,从入门到创新,轻轻松松搞定科研; 1)手把手教你如何训练YOLOv8-seg; 2)模型创新,提升分割性能; 3)独家…

虽迟但到!MySQL 可以用 JavaScript 写存储过程了!

任何能用 JavaScript 来干的事情&#xff0c;最终都会用 JavaScript 来干 背景 不久前&#xff0c;Oracle 在 MySQL 官方博客官宣了在 MySQL 中支持用 JavaScript 来写存储过程。 最流行的编程语言 最流行的数据库。程序员不做选择&#xff0c;当然是全都要。 使用方法 用 J…

Docker部署情侣恋爱网站

个人名片&#xff1a; 对人间的热爱与歌颂&#xff0c;可抵岁月冗长&#x1f31e; 个人主页&#x1f468;&#x1f3fb;‍&#x1f4bb;&#xff1a;念舒_C.ying 个人博客&#x1f30f; &#xff1a;念舒_C.ying 情侣恋爱网站 1. 修改代码2. 目录结构3. 编写Dockerfile4. 编写d…

基于ssm的物流信息管理系统论文

摘 要 计算机网络发展到现在已经好几十年了&#xff0c;在理论上面已经有了很丰富的基础&#xff0c;并且在现实生活中也到处都在使用&#xff0c;可以说&#xff0c;经过几十年的发展&#xff0c;互联网技术已经把地域信息的隔阂给消除了&#xff0c;让整个世界都可以即时通话…