SQL基础

本文深入介绍了SQL的基本语法,包括数据库和表的创建、查询、修改和删除(DDL),数据的增加、修改和删除(DML),以及数据查询语言(DQL)的使用,如查询、排序、聚合函数和分组查询。内容涵盖SQL的常用操作,是学习SQL语法的重要参考资料。
摘要由CSDN通过智能技术生成

目录

1.通用语法

2.SQL分类

3.DDL

3.1数据库相关

查询:

创建数据库:

删除数据库:

使用数据库:

3.2表相关

创建

查询

修改

删除

4.DML

添加

修改

删除

 5.DQL

查询

排序

聚合函数

分组查询

分页查询


1.通用语法

  • 以分号结尾
  • 注释:单行注释     -- 注释内容    /*注释内容*/
  • 不区分大小写

2.SQL分类

DDL:操作数据库、表等 create\drop\alter

DML:对表中的数据进行增删改 insert\update\delete

DQL:对表中的数据进行查询 select

DCL:对数据库进行权限控制 grant

3.DDL

3.1数据库相关

查询:

show databases;-- 查询所有的数据库

创建数据库:

create database 数据库名 (set character xxx);

create database if not exists 数据库名;

删除数据库:

drop database 数据库名;

drop database if  exists 数据库名;

使用数据库:

use 数据库名;

查看当前使用的数据库:select database();

3.2表相关

进入数据库:use 数据库名;

查看当前数据库下所有表名称:show tables;

查询表结构:desc 表名;

创建

create table 表名(
    字段名1 数据类型1,
    ...     ...
                    -- 最后一个不加逗号
);

数据类型

double: double(总长度,小数点后保留的位数)

date:包含年月日 datetime:年月日时分秒

查询

修改

修改表的前提:表为空

修改表名:alter table 表名 rename to 新的表名;

添加一列:alter table 表名 add 列名 数据类型;

修改数据类型:alter table 表名 modify 列名 新数据类型;

修改列名和数据类型:alter table 表名 change 列名 新列明 新数据类型;

删除列:alter table 表名 drop 列名;

修改数据:update 表名 set 列名1=值1,列名2=值2,...[where 条件]

如果update语句没有加where条件,则会将表中所有的数据全部修改

删除

删除表:drop table 表名;

删除表时判断表是否存在:drop table if exists 表名;

delete from 表名 【where 条件】;

4.DML

添加

给指定列添加数据

INSERT INTO 表名(列名1,列名2,…) VALUES(值1,值2,…);-- 列名的列表可以省略

给全部列添加数据:

INSERT INTO 表名 VALUES(值1,值2,…);        

批量添加数据

INSERT INTO 表名(列名1,列名2,…) VALUES(值1,值2,…),(值1,值2,…),(值1,值2,…)…;
INSERT INTO 表名 VALUES(值1,值2,…),(值1,值2,…),(值1,值2,…)…;

修改

UPDATE 表名 SET 列名1=值1,列名2=值2,… [WHERE 条件] ;

删除

DELETE FROM 表名 [WHERE 条件] ;

 5.DQL

SELECT 
    字段列表
FROM 
    表名列表 
WHERE 
    条件列表
GROUP BY
    分组字段
HAVING
    分组后条件
ORDER BY
    排序字段
LIMIT
    分页限定

查询

/*查询多个字段*/
SELECT 字段列表 FROM 表名; 
SELECT * FROM 表名; -- 查询所有数据

SELECT DISTINCT 字段列表 FROM 表名;-- 去除重复记录

AS: AS 也可以省略 -- 起别名
/*条件查询*/
SELECT 字段列表 FROM 表名 WHERE 条件列表;

 WHEREHAVING (作为GROUP BY一部分)使用IN运算符将所选行限制为列表中的“ IN”项。

在某个范围之内(都包含):between...and...

多选一:in(...)

模糊查询:_单个任意字符 %多个任意字符 like

排序

SELECT 字段列表 FROM 表名 ORDER BY 排序字段名1 [排序方式1],排序字段名2 [排序方式2] …;

ASC:升序排列(默认值)

DESC:降序排序

聚合函数

将一列数据作为一个整体,进行纵向计算

分类:

count(列名)统计数量(一般选用不为null的列)
max(列名)最大值
min(列名)最小值
sum(列名)求和
avg(列名)平均值

语法:

SELECT 聚合函数名(列名) FROM 表;

null值不参与所有聚合函数运算

分组查询

SELECT 字段列表 
FROM 表名 
[WHERE 分组前条件限定] 
GROUP BY 分组字段名 
[HAVING 分组后条件过滤];

分组之后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义

where和having的区别:

执行时机不一样:where是分组之前进行限定,不满足where条件,则不参与分组;而having是分组之后对结果进行过滤。

可判断的条件不一样:where不能对聚合函数进行判断,having可以

分页查询

SELECT 字段列表 FROM 表名 LIMIT  起始索引 , 查询条目数;

起始索引是从0开始,起始索引 = (当前页码 - 1) * 每页显示的条数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值