MySQL语法回顾

数据库操作语言包括DDL、DML、DQL和DCL,分别用于定义、操作、查询和控制数据库。

DDL(Data Definition Language)数据定义语言:

DDL用于定义数据库、表、列、索引、视图、存储过程、触发器等对象,包括CREATE、ALTER、DROP等命令。

常用的DDL命令有:

  • CREATE:创建数据库或表
  • ALTER:修改数据库或表结构
  • DROP:删除数据库或表

DML(Data Manipulation Language)数据操作语言:

DML用于添加、删除、更新和查询数据,包括INSERT、DELETE、UPDATE和SELECT等命令。

常用的DML命令有:

  • INSERT:插入数据
  • DELETE:删除数据
  • UPDATE:更新数据
  • SELECT:查询数据

DQL(Data Query Language)数据查询语言:

DQL用于查询数据,包括SELECT命令。SELECT可以查询指定的列、表、条件和排序方式等。

DCL(Data Control Language)数据控制语言:

DCL用于控制数据库对象的访问、权限、安全性等,包括GRANT和REVOKE命令。GRANT授权将访问权限授予用户和角色,REVOKE撤销访问权限。

 

SQL关键字的执行顺序通常是:

  1. FROM:从哪个表中获取数据
  2. JOIN:连接其他表
  3. WHERE:筛选满足条件的数据
  4. GROUP BY:按照指定的列进行分组
  5. HAVING:对分组后的数据进行筛选
  6. SELECT:选择要返回的列
  7. DISTINCT:去除重复的数据
  8. ORDER BY:按照指定的列进行排序
  9. LIMIT:限制返回的数据条数

MySQL是一种开源的关系型数据库管理系统。以下是MySQL的基本语句:

#基本语句

查询所有数据库:

show databases;

创建数据库:

CREATE DATABASE database_name;

选择数据库:

USE database_name;

创建表格:

CREATE TABLE table_name (
  column1 datatype constraint,
  column2 datatype constraint,
  ...
);

插入数据:

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

更新数据:

UPDATE table_name SET column_name = new_value WHERE condition;

删除数据:

DELETE FROM table_name WHERE condition;

 注意:要注意字段和值之间的对应情况,逗号隔开,若update和delete没有指定where语句的话或直接默认全部;

insert into user(id, name, age) value (1,'zhangsan',23);
insert into user(id, name, age) value (2,'lisi',24);

insert into user values (3,'wangwu',25);

update user set name = 'zhaoliu' where id =1;


update user set name='小美',age=18 where id=3;

update user set age=18;


delete from user where id=1;
delete from user ;

select * from user;

 

查询数据:

SELECT column1, column2, ... FROM table_name WHERE condition;

对数据进行排序:

SELECT column1, column2, ... FROM table_name ORDER BY column_name ASC/DESC;

对数据进行分组:

SELECT column1, COUNT(column2) FROM table_name GROUP BY column1;

连接表格:

SELECT column1, column2, ... FROM table1 JOIN table2 ON table1.column_name = table2.column_name;

下面是练习代码:

先创建表内数据

insert into emp(id, workno, name, gender, age, idcard, workaddress, date)
values (1,'1','柳岩','女',20,'123456789012345678','北京','2000-01-01 '),
       (2,'2','张无忌','男',18,'123456789012345670','北京','2005-09-01 '),
       (3,'3','韦一笑','男',38,'123456789712345670','上海','2005-08-01 '),
       (4,'4','赵敏','女',18,'123456757123845670','北京','2009-12-01'),
       (5,'5','小昭','女',16,'123456769012345678','上海','2007-07-01'),
       (6,'6','杨道','男',28,'12345678931234567X','北京','2006-01-01'),
       (7,'7','范瑶','男',40,'123456789212345670','北京','2005-05-01 '),
       (8,'8','黛绮丝','女',38,'123456157123645670','天津','2015-05-01'),
       (9,'9','范凉凉','女',45,'123156789012345678','北京','2010-04-01 '),
       (10,'10','陈友谅','男',53,'123456789012345670','上海','2011-01-01 '),
       (11, '11 ','张士诚','男',55,'123567897123465670','江苏','2015-05-01 ') ,
       (12,'12','常遇春','男',32,'123446757152345670','北京','2004-02-01 '),
       (13,'13','张三丰','男',88,'123656789012345678','江苏','2020-11-01 '),
       (14,'14','灭绝','女',65,'123456719012345670','西安',' 2019-05-01'),
       (15,'15','胡青牛','男',70,'12345674971234567X','西安','2018-04-01'),
       (16,'16','周芷若','女',18, null,'北京','2012-06-01');
select name,workno,age from emp;

-- as关键字,distinct去重
select distinct workaddress as '工作地址' from emp;

-- where查询
select * from emp where age=88;

