MySQL基础(二)SQL语句

news2024/12/22 15:25:46

目录

前言

一、SQL语句类型

二、数据库操作

查看

创建

进入

删除

更改

三、数据表操作

(一)、数据类型

1.数值类型

2.时间\日期类型

3.字符串类型

4.二进制类型

(二)、查看

1.查看表内的数据

2.查看表格的属性

(三)、创建

1.写在列之后,声明列的字符集

2.写在表之后,声明表的字符集

(四)、删除

1.删除数据表

2.删除数据表数据,但是保留表结构

(五)、更改

1.表

2.列

四、数据操作

(一)、增

(二)、删

(三)、改

(四)、查

1.所有

2.条件

(五)、查询数据(查)

1.单表查询

2.多表查询

总结



前言

SQL是Structured Query Language的缩写,意思是结构化查询语言,是一种在数据库管理系统(Relational Database Management System, RDBMS)中查询数据,或通过RDBMS对数据库中的数据进行更改的语言。


一、SQL语句类型

SQL语句类型
    DDL
        DDL(Data Definition Language,数据定义语言):用于定义数据库中的各种对象,包括数据库、表、视图、触发器等,常见的 DDL 命令有 CREATE、ALTER、DROP

    DML
        DML(Data Manipulation Language,数据操作语言):用于操作表格中的数据,进行新增、查询、更新、删除等操作,常见的 DML 命令有 SELECT、INSERT、UPDATE、DELETE
  

    DCL
        DCL(Data Control Language,数据控制语言):用于管理数据库的权限和安全性,包括授权、回收权限等操作,常见的 DCL 命令有 GRANT、REVOKE

    DQL

        DQL(Data Query Language,数据查询语言)是 SQL 的一个子集,主要用于查询数据库中的数据,常见的 DQL 命令包括 SELECT

二、数据库操作

查看

 show databases;

 

创建

默认字符集
        create database 数据库名称;
            默认是latin1

指定字符集
        create database 数据库名称 character set utf8;
            使用uft8格式的字符集

进入

 use 数据库名称;

删除

 drop database 数据库名称;

 

更改

