01.MySQL(SQL分类及使用)

news2024/9/23 21:23:45

注意:DML只是进行增删改,DQL才有查询

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

DDL

数据库操作:

1. 查询所有数据库

SHOW DATABASES;

2. 查询所处数据库

SELECT DATABASE();

3. 创建数据库

CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET 字符集] [COLLATE 排序规则];
--例:CREATE DATABASE test01 DEFAULT CHARSET utf8mb4;

4. 删除数据库

DROP DATABASE [IF EXISTS] 数据库名;

5. 使用

USE 数据库名;

表操作:

1. 查询当前数据库中所有表

SHOW TABLES;

2. 查询表结构

DESC 表名;

3. 查询指定表的建表语句

SHOW CREATE TABLE 表名;

4. 添加字段

ALTER TABLE 表名 ADD 字段名 类型(长度) [COMMENT 注释] [约束];

5. 修改字段类型

ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);

6. 修改字段名和字段类型

ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释] [约束];

7. 删除字段

ALTER TABLE 表名 DROP 字段名;

8. 修改表名

ALTER TABLE 表名 RENAME TO 新表名;

9. 创建表

CREATE TABLE 表名(
	字段1 字段1类型 [COMMENT 字段1注释],
    ...
    字段1 字段1类型 [COMMENT 字段1注释]
)[COMMENT 表注释];

10. 删除表

DROP TABLE [IF EXISTS] 表名;

11. 删除表中所有数据,删表后建表

TRUNCATE TABLE;

数据类型

分类类型大小有符号(SIGNED)范围无符号(UNSIGNED)范围描述
数值类型TINYINT1 byte(-128,127)(0,255)小整数值
SMALLINT2 bytes(-32768,32767)(0,65535)大整数值
MEDIUMINT3 bytes(-8388608,8388607)(0,16777215)大整数值
INT或INTEGER4 bytes(-2147483648,2147483647)(0,4294967295)大整数值
BIGINT8 bytes(-263 ,263-1)(0,264-1)极大整数值
FLOAT4bytes单精度浮点数值
DOUBLE8 bytes双精度浮点数值
DECIMAL依赖于M(精度)和D(标度)的值依赖于M(精度)和D(标度)的值小数值(精确点数)

在这里插入图片描述

日期类型注意timestamp 跟 datetime,它们表示的年份范围不同,其中timestamp会根据时区不同自动转换日期时间,而datetime则会保持不变。

date_timetime_stamp
2020-01-11 09:53:322020-01-11 09:53:32

现在我们运行

修改当前会话的时区:

set time_zone='+8:00';

再次查看数据:

date_timetime_stamp
2020-01-11 09:53:322020-01-11 17:53:32

性能

由于 TIMESTAMP 需要根据时区进行转换,所以从毫秒数转换到 TIMESTAMP 时,不仅要调用一个简单的函数,还要调用操作系统底层的系统函数。这个系统函数为了保证操作系统时区的一致性,需要进行加锁操作,这就降低了效率。

DATETIME 不涉及时区转换,所以不会有这个问题。

为了避免 TIMESTAMP 的时区转换问题,建议使用指定的时区,而不是依赖于操作系统时区。

# 查看当前会话时区
SELECT @@session.time_zone;
# 设置当前会话时区
SET time_zone = 'Europe/Helsinki';
SET time_zone = "+00:00";
# 数据库全局时区设置
SELECT @@global.time_zone;
# 设置全局时区
SET GLOBAL time_zone = '+8:00';
SET GLOBAL time_zone = 'Europe/Helsinki';

DML

DML:Data Manipulation Language(数据操作语言),用于对数据库表中表的数据记录进行增删改操作。

添加数据

  • 指定字段添加数据
INSERT INTO 表名 (字段名1,字段名2,...) values (1,值2...); 
  • 给全部字段添加数据
INSERT INTO 表名 VALUES (1,2,...);
  • 批量添加数据
INSERT INTO 表名  (字段名1,字段名2,...) values (1,2,...),(1,2,...);

注意:字符串和日期类型数据应该包含在括号中。

更新数据

UPDATE 表名 SET 字段名1 =1,字段名2 =2,...[WHERE 条件]; 

注意:条件可以有也可以没有,没有就是修改整张表的所有数据。

删除数据

DELETE FROM 表名 [WHERE 条件];

注意:DELETE不设置条件删除整张表,DELETE不能删除某个字段,但可以使用UPDATE

DQL

在这里插入图片描述

基本查询

  • 多字段查询
SELECT 字段1,字段2... FROM 表名;
  • 全部字段查询
SELECT * FROM 表名;
  • 设置别名
SELECT 字段1 [AS 别名1],字段2 [AS 别名1]... FROM 表名;
  • 去除重复记录
SELECT DISTINCT 字段列表 FROM 表名;

查询的字段列表数据完全一致为重复。

条件查询

SELECT 字段列表 FROM 表名 WHERE 条件列表;

条件:

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

查询姓名为两个字的员工信息

SELECT * FROM emp WHERE emp_name LIKE '__';

