MySQL基础(二)SQL语句

目录

前言

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

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

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

相关文章

【Java基础教程】(四十六)IO篇 · 下:System类对IO的支持:错误输出、信息输出、系统输入,字符缓冲流、扫描流和对象序列化流~

Java基础教程之IO操作 下 &#x1f539;本节学习目标1️⃣ System类对 IO 的支持1.1 错误输出&#xff1a;System.err1.2 信息输出&#xff1a;System.out1.3 系统输入&#xff1a;System. in 2️⃣ 字符缓冲流&#xff1a;BufferedReader3️⃣ 扫描流&#xff1a;Scanner4️⃣…

Python - Opencv应用实例之树叶自动分割、标签及统计分析系统

Python - Opencv应用实例之树叶自动分割、标签及统计分析系统 本文通过Python+opencv 实现这样的需求:输出位置和角度(x, y, r),并标记出轮廓基于传统图像处理算法实现,算法原理:输入图像 -> 灰度化 -> 二值化 -> 形态学处理 -> 轮廓提取 -> 树叶中心定位 -…

matlab二维图形的绘制(1)

概述 matlab数学计算中有时候需要将函数通过图形更加直观的展示给用户的时候就需要使用到二维绘图。绘图常常采用的绘图命令便是 plot &#xff0c;再添加一些辅助命令使得图形更加的形象直观。 二维绘图中也包括针状图&#xff0c;阶梯图&#xff0c;散点图&#xff0c;条形图…

解决行业反复“造轮子”现象,全新地平线RDK系列机器人开发者套件上线

7月25日&#xff0c;“地平线2023机器人开发者创享日”在深圳举办&#xff0c;地平线RDK系列机器人开发者套件正式上线&#xff0c;机器人操作系统TogetheROS.Bot™2.0版发布&#xff0c;应用中心NodeHub首发亮相&#xff0c;地平线开发者社区改版上线。 地平线2023机器人开发者…

文件读写流函数

文件 文件读写 链接 std::ifstream---std::ofstream 头文件--#include <fstream> 执行都是类&#xff0c;用这些类操作文件都要建立对象流。 1&#xff0c;建立对象流 流对象的建立有两种方式&#xff1a; &#xff08;1&#xff09;使用fstream类可以不指定文件和…

python+unittest+requests+HTMLRunner搭建接口测试框架,执行用例请求多个不同请求方式的接口

问题描述&#xff1a; 搭建接口测试框架&#xff0c;执行用例请求多个不同请求方式的接口 实现步骤&#xff1a; ① 创建配置文件config.ini&#xff0c;写入部分公用参数&#xff0c;如接口的基本url、测试报告文件路径、测试数据文件路径等配置项 1 [DATABASE] 2 data_add…

深入解析 Kubernetes 架构:掌握主节点、工作节点和容器运行时

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

级联下拉单选框的实现

需求背景 选择某个城市&#xff0c;所在区县与所选城市要一一对应。 开发思路 因为单选框使用的是公共组件&#xff0c;获取的val是“深圳市”&#xff0c;而不是索引&#xff0c;那么可以 先判断出选择的城市的索引值&#xff1b;由此所在区县的下拉框的数据直接由所获的索…

android studio JNI开发

一、JNI的作用&#xff1a; 1.使Java与本地其他类型语言&#xff08;C、C&#xff09;交互&#xff1b; 2.在Java代码调用C、C等语言的代码 或者 C、C调用Java代码。 由于JAVA具有跨平台的特点&#xff0c;所以JAVA与本地代码的交互能力弱&#xff0c;采用JNI特性可以增强JA…

HMM与CRF模型的使用过程有哪些差异?

在NLP领域, HMM用来解决文本序列标注问题. 如分词, 词性标注, 命名实体识别都可以看作是序列标注问题。同HMM一样, CRF一般也以文本序列数据为输入, 以该序列对应的隐含序列为输出。 HMM模型 HMM模型表示为: lambda HMM(A, B, pi), 其中A, B, pi都是模型的参数, 分别称作: 转…

超详细-Vivado配置Sublime+Sublime实现Verilog语法实时检查

目录 一、前言 二、准备工作 三、Vivado配置Sublime 3.1 Vivado配置Sublime 3.2 环境变量添加 3.3 环境变量验证 3.4 Vivado设置 3.5 配置验证 3.6 解决Vivado配置失败问题 四、Sublime配置 4.1 Sublime安装Package Control 4.2 Sublime安装Verilog插件 4.3 安装语…

Vue中TodoList案例_编辑

nextTick: MyItem.vue 加一个编辑按钮&#xff0c;input框&#xff1a;blur失去焦点时触发事件handleBlur&#xff0c;ref获取真实dom&#xff1a; <inputtype"text"v-show"todo.isEdit":value"todo.title"blur"handleBlur(todo,$even…

外贸找客户工具之邮件群发:MaxBulk Bulk Mailer Pro 9.5

MaxBulk Bulk Mailer Pro 是一款快速的批量邮件软件&#xff0c;旨在帮助在一次操作中向大量电子邮件 ID 发送批量电子邮件。直接将电子邮件发送到收件箱而不是垃圾邮件。该工具的目的是使批量电子邮件处理过程快速而精确&#xff0c;并且它配备了很多高级功能来实现此目的。用…

VSCode同时编译多个C文件

一.环境说明 1.系统&#xff1a;Ubuntu 22.04.2 LTS 2.Visual Studio Code: 1.80.1 二.问题描述 今天使用VSCode编译《Programming Abstractions In C》书中的gymjudge.c代码时遇到错误&#xff0c;错误提示为&#xff1a; (base) codistspc:~/projects/Programming-Abstracti…

Redis【实践篇】之RedisTemplate基本操作

Redis 从入门到精通【应用篇】之RedisTemplate详解 文章目录 Redis 从入门到精通【应用篇】之RedisTemplate详解0. 前言1. RedisTemplate 方法1. 设置RedisTemplate的序列化方式2. RedisTemplate的基本操作 2. 源码浅析2.1. 构造方法2.2. 序列化方式2.3. RedisTemplate的操作方…

PGembedding 代码分析

pgembedding 存储结构 pg embedding 数据是存在共享内存中的&#xff0c;pg down 之后索引数据就没了&#xff0c;但索引对象本身还在&#xff0c;第一次访问时会重新创建。 数据以 plain 的形式存储&#xff0c;其中每个点是这样的结构&#xff1a; idx_size&#xff1a; 表…

继承-菱形继承

继承 继承是类设计层次的复用 继承方式与访问限定符 限定了啥&#xff1f; 1.根据表中我们可以看到 基类的私有成员在子类不可见&#xff0c;但还是被继承了下来 2.根据继承方式和成员在基类的访问限定符小的那个来决定了子类访问基类成员的访问方式 例如如果是public继承&a…

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…

图像处理之canny边缘检测(非极大值抑制和高低阈值)

Canny 边缘检测方法 Canny算子是John F.Canny 大佬在1986年在其发表的论文 《Canny J. A computational approach to edge detection [J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1986 (6): 679-698.》提出来的。 检测目标&#xff1a; 低错误率…

Python实现抽象工厂模式

抽象工厂模式是一种创建型设计模式&#xff0c;用于创建一系列相关或依赖对象的家族&#xff0c;而无需指定具体类。在Python中&#xff0c;可以通过类和接口的组合来实现抽象工厂模式。 下面是一个简单的Python实现抽象工厂模式的示例&#xff1a; # 抽象产品接口 class Abs…