MySQL基础篇-基本sql语句

news2024/11/25 5:38:46

目录

1.SQL分类

2.SQL-DDL

2.1 数据库操作

查询

创建

删除

使用某个数据库

2.2 数据表操作

创建表

查询表

修改表

3.SQL-DML(增删改)

3.1 插入

3.2 修改

3.3 删除

4.SQL-DQL(查)

4.1 基础查询

4.2 条件查询

4.3 聚合函数查询

4.4 分组查询

4.5 排序查询

4.6 分页查询(MySql)

4.7.DQL执行顺序

5.SQL-DCL

5.1 用户管理

创建用户

修改密码

删除用户

5.2 用户权限

查询权限

授予权限

撤销权限


记录SQL数据库的学习笔记

1.SQL分类

基本分类如下表:

分类全称说明
DDLData Definition Language数据定义语言,用来定义数据库对象(数据库,表,字段)
DMLData Manipulation Language数据操作语言,用来对数据库中的数据进行增删改
DQLData Query Language数据查询语言,用来查询数据库中表的记录
DCLData Control Language数据控制语言,用来创建数据库用户,控制数据库的访问权限

2.SQL-DDL

2.1 数据库操作

查询

查询所有的数据库

show databases;

创建

创建数据库

create database cat;

这样就代表创建成功了

drop database if exists cat;

也可以这样创建数据库

检测是否有此数据库,有则创建,没有则不创建,且不会报错

create database if not exists cat;

删除

删除数据库

drop database cat;

为了不报错可以这样,删除不存在的数据库时

drop database if exists cat;

使用某个数据库

use cat;

查询正在使用的数据库

select database();

2.2 数据表操作

创建表

create table tb_user(
    id int comment '标号',
    name varchar(50),
    age int,
    gender varchar(1)
) comment '用户表';

comment 注释可选可不选

查询表

查询所有的数据库中的表

show tables;

查询具体的表结构

desc tb_user;

查询具体的建表语句,为了看清楚注释

show create table tb_user;

修改表

 添加字段

alter table tb_user add password varchar(50) comment '密码';

修改字段名和字段类型

alter table tb_user 旧字段名 新字段名 varchar(255);

删除字段

alter table tb_user drop username;

修改表名

 alter table 旧表名 rename to 新表名;

删除表

drop table if exists 表名;

删除表并重新创建该表(删除了所有的字段,需要重新创建)

truncate table 表名;

3.SQL-DML(增删改)

3.1 插入

插入数据(根据字段插入)

insert into tb_user (id, name, age, gender) values (1,'张三',10,'男');

全部插入,必须要有所有的字段,且需要根据顺序

insert into tb_user values (2,'李四',10,'男');

3.2 修改

where 后面代表条件(如果不带条件,则会影响所有的数据)

update tb_user set name = '王五' where id = 1;

3.3 删除

delete from tb_user where id = 1;

4.SQL-DQL(查)

4.1 基础查询

查询所有字段

select * from 表名;

查询指定字段

select name,id,gender from 表名;

查询指定字段并起别名

select workaddress as '工作地址' from 表名;

查询指定字段并做去重处理

select distinct workaddress as '工作地址' from 表名;

4.2 条件查询

可以携带的条件

比较运算符号功能
>        大于
>=大于等于
<小于
<=小于等于
=等于
<> 或 !=不等于
BETWEEN ... AND ...在某个范围之内(含最小值和最大值)
IN(...)在in之后的列表中的值,多选一
LINK 占位符模糊匹配('_'匹配单个字符,'%'匹配任意个字符)
IS NULL是NULL的字段
逻辑运算符功能
AND 或 &&并且(多个条件同时成立)
OR 或 ||或者(多个任意条件成立一个)
NOT 或 !

age小于20的所有数据

select * from emp where age < 20;

查询没有携带某个字段的数据

select * from emp where idcard is null;

配合not使用

select * from emp where idcard is not null;

between and 的使用(查询age在15--30的数据)

select * from emp where age between 15 and 30;

in的使用(下面二条命令得到的效果是一样的)

select * from emp where age=18 or age=20 or age=90;

select * from emp where age in(18,20,90);

模糊匹配(查询的name为3个字符的数据)

select * from emp where name like '___';

4.3 聚合函数查询

常见的聚合函数

函数名功能
count统计数量
max最大值   
min最小值
avg平均值
sum求和

语法:

select 聚合函数(字段列表) from 表名;

查询age<30的所有数据总和 

select count(*) from emp where age < 30;

查询平均年龄

select avg(age) from emp;

4.4 分组查询

语法

select 字段列表 from 表名 where 条件 group by 分组字段名 having 分组后过滤条件;

where与having区别:

执行时机不同: where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。

判断条件不同: where不能对聚合函数进行判断,而having可以。

