当前位置: 首页 > article >正文

SQL 常用语句

目录

我的测试环境

学习文档

进入数据库

基础通关测验

语句-- 查

展示数据库;

进入某个数据库;

展示表:

展示某个表   desc

查询整个表:

查询特定列:

范围查询

等于特定值

不等于

介于

特定字符查询 Like

关键字查询

字符长度查询

特定位置查询

AND  OR

排序

查找类似值

查询多个值

合并多表查询结果UNION

查询不同表中的不重复值;

查询某列空值/非空值

查询并计算

非空列的平均值

查询低于平均值的列值

Count 语句

查询某列非空值的值种类

查询某列非空值数量:

查询最大值:

查询最小值

列求和

某列的分组查询:

分组后对组名进行时筛选:having语句

某列以英文的大写查询

某列以英文的小写查询

查询多列  某一列小写/大写

查看某列中各个值的长度

查某个表的时间:

语句--增

创建表

在某个表中插入数据

数值取舍

语句--删

去除重复值

删除固定值

删除整个表

语句--改

改值  update


我的测试环境

MYSQL    :MySQL Server 8.0

Navicat

学习文档

SQL常用语句总结 - 知乎 (zhihu.com)

基础篇:数据库 SQL 入门教程-CSDN博客

SQL 教程 | 菜鸟教程

进入数据库

mysql -u root -p

基础通关测验

SQL 测验

语句-- 查

展示数据库;

show  databases;

进入某个数据库;

 use  test1022;

展示表:

展示某个表   desc

查询整个表:

select  * from person02;

查询特定列:

select name,email from person02;

语法重点:select  列名称,列名称  from 表名称;

范围查询

SELECT name FROM person02 WHERE name ='lisi';

SELECT address FROM person02 WHERE address ='beijing';

等于特定值

语法重点:

SELECT 列名称 FROM 表名称 WHERE 列 运算符 值;

不等于

下面的运算符可在 WHERE 子句中使用:

操作符

描述

=

等于

<>

不等于

>

大于

<

小于

>=

大于等于

<=

小于等于

BETWEEN

在某个范围内

LIKE

搜索某种模式

介于

SELECT 序号 from person02 where 序号 between 1 and 30;

语法重点:

SELECT 列名称   from 表名称  where 列名称  between 1 and 2;

SELECT 列名称   from 表名称  where 列名称 not between 1 and 2;

数字的时候前后都包括

 SELECT name from person02 where name between 'b' and 'd';

查询字符时包括前边的不包括后边的

特定字符查询 Like

关键字查询

SELECT * from person02 where name like 'lisi';

语法重点:

SELECT * from 表名称 where列名称  like 'lisi';

SELECT * from 表名称 where列名称  like 'li%';

语法重点:

SELECT * from 表名称 where列名称  like '%';  -匹配开头

SELECT * from 表名称 where列名称  like '%%';  -匹配特定字符

字符长度查询

语法重点:匹配特定长度

SELECT * from 表名称 where列名称  like '___';  -匹配特定长度的值  _是一个字符

特定位置查询

语法重点:匹配特定位置

SELECT * from 表名称 where列名称  like '___%';

SELECT * from person02 where name like '__s%';

AND  OR

语法重点:

SELECT * FROM 表名称 WHERE 列 运算符 值 AND 列 运算符 值;

select * from person02 where name = 'lisi' and 序号='5';

 语法重点:

SELECT * FROM 表名称 WHERE 列 运算符 值 OR 列 运算符 值;

select * from person02 where name = 'lisi' or name='aa';

排序

语法重点:

SELECT * FROM 表名称 ORDER BY 1,2 DESC;

默认排序为 ASC 升序,DESC 代表降序。

以字母顺序显示 某列 名称:

select *from  person02 order by address;

语法重点:

select *from  表名称 order by 列名称;

查找类似值

语法重点:

SELECT 列名/(*) FROM 表名称 WHERE 列名称 LIKE ;

select address from person02 where name like 'a%';

查询多个值

语法重点:

SELECT 列名/(*) FROM 表名称 WHERE 列名称 IN (1,2,3);

select * from person02 where address in ('shanghai','beijing');

合并多表查询结果UNION

语法重点:

UNION 语法:

SELECT 列名 FROM A

UNION

SELECT 列名 FROM B;

 UNION 操作符默认为选取不同的值。如果查询结果需要显示重复的值,请使用 UNION ALL

UNION ALL 语法:

SELECT 列名 FROM A

UNION ALL

SELECT 列名 FROM B;

查询不同表中的不重复值;

select * from 表1

UNION
select * from 表
2;

 

select * from user01 union select * from user02;

UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。

查询某列空值/非空值

语法重点:

select *  from person02 where 序号  is  null;

select *  from person02 where 序号  is  not null;

查询并计算

非空列的平均值

语法重点:

select avg(列名)  from 表名;

 select avg(phone)  from user01;

查询低于平均值的列值

语法重点:

select   * from  表名  where  列名字 < (select avg(列名字) from  );

select   * from  user01  where  phone < (select avg(phone) from  user01);

Count 语句

语法重点:

 select  count(*)  from 表名;

 select  count(*)  from person02;

查询某列非空值的值种类

语法重点:

SELECT COUNT(DISTINCT 列名) FROM 表名;

select  count(distinct address)  from  person02;

