首页 > 数据库 >MySQL的SQL语句

MySQL的SQL语句

时间:2023-12-11 09:55:06浏览次数:39  
标签:语句 ... SQL -- 列名 MySQL 查询 表名 select

数据库管理系统的层次

\(数据库\rightarrow表\rightarrow行列\)

DDL

DDL是data definition language的缩写数据定义语言,而其作用是在于对数据库和数据库中的表的创建的基本操作
这里的增删改查实际上是对于数据库,数据表本身的性质的一的增删改查
所以DDL是数据的数据库表和结构上的一种语言

数据库

数据库的创建

create database 数据库名;

数据库的查询

这里的查询是查询该环境的数据库名称有哪些

show databases;

数据库的删除

dorp database 数据库名字;

数据库的使用

use 数据库名;

可以查看当前使用的数据库名

select database();

数据表

创建数据表

create table 表名{
    列名1  数据类型 限制条件,
    列名2  数据类型 限制条件,
    ....  
    列名n  数据类型 限制条件
};

查看数据表

查看数据表可以是查看该数据库中所有表的名称,可以是表的结构

--查看该数据库中所有表的名称
show tables;
--查看表的结构
desc 表的名称

删除表

dorp table 表的名称;

修改表

那实际上在表中的重要的要素有哪些?
表名,列(column),对应列数据类型,由于我们此处探讨是DDL语言,行是具体的数据的时候重要,DDL语言更多是对于表的框架的修改

-- 修改表名
alter table 表名 rename 新的表名
--添加列
alter table 表名 add 列名 数据类型
--修改列的数据类型
alter table 表名 modify 列名 新的数据类型
-- 修改列的名字和数据类型
alter table 表名 change 列名 新列名 新的数据类型;
--删除列
alter table 表名 dorp 列名

DML

DML是data manipulation language的简称,这是在表里的数据细节上进行处理的语言
由于在数据细节上的查询有后面的专门的DQL语言进行,那么DML就只有对数据的增删改

对数据的增加

既然是增加那么就首先是在新的一行进行添加数据

--在新的一行的某几个列添加值
insert into 表名 (列1,列2,...) values(值1,值2,...);
--给该行全部列添加数据
insert into 表名 values(值1,值2,...);
--批量添加数据
insert into表名(列名1,列名2,...) values(值1,值2,...),(值1,值2,...),(值1,值2,...)...;
inert into表名 values(值1,值2,...),(值1,值2,...),(值1,值2,...)...;

修改数据

由于我们在一个很大的数据表里面去修改很少数据量,我们肯定要通过对一些关键字的条定位到该行,而列的定位就可以通过列名就好。

update 表名 set 列名1=值1,列名2=值2,...  where 定位行的条件;

删除数据

既然要删除不可能是对某一行的小数据进行删除,那必然是一行一行的删除,所以我们要一些条件去定位行

delete from 表名 where 定位行的条件

我们要注意在DML的修改和删除操作其实是很危险的操作,如果没有定位行的条件会对所有行进行操作

DQL

DQL是data query language 的缩写,而我们为什么要将数据查询语句进行一个单独划分,那么我们在对对于数据查询时候,我们往往要为了想达到我们想要的效果我们实际上就对我们的数据进行了简单的数据分析,这就增加了很多的板块来进行数据查询,而且除了对应一张表的分析和查询有的时候我们需要对多表进行查询

DQL的单一简单查询

基础查询

我们如果没有特别的要求或者只对列有要求,那么实际上我们是最好处理

--查询需要的字段1方式
select 列名1,列名2,...form 表名;
--全部的查询方式
select * from 表名
//实际上我们对于全部1查询我们喜欢把所有的列名列出,这更有利于我们的业务操作
--去除重复记录
select distinct 字段列表 from 表名
--起别名
as

条件查询

我们在查询时候,有的时候需要进行一些逻辑运算
那么我们此处就只用介绍一些不同于主流编程语言的一些判断语句
\( \begin{aligned} != \Leftrightarrow <> \\ and \Leftrightarrow \&\& \\ or \Leftrightarrow || \end{aligned} \)
betwen ... and... 可以是一个范围之间
in(10,20,30)相当于是对所需要的进行了列举
对于NULL 必须使用is 或者 not is
like 则涉及到了模糊查询

语法

select 查询字段 from 表名 where 条件列表

模糊查询的like关键子占位
- _占位一个字符
- %占位任意字符

排序查询

要使用到order by
ASE 升序排序 默认排序规则是ASE
DESC 降序排序

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

聚合函数排序

就是使用一些函数对于查询的列进行一些条件限制处理

select 聚合函数(列)  from 表;

NULL值是不会参与聚合函数的运算的;

分组查询

比如我想查询某一个类的,某一个聚合属性我就可以使用 group by;

selcet 类字段,聚合函数(属性字段) from 表 where 条件 group by 类字段 having 显示条件