根据性别分组,统计男性员工和女性员工的数量 

select gender,count(*) from emp group by  gender ;

 

根据性别分组,统计男性员工和女性员工的平均年龄 

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

查询年龄小于45的员工,并根据工作地址分组,获取员工数量大于等于3的工作地址

address_count是统计数量取得别名

select workaddress,count(*) address_count from emp where age < 45 group by workaddress having address_count >= 3;

4.5 排序查询

select 字段列表 from 表名 order by 字段1 排序方式1, 字段2 排序方式2;

升序排序 (asc) 默认

 根据年龄升序排序

select * from emp order by age;

降序排序

select * from emp order by age desc;

4.6 分页查询(MySql)

不同数据库可能字段会不一样

select 字段列表 from 表名 limit 起始索引,查询记录数;

查询前十条数据

select * from emp limit 0,10;

4.7.DQL执行顺序

①:from

②:where

③:group by,having

④:select

⑤:order by

⑥:limit

5.SQL-DCL

mysql数据库的user表在,mysql数据库下的user表中

5.1 用户管理

创建用户

刚创建的用户是没有任何权限的

只能在本机localhost访问

create user 'itcast'@'localhost' identified by '123456';

设置任意主机访问

create user 'itcast'@'%' identified by '123456';

修改密码

alter user 'itcast'@'localhost' identified with mysql_native_password by '123';

删除用户

drop user 'itcast'@'localhost';

5.2 用户权限

查询权限

show grants for 'root'@'localhost';

授予权限

给用户授予特定数据库的所有权限:

这将授予用户在指定数据库的所有权限,包括SELECT、INSERT、UPDATE、DELETE等。

GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';

给用户授予特定表的特定权限:

这将只授予用户在指定表中的SELECT和INSERT权限。

GRANT SELECT, INSERT ON database_name.table_name TO 'username'@'localhost';

给用户授予所有数据库的某些权限:

这将授予用户在所有数据库上执行CREATE、DROP和ALTER等操作的权限。

GRANT CREATE, DROP, ALTER ON *.* TO 'username'@'localhost';

给用户授予所有数据库的所有权限:

GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost';

撤销权限

撤销用户对特定数据库的所有权限:

这将撤销用户在指定数据库上的所有权限。

REVOKE ALL PRIVILEGES ON database_name.* FROM 'username'@'localhost';

撤销用户对特定表的特定权限:

这将撤销用户在指定表上的SELECT和INSERT权限。

REVOKE SELECT, INSERT ON database_name.table_name FROM 'username'@'localhost';

撤销用户对所有数据库的所有权限:

REVOKE ALL PRIVILEGES ON *.* FROM 'username'@'localhost';

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

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

相关文章

在EXCEL中构建加载项之创建加载项的目的及规范要求

【分享成果&#xff0c;随喜正能量】一句南无阿弥陀佛&#xff0c;本是释迦牟尼佛所证的无上正等正觉法&#xff0c;洒在娑婆世界的众生海中&#xff0c;只为末世众生能够以信愿之心抓住此救命稻草&#xff0c;要知道今世人此生的处境&#xff0c;可能只剩这道要么极乐要么三涂…

C++之 lambda表达式

lambda表达式 lambda表达式概念lambda表达式语法lambda表达式底层原理 lambda表达式概念 我们在以往需要对某些数据进行排序时&#xff0c;比如一个数组&#xff0c;我们就需要用到sort()函数&#xff1a; int main() {int arr[] { 3,1,2,4,8,7,5,9 };//升序sort(arr, arr …

day36-xml

1.xml 1.1概述【理解】 万维网联盟(W3C) 万维网联盟(W3C)创建于1994年&#xff0c;又称W3C理事会。1994年10月在麻省理工学院计算机科学实验室成立。 建立者&#xff1a; Tim Berners-Lee (蒂姆伯纳斯李)。 是Web技术领域最具权威和影响力的国际中立性技术标准机构。 到目前为…

使用 KerasCV YOLOv8 进行物体检测--附完整实现源码

YOLO 目标检测模型已应用于无数应用,从监控系统到自动驾驶车辆。但是,当在 KerasCV 框架下将 YOLOv8 的这种能力配对时会发生什么呢?最近,KerasCV 将著名的 YOLOv8 检测模型集成到其库中。在本文中,我们将探讨如何使用自定义数据集微调 YOLOv8。在此过程中,我们还将涵盖以…

wireshark of tshark tools v3.4.0版本 支持json

tshark(1) Install tshark (Wireshark) Ver.3.4.0 on CentOS7 --It must be "ps", "text", "pdml", "psml" or "fields". TCP 协议中的三次握手和四次挥手是 TCP 连接建立和关闭的过程。 三次握手 客户端向服务器发送 SYN…