查询某列非空值数量:

语法重点:

SELECT COUNT(列名) FROM 表名;

select  count(address)  from person02;

查询最大值:

语法重点

select  max(列名)  from  表名;

select  max(phone)  from  user01;

查询最小值

语法重点

select  min(列名)  from  表名;

select  min(phone)  from  user01;

列求和

语法重点:

select  sum(列名)  from  表名;

select  sum(phone)  from  user01;

某列的分组查询:

语法重点:

SELECT 列名A, 统计函数(列名B) FROM 表名 WHERE 查询条件 GROUP BY 列名A;

select address,count(address)from  person02

    -> where address='beijing'

    -> group by address;

分组后对组名进行时筛选:having语句

语法重点:

SELECT 列名A, 统计函数(列名B)

FROM table_name

WHERE 查询条件

GROUP BY 列名A

HAVING 统计函数(列名B) 查询条件;

select name,count(phone)  from user01   where phone='10'  group by name  hav

ing sum(phone) >8;

 select lastname,count(phone)

    -> from user01

    -> where phone='10'

    -> group by lastname

    -> having sum(phone) >8;

某列以英文的大写查询

语法重点:

 select  upper(列名称)  from  表名称;

 select  upper(name)  from  person02;

注: 该查询不会影响源数据   单纯查的时候是这个现实

某列以英文的小写查询

语法重点:

select lower(列名) from 表名;

注: 该查询不会影响源数据   单纯查的时候是这个现实

查询多列  某一列小写/大写

语法重点:

select lower(列名称1),列名称2 from 表名称;

select upper(列名称1),列名称2 from 表名称;

 select upper(name),upper(address),email from person02;

查看某列中各个值的长度

语法重点:

 select  length(列名) from 表名;

 select  length(name) from person02;

查某个表的时间:

适用于 MySQL

select now();

语句--增

创建表

CREATE TABLE  user01

(

name  int,

LastName   int(255),

FirstName int(255),

email   int(255),

phone int(255)

);

也可写为 

CREATE TABLE  user02

(name  int,

LastName   int(255),

FirstName int(255),

email   int(255),

phone int(255) );

笔记 :

语法重点: 最后一行无,  

在某个表中插入数据

insert into person02 values ('22','zhanghds','4657qqcom','beijing');

insert into person02 values ('22','zhanghds','4657qqcom','beijing');

语法重点:insert into 表名称  values '',‘值2');

insert into person02 (name) values('王家');

语法重点:insert into 表名称  (列名称) values '');

数值取舍

语法重点:

select round(列名,精度) from 表名;

语句--删

去除重复值

select distinct  name from  person02;

select distinct  name from 表名称;

注:该语句只是just 不显示而已,不是在原来库中做删除  因为再查看还是有的

删除固定值

语法重点:

DELETE FROM 表名称 WHERE 列名称 = ;

select *from  person02 order by 序号 asc;

删除整个表

做删除操作一定要谨慎 ,最好是先做好备份!!

DELETE FROM 表名称;

delect from persons;

语法重点:

TRUNCATE TABLE 表名称;

truncate table persons;

删除表

语法重点:

drop tables 表名称;

drop tables persons;

语句--改

改值  update

语法重点:

UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值;

update person02  set 序号='00' where email='333@qq.com';

为列名称和表名称指定别名(Alias),别名使查询程序更易阅读和书写。

语法重点:

表别名:

SELECT 表名称/(*) FROM 表名称 AS 别名;

列别名:

SELECT 列名称 as 别名 FROM 表名称;

NOT NULL 约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。

语法:

解释

CREATE TABLE 表
(
列 int NOT NULL
);

 

 End


http://www.kler.cn/a/378539.html

相关文章:

  • qt QMenuBar详解
  • C++:AVL树
  • 【用Java学习数据结构系列】泛型上界与通配符上界
  • 已解决,部署GPTSoVITS报错‘AsyncRequest‘ object has no attribute ‘_json_response_data‘
  • Java复习35(PTA)
  • Linux下Java的多种方式安装
  • 【系统架构设计师】2024年上半年真题论文: 论云上自动化运维级其应用(包括解题思路和素材)
  • 项目模块十四:HttpRequest模块
  • 六西格玛项目助力,手术机器人零部件国产化稳中求胜——张驰咨询
  • LLaMA系列一直在假装开源...
  • 基于YOLO11/v10/v8/v5深度学习的危险驾驶行为检测识别系统设计与实现【python源码+Pyqt5界面+数据集+训练代码】
  • 【p2p、分布式,区块链笔记 Torrent】通过网络编程库net集成bittorrent-protocol协议
  • ps技巧,来源于网络
  • Linux -- 信号的常见产生方式
  • MySQL日志——针对实习面试
  • 聚观早报 | 苹果推出新款iMac;华为Mate 70系列将上市
  • 并发编程中的CAS思想
  • 富格林:曝光欺诈陷阱纠正误区
  • ssm042在线云音乐系统的设计与实现+jsp(论文+源码)_kaic
  • 筛选Excel数据
  • 显卡服务器的作用都有哪些?
  • C++之控制结构
  • 关于工作中的“规则”分享
  • Controller调用@FeignClient
  • vue-i18n国际化多国语言i18n国际语言代码对照表
  • Python | Leetcode Python题解之第525题连续数组