查询身份证最后一位为X的员工信息

SELECT * FROM emp WHERE idcare LIKE '%X';

聚合函数

SELECT 聚合函数(字段列表) FROM 表名;
函数功能
count统计数量
max最大值
min最小值
avg平均值
sum求和
SELECT 字段列表 FROM 表名 [WHERE 条件] GROUP BY 分组字段名  [HAVING 分组后过滤条件];

where与having条件:

  • 执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。
  • 判断条件不同:where不能对聚合函数进行判断,而having可以。

注意:

  • 执行顺序:where > 聚合函数 > having。

  • 分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义。

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

SELECT workaddress FROM emp WHERE age < 45 GROUP BY workaddress HAVING COUNT(*) >= 3;

排序查询

SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式,字段2 排序方式

排序方式

  • ASC:升序(默认值)
  • DESC:降序

注意:如果是多字段排序,当第一个字段值相同时才会根据第二个字段排序。

分页查询

SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询记录数; 

执行顺序

在这里插入图片描述

DCL

管理用户

  • 查询用户【用于查询有哪些用户对当前数据库管理系统有哪些权限】
USE mysql;
SELECT * FROM user;
  • 创建用户【表示创建的用户能访问数据库管理系统,并没有权限访问数据库,需要授权】
create user '用户名'@'主机名' identified by '密码';

主机名:使用localhost时表示只能在本机访问,可以使用%表示任意主机都可访问,例如可以进行远程连接。

  • 修改用户密码
alter user '用户名'@'主机名' identified with mysql_native_password by '新密码';
  • 删除用户
drop user '用户名'@'主机名';

权限管理

  • 查询权限
SHOW GRANTS FOR '用户名'@'主机名'
  • 授予权限
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';
  • 撤销权限
REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';

权限列表

MySQL中定义了很多种权限,但是常用的就以下几种:

权限说明
ALL,ALL PRIVILEGES所有权限
SELECT查询数据
INSERT插入数据
UPDATE修改数据
DELETE删除数据
ALTER修改表
DROP删除数据库/表/视图
CREATE创建数据库/表

注意:

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

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

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

相关文章

vue3的getCurrentInstance获取组件实例踩坑记录

一、getCurrentInstance基本用法 我们可以通过 getCurrentInstance这个函数来返回当前组件的实例对象,也就是当前vue这个实例对象 Vue2中&#xff0c;可以通过this来获取当前组件实例&#xff1b; Vue3中&#xff0c;在setup中无法通过this获取组件实例&#xff0c;console.lo…

ElasticSearch中关于Nasted嵌套查询的介绍:生动案例,通俗易懂,彻底吸收

题注&#xff1a;随着对ES接触的越来越深入&#xff0c;发现此前了解的ES知识点有点单薄&#xff0c;特此寻来ES知识点汇总成的一个思维导图&#xff0c;全面了解自己掌握了哪些&#xff0c;未掌握哪些。此外&#xff0c;作者斌并没有足够的精力学习ES全部的知识点&#xff0c;…

1024程序员节,飞桨星河社区开发者们一起闯关升级、玩转Prompt应用赢大奖~

1024&#xff0c;是属于每一位程序员/程序媛的节日~ 今年&#xff0c;飞桨给星河社区的开发者们也准备了“超级码力 碰撞未来”系列活动&#xff0c;和大家沉浸式玩转闯关冒险。 冲榜单 零代码打造爆款Prompt应用 飞桨AI Studio星河社区上线新版文心一言专区&#xff0c;帮助…

代码随想录算法训练营第三十三天 | LeetCode 1005. K 次取反后最大化的数组和、134. 加油站、135. 分发糖果

代码随想录算法训练营第三十三天 | LeetCode 1005. K 次取反后最大化的数组和、134. 加油站、135. 分发糖果 文章链接&#xff1a;K次取反后最大化的数组和 加油站 分发糖果 视频链接&#xff1a;K次取反后最大化的数组和 加油站 分发糖果 目录 代…

STM TIM(二)输出比较

STM TIM&#xff08;二&#xff09;输出比较 输出比较简介 OC&#xff08;Output Compare&#xff09;输出比较 输出比较可以通过比较CNT&#xff08;CNT计数器&#xff09;与CCR寄存器&#xff08;捕获/比较寄存器&#xff09;值的关系&#xff0c;来对输出电平进行置1、置0…

Camtasia2024中文免费版电脑录屏软件

真的要被录屏软件给搞疯了&#xff0c;本来公司说要给新人做个培训视频&#xff0c;想着把视频录屏一下&#xff0c;然后简单的剪辑一下就可以了。可谁知道录屏软件坑这么多&#xff0c;弄来弄去头都秃了&#xff0c;不过在头秃了几天之后&#xff0c;终于让我发现了一个值得“…

如何理解Go言中的Context?

目前看过除了《go语言程序设计》以外最好的教程&#xff1a;https://www.practical-go-lessons.com 原文&#xff1a;https://www.practical-go-lessons.com/chap-37-context 你将在本章中学到什么&#xff1f; 1.什么是上下文&#xff1f; 2.什么是链表&#xff1f; 3.如何…