Java自学(二)

目录 一、数组逆置&#xff08;临时变量法&#xff09; 二、基本类型和引用类型传参的区别 一、数组逆置&#xff08;临时变量法&#xff09; 二、基本类型和引用类型传参的区别 基本类型传参&#xff0c;形参一般不会改变实参。 形参是实参的一份数据拷贝&#xff0c;改变形…

Android12之解封装NuMediaExtractor::setDataSource过程(四十七)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药. 更多原创,欢迎关注:Android…

Python之网络协议

一、网络通信协议 国际标准化组织(ISO,即International Organization for Standardization)定义了网络通信协议的基本框架,被称为OSI(Open System Interconnect,即开放系统互联)模型。要制定通讯规则,内容会很多,比如要考虑A电脑如何找到B电脑,A电脑在发送信息给B电脑时…

十五、异常(3)

本章概要 捕获所有异常 多重捕获栈轨迹重新抛出异常精准的重新抛出异常异常链 捕获所有异常 可以只写一个异常处理程序来捕获所有类型的异常。通过捕获异常类型的基类 Exception&#xff0c;就可以做到这一点&#xff08;事实上还有其他的基类&#xff0c;但 Exception 是所…

中秋节快乐

中秋节快乐&#xff0c;国庆节快乐

61从零开始学Java之处理大数字相关的类有哪些?

作者&#xff1a;孙玉昌&#xff0c;昵称【一一哥】&#xff0c;另外【壹壹哥】也是我哦 千锋教育高级教研员、CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者 前言 我们知道&#xff0c;在现实世界里&#xff0c;实际上数字是有无穷个的&#xff0c;就比如0和1之间&a…

不同材质地下管线的地质雷达响应特征分析

不同材质地下管线的地质雷达响应特征分析 前言 建立了不同材质地下管线&#xff08;铸铁管线&#xff08;PEC&#xff09;、混凝土管线、PVC/PE管线&#xff09;的二维模型&#xff0c;进行二维地质雷达正演模拟&#xff0c;分析不同材质管线的地质雷达响应特征。 文章目录 …

[chrome devtools]Sources面板

Source面板左侧部分内容&#xff1a; 下面解释每一项&#xff1a; Page&#xff1a;显示当前页面所有已加载的资源Filesystem&#xff1a;将本地代码拖进来&#xff0c;作为一个workspace&#xff0c;可以直接在这里面编辑代码&#xff0c;然后页面就可以直接看到效果&#xf…

【计算机网络】详解TCP协议(上) TCP协议头结构 | ACK确认应答 | 超时重传机制

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 更多计算机网络知识专栏&#xff1a;计算机网络&#x1f525; 给大家跳段…

深入理解服务发现:从基础到实践

随着微服务架构的广泛应用&#xff0c;服务发现已经成为了一个不可或缺的组成部分。服务发现是微服务架构中的一个关键问题&#xff0c;它涉及到如何管理和协调在一个分布式系统中的大量服务。本文将深入探讨服务发现的基本概念、工作原理和实践应用。我们将首先介绍服务发现的…

怎么使用 Go 语言操作 Apache Doris

Apache Doris 是一个基于 MPP 架构的高性能、实时的分析型数据库&#xff0c;以极速易用的特点被人们所熟知&#xff0c;仅需亚秒级响应时间即可返回海量数据下的查询结果&#xff0c;不仅可以支持高并发的点查询场景&#xff0c;也能支持高吞吐的复杂分析场景。基于此&#xf…

为什么 Lettuce 会带来更长的故障时间?

作者&#xff1a;杨博东&#xff08;凡澈&#xff09; 本文详述了阿里云数据库 Tair/Redis 将使用长连接客户端在非预期故障宕机切换场景下的恢复时间从最初的 900s 降到 120s 再到 30s的优化过程&#xff0c;涉及产品优化&#xff0c;开源产品问题修复等诸多方面。 一、背景 …

【数据结构】排序算法(一)—>插入排序、希尔排序、选择排序、堆排序

&#x1f440;樊梓慕&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》 &#x1f31d;每一个不曾起舞的日子&#xff0c;都是对生命的辜负 目录 前言 1.直接插入排序 2.希尔排序 3.直接选择排…

力扣:112. 路径总和(Python3)

题目&#xff1a; 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径&#xff0c;这条路径上所有节点值相加等于目标和 targetSum 。如果存在&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 叶子节点…

用css画一个半圆弧(以小程序为例)

一、html结构 圆弧的html结构是 两个块级元素嵌套。 <View classNamewrap><View className"inner">{/* 图标下的内容 */}</View></View>二、css样式&#xff1a;原理是两个半圆叠在一起&#xff0c;就是一个半圆弧。那么&#xff0c;如何画一…