SQL 常用语句

目录

我的测试环境

学习文档

进入数据库

基础通关测验

[语句-- 查](#语句-- 查)

展示数据库;

进入某个数据库;

展示表:

[展示某个表 desc](#展示某个表 desc)

查询整个表:

查询特定列:

范围查询

等于特定值

不等于

介于

[特定字符查询 Like](#特定字符查询 Like)

关键字查询

字符长度查询

特定位置查询

[AND OR](#AND OR)

排序

查找类似值

查询多个值

合并多表查询结果UNION

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

查询某列空值/非空值

查询并计算

非空列的平均值

查询低于平均值的列值

[Count 语句](#Count 语句)

查询某列非空值的值种类

查询某列非空值数量:

查询最大值:

查询最小值

列求和

某列的分组查询:

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

某列以英文的大写查询

某列以英文的小写查询

[查询多列 某一列小写/大写](#查询多列 某一列小写/大写)

查看某列中各个值的长度

查某个表的时间:

语句--增

创建表

在某个表中插入数据

数值取舍

语句--删

去除重复值

删除固定值

删除整个表

语句--改

[改值 update](#改值 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

相关推荐
wuyu11257 分钟前
Qt字符编码
数据库·mysql·mybatis
许灵均均44 分钟前
数据库视图
数据库
诸葛博仌2 小时前
pgsql判断逗号分割的字符串有两个字符还是三个字符
sql
engchina2 小时前
Neo4j数据库清理指南:如何安全地删除所有节点和索引
数据库·neo4j
Erorrs3 小时前
Android13 系统/用户证书安装相关分析总结(二) 如何增加一个安装系统证书的接口
android·java·数据库
许苑向上4 小时前
最详细【Elasticsearch】Elasticsearch Java API + Spring Boot集成 实战入门(基础篇)
java·数据库·spring boot·elasticsearch
CodeCraft Studio5 小时前
【实用技能】在 SQL Server 中使用 LIMIT 子句的替代方案
数据库·sql·sqlserver
Mephisto.java5 小时前
【大数据学习 | kafka】kafka的偏移量管理
大数据·sql·oracle·sqlite·json·hbase
2301_768212155 小时前
jmeter所用的mysql的jar包进行下载,可写jdbc协议
mysql·jar
jlting1956 小时前
HiveSQL 中判断字段是否包含某个值的方法
数据库·sql