DAOS学习笔记及思考

DAOS带来的思考 根据daos docs的描述&#xff0c;DAOS是Intel基于NVMe全新设计开发并开源的异步对象存储&#xff0c;充分利用下一代NVMe技术的优势&#xff0c;对外提供KV存储接口&#xff0c;提供非阻塞事物I/O&#xff0c;端到端完整性&#xff0c;细粒度的数据控制&#x…

班级信息收集小程序

老师们&#xff01;这里有一个超级实用的班级信息收集小程序&#xff0c;让你告别繁琐的手动记录成绩&#xff0c;轻松实现学生自助查询成绩&#xff01;是不是很期待&#xff1f; 什么是成绩查询系统&#xff1f; 成绩查询系统是一种基于互联网和数据库技术的应用程序&#x…

基于springboot+vue实现MOBA类游戏攻略平台项目【项目源码+论文说明】

基于springbootvue实现MOBA类游戏攻略平台 摘要 随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理系统应运而生&a…

HTML5+CSS3+JS小实例:打散文字随机浮动特效

实例:打散文字随机浮动特效 技术栈:HTML+CSS+JS 效果: 源码: 【HTML+JS】 <!DOCTYPE html> <html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta name="viewport" conte…

SRS Config 二 Stream Caster

SRS StreamCaster 1 官网简介 Stream Converter侦听特殊的TCP/UDP端口&#xff0c;接受客户端连接和媒体流&#xff0c;并转成RTMP流&#xff0c;推送给SRS。 简单来说&#xff0c;它将其他流转成RTMP流&#xff0c;工作流如下&#xff1a; Client ---PUSH--> Stream Co…

微信小程序云开发笔记-初始化商城小程序

一 下载小程序工具 下载地址 二 创建小程序 三 初始化小程序 1 把cloudfunctions文件夹内所有文件删除 2 把miniprogram\components下所有文件删除 3 pages文件夹里面只保留index文件夹&#xff0c;其他都删除并修改index文件夹下文件 index.js 把数据清空&#xff0c;只保…

GEAR框架: Tractian的敏捷工程文化

GEAR(齿轮)框架是工业初创公司TRACTIAN提出的敏捷开发框架&#xff0c;强调一切以人为中心&#xff0c;客户需求为最高优先级&#xff0c;互动胜于流程的开发文化。原文: The GEAR Framework — Tractian’s Agile Engineering Culture GEAR框架&#xff0c;由TRACTIAN和Pietro…

国外调查问卷项目赚美金是真的吗?

大家好&#xff0c;我是橙河网络&#xff0c;一家问卷公司老板&#xff0c;这几年国外问卷这个项目比较火热&#xff0c;很多人都靠这个项目赚的盆满钵满&#xff0c;这篇文章就详细介绍一下国外调查问卷项目赚美金是真的吗&#xff1f; 国外问卷调查是一种付费的市场调研方法…

「Java开发指南」如何在MyEclipse中使用JPA和Spring管理事务?(二)

本教程中介绍一些基于JPA/ spring的特性&#xff0c;重点介绍JPA-Spring集成以及如何利用这些功能。您将学习如何&#xff1a; 为JPA和Spring设置一个项目逆向工程数据库表来生成实体实现创建、检索、编辑和删除功能启用容器管理的事务 在上文中&#xff08;点击这里回顾>…

ST 2.0 霍尔FOC 的相关难点总结

文章目录 HALL_Init_Electrical_Angle()Clark 变换获取电流park 变换 , 逆park变换逆park变换的幅度限制扇区计算 https://www.zhihu.com/people/Temo/posts每个相位的执行时间计算 &#xff08;如果自己记录的不够清楚&#xff0c;可以打开同目录。资源文件目录下的&#xff1…

【vue3】依赖注 provide、inject(父组件与儿子、孙子、曾孙子组件之间的传值)

一、基本用法&#xff1a; //父组件 import { ref, provide } from vue const radio ref<string>(red) provide(myColor,radio) //注入依赖//儿子组件、孙子组件、曾孙子组件 import { inject } from vue import type { Ref } from vue; const myColor inject<Ref&l…

保护云数据安全的关键环节是什么?

云数据安全是维护数据隐私和保护关键信息的关键一环。在云中存储和处理数据提供了巨大的便利性和效率&#xff0c;但同时也伴随着风险。本文将介绍保护云数据的关键环节是什么! 1、数据加密&#xff1a;在传输和存储数据时使用强加密是保护数据的基本步骤。确保数据在云中存储时…

C++类与对象,构造函数,析构函数,拷贝构造函数

C类与对象&#xff0c;构造函数&#xff0c;析构函数&#xff0c;拷贝构造函数 1. 类的6个默认成员对象2. 构造函数2.1 概念2.2 特性 3. 析构函数3.1 概念3.2 特性 4. 拷贝构造函数4.1 概念4.2 特性 所属专栏&#xff1a;C“嘎嘎" 系统学习❤️ &#x1f680; >博主首页…