select * from emp where emp.idcard is null;
select * from emp where emp.idcard is not null;

select * from emp where age>=15 and age<=30;
select * from emp where age between 15 and 20;

select * from emp where age=18 or age=20 or age=40;
select * from emp where age in(18 ,20 , 40);

-- 查询符合字符的数据
select * from emp where name like '__';

-- 身份证号最后一位是X
select * from emp where emp.idcard like '%X';


-- 聚合函数
-- 有多少个字段
-- null不参与聚合函数计算
select count(*) from emp;
select count(idcard) from emp;

-- 平均年龄

-- 最小年龄
select min(age) from emp;
-- 最大年龄
select max(age) from emp;

-- 西安地区年龄之和
select sum(age) from emp where workaddress='西安';


-- group by
-- 分组之前查询用where,之后用having
-- 分组男女
select gender , count(*) from emp group by gender;

select gender , avg(age) from emp group by gender;

-- 3.查询年龄小于45的员工,并根据工作地址分组,获取员工数量大于等于3的工作地址
select workaddress, count(*) arr from emp where age<45 group by workaddress having arr>=3;

-- 排序
-- 升
select * from emp order by age asc ;
select * from emp order by age;

-- 降
select * from emp order by age desc ;

-- 根据入职时间降序排序
select * from emp order by date desc ;

-- 3.根据年龄对公司的员工进行升序排序,年龄相同,再按照入职时间进行降序排序
select * from emp order by age , date desc ;

-- 分页查询
select * from emp limit 10,10;

select gender,count(*) from emp where age<60 group by gender;

-- 查询所有年龄小于等于35岁员工的姓名和年龄,并对查询结果按年龄升序排序,如果年龄相同按入职时间降序排序。
select name,age from emp where age<35 order by age ,date desc ;


-- 5.查询性别为男,且年龄在20-40 岁(含)以内的前5个员工信息,对查询的结果按年龄升序排序,年龄相同按入职时间升序排序。
select * from emp where gender='男' and age>20 and age<=40 order by age ,date limit 5;

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

golang之net/http模块学习

文章目录 开启服务开启访问静态文件获取现在时间按时间创建一个空的json文件按时间创建一个固定值的json文件 跨域请求处理输出是json 开启服务 package mainimport ("fmt""net/http" )//路由 func handler(w http.ResponseWriter, r *http.Request){fmt.…

通过网线连接的局域网电脑怎么实现上网功能

在机床里面的工控机有时候需要进行联网操作,但是又没有无线网或者外网网线,这时候可以通过笔记本的无线wifi功能实现上网功能. 通过网络适配器-找到wifi对应适配器-共享-1 打勾-2选中与工控机连接的网口-既可. 工控机端,将网口设置为自动获取IP

.NET Core6.0 MVC+layui+SqlSugar 简单增删改查

HTML部分: {ViewData["Title"] "用户列表"; } <!DOCTYPE html> <html> <head><meta charset"utf-8"><title>用户列表</title><meta name"renderer" content"webkit"><meta …

DevOps搭建(三)-Git安装详细步骤

前面两篇文章我们讲了如何安装swappiness安装和虚拟机。这篇我们详细讲下如何安装Git。 1、YUM源更改为阿里云镜像源 1.1、备份CentOS-Base.repo 先备份原有的 CentOS-Base.repo 文件 sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup…

C# 热键注册工具类

写在前面 介绍一个验证过的热键注册工具类&#xff0c;使用系统类库user32.dll中的RegisterHotkey函数来实现全局热键的注册。 代码实现 [Flags]public enum KeyModifiers{Alt 1,Control 2,Shift 4,Windows 8,NoRepeat 0x4000}public static class HotKeyHelper{[DllImp…

十五、机器学习进阶知识:K-Means聚类算法

文章目录 1、聚类概述2、K-Means聚类算法原理3、K-Means聚类实现3.1 基于SKlearn实现K-Means聚类3.2 自编写方式实现K-Means聚类 4、算法不足与解决思路4.1 存在的问题4.2 常见K值确定方法4.3 算法评估优化思路 1、聚类概述 聚类&#xff08;Clustering&#xff09;是指将不同…

菜鸟学习日记(python)——运算符

我们进行运算时&#xff0c;需要两类数据&#xff0c;操作数和运算符&#xff0c;例如&#xff1a;ab就是一个运算&#xff0c;它的操作数是a和b&#xff0c;运算符是‘’ 在python中运算符包括以下几大类&#xff1a; 算数运算符比较&#xff08;关系&#xff09;运算符赋值…

【云原生 | Docker】Docker核心概念 应用上手最佳流程

&#x1f935;‍♂️ 个人主页: AI_magician &#x1f4e1;主页地址&#xff1a; 作者简介&#xff1a;CSDN内容合伙人&#xff0c;全栈领域优质创作者。 &#x1f468;‍&#x1f4bb;景愿&#xff1a;旨在于能和更多的热爱计算机的伙伴一起成长&#xff01;&#xff01;&…