库名称
        进入到数据库的目录中修改数据库的名称(/var/lib/musql修改数据库不影响后续操作,若修改数据表,数据表会无法查看

 字符集
        ALTER DATABASE <database_name> CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

 

 

 

三、数据表操作

(一)、数据类型

1.数值类型

TINYINT
    1个字节,范围为 -128 到 127(有符号)或 0 到 255(无符号)
        可以使用 TINYINT UNSIGNED 来存储年龄(无符号)或温度(有符号)等小数值

SMALLINT
    2个字节,范围为 -32,768 到 32,767(有符号)或 0 到 65,535(无符号)
        可以使用 SMALLINT 存储商品数量, 或者使用 SMALLINT UNSIGNED 存储区域编号(无符号)

BIGINT
    8个字节
        存储很大的数值,例如资金、人口等

FLOAT(M,D)
    单精度浮点数,M是总位数,D是小数位数
        可以使用 FLOAT(8,2) 来存储商品的价格

2.时间\日期类型

DATE
    用来存储日期,格式为’YYYY-MM-DD’
        可以使用 DATE 存储出生日期或者过期日期等

INT
     4个字节,范围为 -2,147,483,648 到 2,147,483,647(有符号)或 0 到 4,294,967,295(无符号)
        这是最常用的整数类型,它可以被用于许多方面,例如存储订单号或者用户的数量
 

TIME
    用来存储时间,格式为’HH:MM:SS’
        可以使用 TIME 存储过去一段时间内花费的小时数,分钟数或秒数等

DATETIME
    用来存储日期和时间,格式为’YYYY-MM-DD HH:MM:SS’
        可以使用 DATETIME 存储订单时间或者统计报告生成时间等

TIMESTAMP
    用来存储日期和时间,通常被用于记录特定事件的时间戳。使用UNIX的日期和时间格式,从1970年1月1日午夜开始计算
        可以使用 TIMESTAMP 存储用户上次登录的时间戳

3.字符串类型

CHAR
    用来存储定长字符串,最大长度为255个字符
        可以使用 CHAR(10) 存储用户的性别、婚姻状况等数据

VARCHAR
    用来存储可变长度字符串,最大长度为65535个字符
        可以使用 VARCHAR(255) 存储用户输入的文本内容、地址等数据

TEXT
    用来存储大型字符数据,最大长度为2^16-1个字符
        可以使用 TEXT 存储文章、评论等大型文本数据

4.二进制类型

BINARY
    用来存储固定长度二进制数据,最大长度为255个字节
        可以使用 BINARY(16) 存储UUID

VARBINARY
    用来存储可变长度二进制数据,最大长度为65535个字节
        可以使用 VARBINARY(256) 存储不定长度的二进制数据,例如图片和音频等文件

BLOB

用来存储大型二进制对象数据,最大长度为2^16-1个字节
    可以使用 BLOB 存储音视频等媒体文件

(二)、查看

1.查看表内的数据

select * from tables_name;
select column1,column2 from tables_name where 条件;

 

 

 

2.查看表格的属性

describe tables_name;

 

(三)、创建

character set utf8mb4 collate utf8mb4_unicode_ci

1.写在列之后,声明列的字符集

create table tables_name(
    第一列 类型属性,
    第二列 类型属性 character set utf8mb4 collate utf8mb4_unicode_ci,
    ......
);

 

2.写在表之后,声明表的字符集

create table tables_name(
    第一列 类型属性,
    第二列 类型属性,
    ......
) character set utf8mb4 collate utf8mb4_unicode_ci;

 

 

(四)、删除

1.删除数据表

drop table tables_name;

 

2.删除数据表数据,但是保留表结构

delete from tables_name;

 

(五)、更改

1.表

名称:alter table old_table_name rename to new_table_name;

字符集

alter table my_table convert to character set utf8mb4 collate utf8mb4_unicode_ci;

注意事项:如果现在的表正在被其他表或程序应用,那么可能会导致无法正常引用。

 

2.列

名称:alter table table_name change old_name new_name 属性;

属性:alter table my_table modify 修改的列  修改的属性;

字符集

alter table  users modify name varchar(50) character set utf8mb4;

 

 

 

 

 

四、数据操作

(一)、增

insert into table_name (column1, column2, ...) values (value1, value2, ...);

 

(二)、删

delete from table_name where 条件;

 

(三)、改

update table_name set column1 = value1, column2 = value2, ... where 条件;

 

(四)、查

1.所有

select * from tables_name;

 

2.条件

select column1,column2 from tables_name where 条件;

 

(五)、查询数据(查)

1.单表查询

(1)全表查询

在查询中没有指定任何的限制条件,会返回整张表的所有行

(2)条件查询

条件表达式(通常跟在where子句之后使用)

运算符
    等于=
    不等于!=或<>
    大于>
    大于等于>=
    小于<
    小于等于<=
    between
        BETWEEN运算符用于表示在一个范围内的值,AND
    in
        IN运算符用于比较一个表达式是否与一组表达式中的任意一个相匹配

 

 

 

通配符
    %
        %通配符匹配任意数量(包括0个)的字符
    _
        _通配符匹配一个任意字符

 

查询类型

where子句
    查询时,指定要返回符合条件的行,后面跟条件

排序查询
    排序查询是通过SQL查询语句将所查询的结果按照指定的排序方式排列
        升序(默认)
            ASC
        降序
            DESC


select * from test order by colume1;

select * from test order by colume1 DESC, colume2 ASC;

分组查询
    主要用于统计分析,生成对应报表
    count(*)函数用于统计出现过的记录总和
    group by用于按照特定字段进行分组
    select class, count(*) from test group by class;

去重查询
    用于从结果集中删除重复的行,只返回不同的值
    select distinct colume1 from test;
    如果查询多个列,则会显示两列的组合,每个组合只会出现一次

分页查询
    用于在SQL语句中限制返回数据的条数该技术可用于显示诸如Web页面之类的大量数据
    limit    表示要返回的记录数
    offset    表示查询结果的起始位置或查询结果的偏移量
    select * from test limit 10 offset 10;

子查询
    在一个SQL语句中嵌套使用另一个完整的SQL查询语句。子查询通常用作主查询的查询条件或结果过滤条件,以及用于提供主查询需要的一些数据
    select * from test where age > (select avg(age) from test);

2.多表查询

内连接查询
    SELECT *
FROM table1
INNER JOIN table2
ON table1.column1 = table2.column2;

外连接查询
    左外连接查询
        SELECT *
FROM table1
LEFT JOIN table2
ON table1.column1 = table2.column2;


    右外连接查询
        SELECT *
FROM table1
RIGHT JOIN table2
ON table1.column1 = table2.column2;


总结

今天的SQL语句是数据库内容里比较重要的,包含了数据库、数据表、数据的修改,是未来工作上操作的一部分,要花费大量的时间背记与练习才能游刃有余。

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

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

相关文章

为什么 Splashtop 比 Apple Remote Desktop 更好用

Mac 电脑每年销量高达2000万台&#xff0c;可见在个人和专业计算领域 Mac 都越来越受欢迎。同样&#xff0c;由于人们在访问计算机的时间和地点方面需要更多灵活性&#xff0c;远程桌面软件的使用量也不断增长。 这就是为什么 Mac 原生应用 Apple Remote Desktop 深受苹果产品…

stm32通过ESP8266接入原子云

1. ESP8266模块需要烧录原子云固件&#xff0c;此原子云固件和正常的ESP8266固件相比添加了ATATKCLDSTA 和 ATATKCLDCLS 这两条指令&#xff1a; 2. 原子云账号注册及设备建立 设备管理-新增设备-ESP8266 新建设备后新建分组&#xff0c;将设备加入到此分组中&#xff1a; 至此…

Android 之 Canvas API 详解 (Part 1)

本节引言&#xff1a; 前面我们花了13小节详细地讲解了Android中Paint类大部分常用的API&#xff0c;本节开始我们来讲解 Canvas(画板)的一些常用API&#xff0c;我们在 8.3.1 三个绘图工具类详解中已经列出了我们可供调用的一些方法&#xff0c;我们分下类&#xff1a; drawX…

Vue3文本域(Textarea)

APIs 参数说明类型默认值必传width文本域宽度string | number‘100%’falseallowClear可以点击清除图标删除内容booleanfalsefalseautoSize自适应内容高度boolean | {minRows?: number, maxRows?: number}falsefalsedisabled是否禁用booleanfalsefalsemaxlength最大长度numb…

从数据出发看2023年Q2越南TikTok市场

在东南亚捞金的洪流中&#xff0c;人口基数大、人均客单消费高的国家&#xff0c;会率先受到中国跨境商家的青睐。在这两方面&#xff0c;越南似乎都不占优势&#xff0c;以致它成为早期东南亚电商巨头Shopee、Lazada的 “遗珠”。但今天越南电商又是另外一番景象&#xff1a;S…

LLM - Chinese-Llama-2-7b 初体验

目录 一.引言 二.模型下载 三.快速测试 四.训练数据 五.总结 一.引言 自打 LLama-2 发布后就一直在等大佬们发布 LLama-2 的适配中文版&#xff0c;也是这几天蹲到了一版由 LinkSoul 发布的 Chinese-Llama-2-7b&#xff0c;其共发布了一个常规版本和一个 4-bit 的量化版本…

.360勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复

引言&#xff1a; 近年来&#xff0c;随着互联网的普及和信息技术的快速发展&#xff0c;网络安全问题日益严峻。其中&#xff0c;勒索病毒成为网络安全领域的一大威胁。本文91数据恢复将重点介绍一种名为“.360勒索病毒”的恶意软件&#xff0c;并探讨被该病毒加密的数据文件…

MyBatis学习之SQL查询

文章目录 resultMap结果映射使用resultMap结果映射是否开启驼峰命名自动映射 返回总记录条数 resultMap结果映射 使用resultMap结果映射 专门定义一个结果映射&#xff0c;在这个结果映射当中指定数据库表的字段名和Java类的属性名的对应关系type属性&#xff1a;用来指定POJ…

Redis 基础知识和核心概念解析:理解 Redis 的键值操作和过期策略

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

MCU全球生态发展大会|AT32 MCU加速应用创新与产业智慧升级

7月21日&#xff0c;由AspenCore主办的2023全球MCU生态发展大会在深圳罗湖君悦酒店圆满举行。本次活动聚集国际和本土知名MCU厂商的技术和应用专家&#xff0c;为来自消费电子、家电、工业控制、通信网络、新能源汽车和物联网领域的OEM厂商和方案集成商代表带来MCU领域的最新技…

Linux工具——vim

安装vim yum -y install vim 如果安装失败&#xff0c;提示Could not resolve host:mirrorlist.centos.org: Unkown error的问题&#xff0c;需要替换yum源&#xff0c;可以参考这个文章 配置vim root的vim配置文件在 /etc/vimrc 普通用户的vim配置文件在用户对应家目录下&a…

eNSP:简单使用acl进阶版

实验要求&#xff1a; 步骤一&#xff1a;配置IP地址 步骤二&#xff1a;配置IP地址&#xff1a; PC1: <Huawei>sys Enter system view, return user view with CtrlZ. [Huawei]sysname PC1 [PC1]int g 0/0/0 [PC1-GigabitEthernet0/0/0]ip add 192.168.1.1 24 Jul 25 …

通嵌入式岗位门槛不高,懂点C语言编程和单片机

搞个简单的电子产品&#xff0c;门槛很低&#xff0c;当然工资低。 门槛高的嵌入式岗位&#xff1a;例如大疆、华为、小米&#xff0c;英伟达、高通这类公司嵌入式岗位&#xff0c;还是有一定要求的。工资待遇也是和不联网不差的。我司的嵌入式开发人员&#xff0c;清北的硕士…

zookeeper-3.7.1集群

1.下载&解压安装包apache-zookeeper-3.7.1-bin.tar.gz 解压到/app/ &改名zookeeper-3.7.1 [rootnode1 app]# tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz -C /app/ [rootnode1 app]# mv apache-zookeeper-3.7.1-bin zookeeper-3.7.1 ---- 删除docs [rootnode1…

excel中单行换成多行

今天碰以下情况&#xff1a; 这在excel表中是在一个单元格&#xff0c;现在需要对其进行转换&#xff0c;将一个单元格换成多行 步骤&#xff1a; 1.删除换行符&#xff0c;添加一个逗号 2.选择数据-分列-分隔字符-逗号-确定 3.复制上述数据&#xff0c;选择性粘贴-转置 完…

基于LoRA进行Stable Diffusion的微调

文章目录 基于LoRA进行Stable Diffusion的微调数据集模型下载环境配置微调过程 基于LoRA进行Stable Diffusion的微调 数据集 本次微调使用的数据集为&#xff1a; LambdaLabs的Pokemon数据集 使用git clone命令下载数据集 git clone https://huggingface.co/datasets/lambd…

Android性能优化相关问题总结盘点~

以下是本人在工作中对经历过的性能优化的一些总结&#xff0c;依据故事的发展路线&#xff0c;将其分为了5个部分&#xff0c;分别是&#xff1a;常见的性能问题&#xff1b;产生性能问题的一些可能原因&#xff1b;解决性能问题的套路&#xff1b;代码建议及潜在性能问题排查项…

AtcoderABC232场

A - QQ solverA - QQ solver 题目大意 要求从一个长度为3的字符串中提取出两个整数a和b&#xff0c;字符串的格式是axb&#xff0c;其中a和b是介于1到9之间&#xff08;包括11和99&#xff09;的整数&#xff0c;计算它们的乘积。 思路分析 将字符类型转换为整数类型来提取出…

mysql进阶2——prosysql实现mysql读写分离

文章目录 一、读写分离方案类型1.1 最简单的读写分离1.2 多个读组或写组的分离模式 二、案例2.1 初始化操作2.2 mysql主添加proxysql连接用户2.3 Proxysql添加连接mysql集群参数2.4 添加健康检测用户2.5 添加读写分离的路由规则2.6 验证 一、读写分离方案类型 基本了解&#xf…

区分能带图

能带结构是目前采用第一性原理&#xff08;从头abinitio&#xff09;计算所得到的常用信息&#xff0c;可用来结合解释金属、半导体和绝缘体的区别。能带可分为价带、禁带和导带三部分&#xff0c;倒带和价带之间的空隙称为能隙。 如果能隙很小或为0 &#xff0c;则固体为金属…