二、MySQL基础语法重点!(增删查改)

news2024/11/25 18:34:54

目录

一、SQL的增删改(DML)

1、添加数据 

2、修改数据 

3、删除数据 

 二、SQL查询(DQL)

(一)基本查询

 (二)条件查询

 (三)聚合函数

(四)分组查询 

 (五)排序查询

(六)分页查询 

 (七)总结

 三、SQL的数据控制语言(DCL)


一、SQL的增删改(DML)

DML介绍,对于数据库进行增删改的操作。

DML英文全称是Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增删改操作。

添加数据 (INSERT)
修改数据 (UPDATE)
删除数据(DELETE)

1、添加数据 

注意:
插入数据时,指定的字段顺序需要与值的顺序是一一对应的;

字符串和日期型数据应该包含在引号中;

插入的数据大小,应该在字段的规定范围内。 

insert into emp values (3,'03','张凯','男',31,'223456789011111111','2002-02-02'),(4,'04','李德志','男',25,'323456789011111111','2005-02-02');
select * from emp;

2、修改数据 

update emp set name='IT黑马' where id=1;

3、删除数据 

delete from emp where gender='女';

 

 delete from emp;        #删除表的所有数据

 二、SQL查询(DQL)

DQL-介绍
DOL英文全称是Data QueryLanquage(数据查询语言),数据查询语言,用来查询数据库中表的记录

(一)基本查询


查询关键字:SELECT

1、创建emp表 

create table emp(
    id int comment '编号',
    workno varchar(10) comment '工号',
    name varchar(10) comment '姓名',
    gender char comment '性别',
    age tinyint unsigned comment '年龄',
    idcard char(18) comment '身份证号码',
    workaddress varchar(50) comment '工作地址',
    entrydate date comment '入职时间'

)comment '员工表';

 2、向emp表中插入数据

insert into emp (id,workno,name,gender,age,idcard,workaddress,entrydate)
values  (1,'1','柳岩','女',20,'123456789012345678','北京','2000-01-01'),
        (2,'2','张无忌','男',18,'123456789012345670','深圳','2005-09-01'),
        (3,'3','韦一笑','男',38,'123456789712345670','上海','2005-08-01'),
        (4,'4','柳啦','女',20,'223456789012345678','南昌','2000-01-01'),
        (5,'5','张无的','男',18,'223456789012345670','九江','2005-09-01'),
        (6,'6','韦一撒','男',38,'223456789712345670','赣州','2005-08-01'),
        (7,'7','张凯','女',20,'323456789012345678','新余','2000-01-01'),
        (8,'8','张无','男',18,'323456789012345670','赣州','2005-09-01'),
        (9,'9','韦一','男',38,'323456789712345670','广州','2005-08-01'),
        (10,'10','李坤','女',20,'423456789012345678','武汉','2000-01-01'),
        (11,'11','张飞','男',18,'423456789012345670','长沙','2005-09-01'),
        (12,'12','吴大','男',38,'423456789712345670','杭州','2005-08-01'),
        (13,'13','邓琦','女',20,'523456789012345678','成都','2000-01-01'),
        (14,'14','张然','男',18,'523456789012345670','重庆','2005-09-01'),
        (15,'15','刘亮','男',38,null,'南京','2005-08-01');

 3、对emp表进行查询

select * from emp;        #查询emp表中所有数据
select workno,name,age from emp;        #查询出emp表中字段workno,name,age中的数据
select id,workno,name,gender,age,idcard,workaddress,entrydate from emp;        #查询表中所有字段数据
select workaddress from emp;        #查询表中当个字段数据
select workaddress as '工作地址' from emp;        对于单个字段选取别名
select distinct emp.workaddress as '工作地址' from emp;        #去除重复字段名

 (二)条件查询

 