where和 having 的区别
where是在分组前进行限定,不满足条件就不参与分组,having则是在分组后进行筛选不满足条件就不显示

约束

多关系查询的前置

关系的分类

查询方式

合并查询

这实际上是一种关系代数将两个表相同的列进行合并

--去重合并
select  * from 表1 union select * from 表2;
--不去重合并
select * from 表1 union all select * from 表2;

连接查询

连接查询是将两个表进行笛卡尔积操作,可以理解是将两个表的每一列进行排列组合。

select * from 表1,表2;

内连接查询

可以理解为在进行连接查询同是,通过对内外键的取并去除一些不需要的重复列,实际上最后需要的条件就是这个操作

-- 隐式内连接
select * from 表1,表2.... where 从表.外键=主表.主键;
--显式外连接
select * from 表1 inner jion 表2 on 条件

外连接查询

标签:语句,...,SQL,--,列名,MySQL,查询,表名,select
From: https://www.cnblogs.com/aihaotian/p/17893732.html

相关文章

  • MySQL 分组排序后 → 如何取前N条或倒数N条
    开心一刻晚上,老婆辅导女儿写语文作业填空题:春天来了,__绿了女儿:春天来了,爸爸绿了老婆一脸不悦地问道:你再说一遍,春天来了,什么玩意绿了?女儿:春天来了,爸爸绿了呀老婆很生气,但依旧温柔地问道:春天来了,爸爸怎么绿了呢女儿略带哭腔的说道:那冬天呢......
  • SQL Server 字段设自增的实现方法
    信铁寒胜实测:创建表是,在需要自增的字段,加上该SQL即可。“IDENTITY(1,1)”表示该字段从1开始自增,每次自增1。--------------------------------------------------正文------------------------------------------------------------------------------------------------------......
  • mysql数据库文件丢失恢复---惜分飞
    联系:手机/微信(+8617813235971)QQ(107644445)标题:mysql数据库文件丢失恢复作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]客户服务器重启,mysql相关数据文件丢失通过底层工具进行分析,无法正确恢复数据库名字,一个个单个ibd文件(......
  • 【数据库】sql server 中的sql语句--增删改查
    createdatabase学生gouse学生goCREATETABLEStudent(Snochar(7)PRIMARYKEY,Snamechar(10)NOTNULL,Ssexchar(2)check(ssexin('男','女')),Sagetinyint,Sdeptchar(20))CREATETABLECourse(Cn......
  • SQL SERVER 与ACCESS、EXCEL的数据转换
      熟悉SQLSERVER2000的数据库管理员都知道,其DTS可以进行数据的导入导出,其实,我们也可以使用Transact-SQL语句进行导入导出操作。在Transact-SQL语句中,我们主要使用OpenDataSource函数、OPENROWSET函数,关于函数的详细说明,请参考SQL联机帮助。利用下述方法,可以十分容易地实现SQL......
  • mysql中count函数的几种写法解析
    一、count(主键)innodb引擎会遍历整张表,把每一行的主键值都取出来返回给服务层,服务层拿到主键后直接按行进行计数累加二、count(特定字段)2.1没有notnull约束innodb引擎会遍历整张表,把每一行的字段值都取出来返回给服务层,服务层判断是否为null,不为null计数累加2.2有no......
  • mysql安装
    安装windwos服务初始化@echooffcd/D%~dp0setbasepath=%~dp0setservicename=MySQLcd%basepath%binechoinitializemysqld--initialize-insecureechoinstallservicemysqld--install%servicename%echostartmysqlnetstart%servicename%pause......
  • CentOS(7.6)环境下迁移Mysql(5.7)的data目录到指定位置
    第一步:关闭Mysql#关闭Mysql服务systemctlstopmysqld#查看Mysql服务状态ps-ef|grepmysql 第二步:创建新目录,并拷贝数据文件#创建data文件目录mkdir/data/mysql/data/#给mysql账号赋权chown-Rmysql:mysql/data/mysql/data/#拷贝数据到data文件下cp-a/var/lib/m......
  • Oracle查看和终止正在执行的SQL语句
    Oracle查看和终止正在执行的SQL语句--查询当前用户正在执行的SQL语句selecta.sid,a.serial#,a.paddr,a.machine,nvl(a.sql_id,a.prev_sql_id)sql_id,b.sql_text,b.sql_fulltext,b.executions,b.first_load_time,b.last_load_time,b.last_active_time,b.disk_reads,b.direct_wr......
  • mysql的锁机制运行原理是什么
    MySQL的锁机制是数据库管理系统用来协调多个并发事务对共享资源(例如数据库表)进行访问的一种方式。MySQL支持多种锁类型,包括共享锁和排它锁。以下是MySQL锁机制的一些基本原理:锁的类型:共享锁(SharedLock):多个事务可以同时持有共享锁,用于读取共享资源,不阻塞其他事务的共享锁。排它锁(E......