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

相关推荐
tatasix2 分钟前
MySQL UPDATE语句执行链路解析
数据库·mysql
南城花随雪。15 分钟前
硬盘(HDD)与固态硬盘(SSD)详细解读
数据库
儿时可乖了16 分钟前
使用 Java 操作 SQLite 数据库
java·数据库·sqlite
懒是一种态度18 分钟前
Golang 调用 mongodb 的函数
数据库·mongodb·golang
天海华兮20 分钟前
mysql 去重 补全 取出重复 变量 函数 和存储过程
数据库·mysql
gma9991 小时前
Etcd 框架
数据库·etcd
爱吃青椒不爱吃西红柿‍️1 小时前
华为ASP与CSP是什么?
服务器·前端·数据库
Yz98762 小时前
hive的存储格式
大数据·数据库·数据仓库·hive·hadoop·数据库开发
武子康2 小时前
大数据-230 离线数仓 - ODS层的构建 Hive处理 UDF 与 SerDe 处理 与 当前总结
java·大数据·数据仓库·hive·hadoop·sql·hdfs
武子康2 小时前
大数据-231 离线数仓 - DWS 层、ADS 层的创建 Hive 执行脚本
java·大数据·数据仓库·hive·hadoop·mysql