#查询表中所有数据
select * from emp;
#查询表中年龄=18
select * from emp where age=18;
#查询表中年龄小于等于20
select * from emp where age<=20;
#查询表中身份证号为空
select * from emp where idcard is null;
#查询身份证不为空
select * from emp where idcard is not null;
#查询年龄不等于18
select * from emp where age<>18;
#查询年龄大于等于15小于等于18
select * from emp where age>=15 and age<=18;
select * from emp where age between 15 and 20;        #between...and..之间只能由小到大
select * from emp where gender='女' and age < 30;
select * from emp where age=18 or age=38 or age=30;
select * from emp where age in(18,20,30);   #在in中满足条件
select * from emp where name like '__';     #模糊查询两个字的员工姓名
select * from emp where name like '___';
select * from emp where idcard like '%0';       #查询身份证号最后一位为0

 

 (三)聚合函数

 注意:null值不参与所有聚合行数运算;

select count(*) from emp;
select count(name) from emp;    #统计字段数量
select count(emp.idcard) from emp;  
select avg(emp.age) from emp;   #查询年龄平均值
select max(emp.age) from emp;   #查询年龄最大值
select min(emp.age) from emp;   #查询年龄最小值
select sum(age) from emp where workaddress='北京';        #查询北京地区年龄之和

(四)分组查询 

案例语句: 

select gender,count(*) from emp group by gender;    
#根据性别分组,统计男性员工和女性员工人数
select gender,avg(age) from emp group by gender;    
#根据性别分组,统计男性员工和女性员工平均年龄
select workaddress,count(*) from emp where age<45 group by workaddress having count(*)>=2;
#查询年龄小于45,并根据工作地址来分组,获取员工数量大于等于2的工作地址
select workaddress,count(*) as address_count from emp where age<45 group by workaddress having address_count>=2;

 (五)排序查询

 案例语句:

select * from emp order by age asc;
#根据年龄升序
select * from emp order by age desc ;
select * from emp order by entrydate desc ;
#根据工作时间降序
select * from emp order by entrydate asc ;
#根据年龄进行升序,年龄相同按工作日期降序排
select * from emp order by age asc ,entrydate desc ;

(六)分页查询 

 注意:
起始索引从0开始,起始索引= (查询页码 - 1) * 每页显示记录数;

分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是LIMIT;

如果查询的是第一页数据,起始索引可以省略,直接简写为 limit 10。

 案例语句:

select * from emp limit 0,5;
#查询第一页员工数据,每页展示5条记录
select * from emp limit 10,5;
#查询员工表数据第二页,展示5条数据 ------》注意:(页码数-1)*页面展示数量

案例练习: 

案例实现:

select * from emp where gender='女' and age in(18,20,30);
#统计表中性别为女,年龄在18,20,30的人

select * from emp where gender='男' and (age between 10 and 30) and name like '__';
#统计表中性别为男,年龄在10到30之间以及姓名两个字

select gender,count(*) from emp where age<60 group by gender;
#统计表中年龄小于60,男性和女性员工人数

select name,age from emp where age<=30 order by age asc ,entrydate desc ;
#查询数据表中所有年龄小于等于30的人员性别和年龄,并对查询年龄按升序排序,年龄相同按入职时间降序排序

select * from emp where gender='男' and (age between 20 and 40) order by emp.age ,entrydate desc limit 0,5;
#查询员工性别为男,且年龄在20-40以内的前52位员工信息,对查询结果按年龄升序排序,年龄相同按入职时间降序排

 (七)总结

 三、SQL的数据控制语言(DCL)

实战案例:

可以到自己数据库中查看用户数 

#创建用户itcast只能够在当前主机localhost访问,密码为123456
create user 'itcast'@'localhost' identified by '123456';
#创建用户zch,可以在任何主机上访问数据库,密码为123456
create user 'zch'@'%' identified by '123456';
#修改用户zch访问密码为123456789
alter user 'zch'@'%' identified with mysql_native_password by '123456789';  #语句有误
set password for 'zch'@'%' = password ('123456789');
set password for 'zch'@'%' = password ('123456');

#删除用户itcast
drop user 'itcast'@'localhost';

 注意:

  • 主机名可以使用 % 通配。
  • 这类SQL开发人员操作的比较少,主要是DBA(DatabaseAdministrator数据库管理员)使用。

权限控制 