ubuntu 下载编译 opencv4.2.0并检验

如有帮助点赞收藏关注&#xff01; 如需转载&#xff0c;请注明出处&#xff01; ubuntu 的opencv4.2.0下载与编译 下载依赖开始编译安装配置OpenCV编译环境检验* 完成 下载 首先下载opencv源码网址&#xff1a; https://opencv.org/releases/page/3/ 下载成zip后&#xff0c;…

Linux常用快捷键

1. tab 键补全 1)当我们忘记了一些指令怎么写时&#xff0c;可以双击tab键&#xff0c;查看所有指令&#xff0c;显示出来后可以按enter键往下翻&#xff0c;想要取消命令可以按ctrl c。 2)知道开头怎么写&#xff0c;后面的忘了&#xff0c;也可以双击tab键查询开头排列的指令…

Liunx系统使用超详细(三)

本篇内容开始逐渐描述有关liunx的各种命令的使用方法&#xff01; 目录 一、目录和文件区别 1.1目录&#xff1a; 1.2文件&#xff1a; 1.3总结&#xff1a; 二、Linux命令的写法 三、linux命令清屏 四、pwd命令 五、ls命令 5.1 ls&#xff1a; 5.2 ls -l&#xff1a…

HTML CSS JavaScript的网页设计

一、网页界面效果&#xff1a; 二、HTML代码&#xff1a; <!DOCTYPE html> <!-- 声明文档类型--> <html lang"en"> …

代码随想录第二十一天(一刷C语言)|回溯算法组合

创作目的&#xff1a;为了方便自己后续复习重点&#xff0c;以及养成写博客的习惯。 一、回溯算法 1、种类 排列、组合、分割、子集、棋盘问题 2、回溯步骤 &#xff08;0&#xff09;回溯抽象 回溯法解决的问题均可以抽象为树形结构&#xff08;N叉树&#xff09; &…

acwing-Linux学习笔记

acwing-Linux课上的笔记 acwing-Linux网址 文章目录 1.1常用文件管理命令homework作业测评命令 2.1 简单的介绍tmux与vimvimhomeworktmux教程vim教程homework中的一些操作 3 shell语法概论注释变量默认变量数组expr命令read命令echo命令printf命令test命令与判断符号[]逻辑运算…

等保测评报价相差很大,里面有什么门道

等保测评报价的差异主要源于以下几点&#xff1a; 服务质量评估标准不同&#xff1a;不同的测评机构在测评过程中所提供的服务范围、深度、细节等方面可能存在差异&#xff0c;因此导致报价有所不同。一些机构可能提供全面且细致的测评服务&#xff0c;致力于提供高质量的等保测…

Nested Named Entity Recognition with Span-level Graphs

原文链接&#xff1a; https://aclanthology.org/2022.acl-long.63.pdf ACL 2022 介绍 问题 基于span的方法虽然在解决嵌套实体上存在巨大潜力&#xff0c;但存在以下问题&#xff1a; 1&#xff09;难以充分利用span的丰富语义&#xff1b; 2&#xff09;重叠较多的正负样本会…

如何使用PostMan进行并发测试?

如何使用PostMan进行并发测试&#xff1f; &#x1f440;(Postman 的 runner 实际上是串行执行的&#xff0c;因此不能作为并发测试&#xff0c; 只是批量测试&#xff0c;本文如下称为并发的是错误的) 文章目录 如何使用PostMan进行并发测试&#xff1f;POST篇流程Pre-req 脚…

c++ atmoic acquire/release

由于多核cpu缓存的存在&#xff0c;以及gcc编译优化&#xff0c;cpu指令层面的优化&#xff0c;导致程序的执行顺序可能跟你写的顺序不完全一致&#xff08;reorder&#xff09;。 但是在多线程编程中如何确保各个线程能正确的读取到各个变量呢&#xff08;而不是cache中老旧的…

做一件荒谬的事:用AI推理下一次双色球结果 v0.1

做一件荒谬的事&#xff1a;用AI推理下一次双色球结果 v0.1 引言 事情的起因是父亲被亲戚安利&#xff0c;突然喜欢上了双色球&#xff0c;连规则和开奖结果怎么看都不懂的他&#xff0c;让我研究研究这个事&#xff0c;给他选个号。他还说老家有好几个人中了几百万&#xff…

3.C程序编译步骤

目录 1 预处理 2 编译 3 汇编 4 链接 5 文件大小情况 依次执行下面4个步骤 预处理 将所有头文件展开&#xff0c;比如stdio.h等&#xff0c;展开就相当于把stdio.h中的所有代码粘贴到你的代码里。将所有的宏文件展开&#xff0c;像stdio.h是官方定义的头文件&#x…