注意:

  • 多个权限之间,使用逗号分隔
  • 授权时,数据库名和表名可以使用*进行通配,代表所有。 

案例:

#查询权限
show grants for 'zch'@'%';
#授予权限
grant all on itcast.* to 'zch'@'%';
#撤销权限
revoke all on itcast.* from 'zch'@'%';

 查询权限的结果:

喜欢的欢迎一键三连。

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

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

相关文章

牛客网 华为机试 进制转换

本题是要将十六进制的字符串转换成十进制。看到题目第一眼就想到用map进行十六进制和十进制的映射。 然后我们需要注意&#xff0c;字符串前面会有0X&#xff0c;这只是一个标识十六进制的标识符&#xff0c;没有具体数字意义&#xff0c;我们在转换的时候&#xff0c;需要把它…

视频怎么压缩?不影响视频画质的三个方法

在数字化时代&#xff0c;高清晰度和4K视频的广泛应用使得我们在制作、分享和传输视频时拥有了更多的可能性。然而&#xff0c;随之而来的问题就是庞大的视频文件大小&#xff0c;不仅占用存储空间&#xff0c;而且在上传、分享和传输过程中可能遇到一系列的困扰。 为了解决这…

牛客网 华为机试 质因子

本题是要求一个数的所有质因子&#xff0c;包括重复的&#xff0c;比如180。首先质数就是素数&#xff0c;其只能被1和其本身整除&#xff08;1不是质数&#xff09;。比如2的因子只有1和2&#xff0c;3的因子只有1和3&#xff0c;5的因子只有1和5。 比如题中的180&#xff0c;…

小兴教你做平衡小车-stm32程序开发(PWM)

1 程序分享 main.c文件。 #include "stm32f10x.h" #include "led.h" #include "delay.h" #include "usart.h" #include "key.h" #include "tim.h" #include "pwm.h" #include "stdio.h"int…

挑战杯 基于深度学习的人脸表情识别

文章目录 0 前言1 技术介绍1.1 技术概括1.2 目前表情识别实现技术 2 实现效果3 深度学习表情识别实现过程3.1 网络架构3.2 数据3.3 实现流程3.4 部分实现代码 4 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于深度学习的人脸表情识别 该项目较…

【S32K3驱动配置】-1.1-GPIO配置及其应用-点亮LED灯(基于SDK)

目录&#xff08;共10页精讲&#xff0c;手把手教你S32K3从入门到精通&#xff09; 实现的软件架构&#xff1a;基于Drivers层&#xff08;以往的SDK&#xff09; 前期准备工作&#xff1a; 1 创建一个FREERTOS工程 2 点亮评估板S32K312EVB-Q172中D13 LED灯 2.1 S32K312EV…

C++ 之LeetCode刷题记录(三十八)

&#x1f604;&#x1f60a;&#x1f606;&#x1f603;&#x1f604;&#x1f60a;&#x1f606;&#x1f603; 开始cpp刷题之旅。 目标&#xff1a;执行用时击败90%以上使用 C 的用户。 18. 四数之和 给你一个由 n 个整数组成的数组 nums &#xff0c;和一个目标值 target…

Thonny 开发环境下使用PICO系列教程1———利用Pico芯片内置传感器输出温度

Thonny 开发环境下使用PICO系列教程1———利用Pico芯片内置传感器输出温度 一、安装Thonny环境安装测试 在Thonny设定CircuitPython环境硬件部分Thonny部分 利用Pico内置温度传感器输出CPU温度 一、安装Thonny 下载链接&#xff1a; https://github.com/thonny/thonny/releas…

STM32各外设初始化步骤

1、GPIO初始化步骤 1、使能GPIO时钟 2、初始化GPIO的输入/输出模式 3、设置GPIO的输出值或获取GPIO的输入值 GPIO_InitTypeDef GPIO_InitStruct;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);GPIO_InitStruct.GPIO_Mode GPIO_Mode_Out_PP; GPIO_InitStruct.GPIO_Pin…

记事本怎么导入Excel文件 记事本数据导入Excel方法

在日常生活中&#xff0c;记事本软件已经成为了我不可或缺的助手&#xff0c;帮助我记录着点点滴滴&#xff0c;释放了大脑的负担。然而&#xff0c;随着时间的推移&#xff0c;记事本里的内容越来越多&#xff0c;如何高效地整理这些数据成为了一个新的问题。特别是当我需要将…

2024Java高频精选面试题讲解,mysql语句优化面试

前言 一位小伙伴准备了许久的阿里Java面试&#xff0c;原以为能够顺利拿下offer&#xff0c;但在第三面还是被摁在地上反复摩擦&#xff0c;丧气一段时间后&#xff0c;小伙伴调整了心态重新尝试了一下&#xff0c;最终拿下了offer&#xff0c;今天小编把这位小伙伴遇到的面试…

操作系统(笔记)(一)

1、操作系统的功能和目标 1.1功能 存储管理文件管理设备管理处理机管理进程管理 1.2目标 方便性&#xff1a;操作系统作为用户与计算机硬件系统之间的接口&#xff0c;提供了直观的命令和界面&#xff0c;使得用户能够更容易地操作计算机。有效性&#xff1a;操作系统旨在提…

Java基于微信小程序的高校讲座预约系统,附源码

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

SpringBoot集成mongodb

mongodb环境搭建 采用docker-compose搭建&#xff0c;配置文件如下 version: 3# 网桥mongo -> 方便相互通讯 networks:mongo:services:# mongodbmongodb:image: registry.cn-hangzhou.aliyuncs.com/zhengqing/mongo:4.4.6 # 原镜像mongo:4.4.6restart: unless-stoppedcont…

Vue.js+SpringBoot开发天然气工程业务管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、使用角色3.1 施工人员3.2 管理员 四、数据库设计4.1 用户表4.2 分公司表4.3 角色表4.4 数据字典表4.5 工程项目表4.6 使用材料表4.7 使用材料领用表4.8 整体E-R图 五、系统展示六、核心代码6.1 查询工程项目6.2 工程物资…

抖音涨粉技巧揭秘可靠吗是真的吗

抖音涨粉技巧揭秘&#xff1a;真实与可靠 在抖音这样一个火爆的短视频平台上&#xff0c;拥有大量粉丝已成为许多人的追求目标。因此&#xff0c;一些涨粉技巧被推广为能够快速增加粉丝数量的方法。然而&#xff0c;这些技巧到底可靠吗&#xff1f;我们一起来揭秘。 揭秘抖音涨…

Python打发无聊时光:13.用pywin32库制作电脑本地快捷应用

第一步&#xff1a;新建一个simple_app.py 装pywin32库 pip install pywin32 新建一个simple_app.py&#xff0c;复制下面代码&#xff0c;或者可以自己设计内容 import tkinter as tkclass AnimatedGUI:def __init__(self, root):self.root rootself.root.title("玩…

Python爬虫——Requests

目录 简介 基本使用​编辑 ​编辑 安装 一个类型和六个属性 请求类型 GET 代码示例 POST 代码示例 代理 古诗文网绕过验证码登录 总结 简介 Python的Requests库是一个用于发送HTTP请求的常用库。它提供了简单且人性化的API&#xff0c;使得发送HTTP请求变得非常容易。…

【嵌入式——QT】QTableWidget

表格小部件为应用程序提供标准的表格显示功能。QTableWidget中的项由QTableWidgetItem提供。 如果你想要一个使用你自己的数据模型的表&#xff0c;你应该使用QTableView而不是这个类。 常用函数 cellWidget(int row, int column) const&#xff1a;返回显示在给定行和列的单…

嵌入式 Linux 开发的基本概念 及 学习路线

原文链接&#xff1a;https://www.cnblogs.com/DSCC2020/p/13787321.html 1.嵌入式 Linux 开发的基本概念 1.1嵌入式 Linux 的组成 嵌入式 Linux 系统&#xff0c;就相当于一套完整的 PC 软件系统&#xff0c;如下图所示&#xff1a; 1.2嵌入式 Linux 的日常开发流程 Bootloa…