MYSQL的基本语句和函数理解

1.SQL语句可以单行或多行书写,以分号结尾。

2.可以使用空格/缩进来增强语句的可读性。

3.SQL语句不区分大小写,关键字建议用大写

4.注释:

单行注释:--注释内容 或#注释内容

多行注释:/*注释内容*/

分类

全称

说明

DDL

Data definition language

数据定义语言,用来定义数据库对象(数据库,表,这段)

DML

Data manipulation language

数据操作语言,用来对数据库表中的数据进行增删改

DQL

Data query language

数据查询语言,用来查询数据库中表的记录

DCL

Data control language

数据控制语言,用来创建数据库用户,控制数据库的访问权限

DDL语句:↓

CREATE TABLE 表名 (字段1 类型1(字长),字段2 类型2(字长),字段3 类型3(字长))

创建数据表

SHOW DATABASES;

查询所有数据库

SELECT DATABASE();

查询当前数据库

CREATE VIEW 视图名称 AS

创建视图

CREATE DATABASE 数据库名

创建数据库

DROP DATABASE 数据库名;

删除数据库

USE 数据库名;

使用数据库

CREATE DATABASE [IF NOT EXISTS] 数据库名字 [DEFAULT CHARSET 字符集][COLLATE 排序规则];

创建数据库规定字符集和排序方式

DROP DATABASE [IF EXISTS] 数据库名;

判断数据库是否存在存在则删除

DESC 表名;

查看表结构

SHOW CREATE TABLE 表名;

查看指定表的建表语句

ALTER TABLE 表名 ADD 字段名 类型[长度]

对表添加字段

ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度)

INSERT 表名(字段1,字段2,字段3)VALUES(字段信息1字段信息2字段信息3)

修改字段数据类型

添加字段数据信息

ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度)

修改字段名及数据类型

ALTER TABLE 表名 DROP 字段名;

删除字段

ALTER TABLE 表名 RENAME TO 新表名;

修改表名

DROP TABLE 表名;

删除表

DROP TABALE [IF EXISTS] 表名;

如果此表存在则删除

TRUNCATE TABLE 表名;

删除该表并重新创建该表结构保留

-----------------------------------------------------语句--------------------------------------------------------------

-----------------------------------------------------含义--------------------------------------------------------------

DML语句:↓

-----------------------------------------------------语句--------------------------------------------------------------

-----------------------------------------------------含义--------------------------------------------------------------

INSERT INTO 表名(字段名1,字段名2,……) VALUSE(值1,值2),(值1,值2),(值1,值2);

为指定的字段批量添加数据

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

按顺序为全部字段添加数据从第一个字段开始

INSERT 添加数据

UPDATE 修改数据

DELETE 删除数据

数据操作语句

UPDATE 表名 SET 字段名1=值1,字段名2=值2,….WHERE [条件];例如id=1;或者id>=1;

修改数据,更新

DELETE FROM 表名 WHERE[条件] 

删除数据

DQL语句:↓

-----------------------------------------------------含义--------------------------------------------------------------

SELECT

字段列表

FROM

表名列表

WHERE

条件列表

GROLP BY

分组字段列表

HAVING

分组后条件列表还可用于聚合函数

ORDER BY

排序字段列表

LIMIT

分页参数

DQL-基本查询:

1.查询多个字段

SELECT 字段1,字段2,字段3….FROM 表名;

SELCT * FROM 表名;

指定查询多个字段

查询返回所有字段

SELECT DISTINCT 字段列表 FROM 表名

去除重复记录

SELECT * FROM 表名 WHERE 条件;

  • 示列SELECT * FROM 表名 WHERE  字段名=20    //查询这个表里面满足条件字段=20的记录
  • 示列SELECT * FROM 表名 WHERE  字段名 is null; //查询这个字段值为空的记录

条件查询语句  //条件可以是一个也可以是多个,可以用比较运算符和逻辑运算符

DQL—聚合函数

介绍

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

2.常见函数

函数

功能

COUNT(字段 *)

统计数量

MAX(字段)

最大值

MiN(字段)

最小值

AVG(字段)

平均值

SUM(字段)

求     和

语法

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

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

SELECT 聚合函数(字段) FROM 表名 WHERE 条件值;

条件聚合求某个字段的值用聚合函数返回但是需要满足条件

分组查询

1.语法

GROUP BY

SELECT 字段,聚合函数 FROM 表名 GROUP BY 字段名;

查询某个字段名

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

中括号的内容可省略,写语句是不屑中括号        

//GROUP BY 分组字段名表示需要根据那个字段进行分组

//HAVING分组过后再进行过滤

查询某个字段但是要满足条件,查询完毕过后对其中某个字段进行分组

2.WHERE与HAVING区别

  • 执行时机不同:WHERE是分组之前进行过滤,不满足WHERE条件,不参与分组:而HAVING是分组之后对结果进行过滤。
  • 判断条件不同:WHERE不能对聚合函数进行判断,而HAVING可以对聚合函数进行判断。

注意:

  • 执行顺序:WHERE > 聚合函数 > HAVING。

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

排序查询

1.语法

SELECT 字段名 FROM 表名 OPDEP BY 字段1 排序方式1,字段2 排序方式2;

               (*)可用星号

支持多字段排序

2.排序方式

ASC

升序(默认排序方式)

DESC

降序

ORDER BY CAST(字段 AS UNSIGNED) ASC

按照这段值大小

注意:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序。

以此类推

1.分页查询

语法

SELECT 字段名 FROM 表名 LIMIT 起始索引,查询记录数;

分页查询

注意:

    • 起始索引从0开始,起始索引=(查询页码-1)*每页显示记录数。
    • 分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是LIMIT.
    • 如果查询的是第一页数据,起始 索引可以省略,直接简写为limit 10.

例如

SELECT * FROM 表名 LIMIT 0,10;

查询第一页的十条记录

DCL-管理用户

USE MYSQL

SELECT * FROM USER;

查询用户

CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';

创建用户

ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password  BY '新密码';

修改用户密码

DROP USER'用户名'@'主机名';

删除用户

注意:

主机名可以使用%通配。

这类SQL开发人员操作的比较少,主要是DBA(Database Administrator 数据库管理员)使用。

权限控制

用户管理

CREATE USER '用户名' @ '主机名' IDENTIFIED BY '密码';

创建用户

ALTER USER '用户名' @ '主机名' IDENTIFIED WTH MYSQL_NATIVE_PASSWORD BY '密码';

修改用户没密码

DROP USER '用户名'@'主机名'

删除用户

权限

说明

ALL,ALL PRIVLEGES

所有权限

SELECT

查询数量

INSERT

插入数据

UPDATE

修改数据

DELETE

删除数据

ALTER

修改表

DROP

删除数据库/表/视图

CREATE

创建数据库/表

REPLACE(字段名,)

SHOW GRANTS FOR '用户名' @ '主机名';

查询权限

GRANT 权限列表 ON 数据库名,表名 TO '用户名' @ '主机名';

授予权限(给某一个用户授予某个数据库的某一张表的某一种权限)

REVOKE 权限列表 ON 数据库名,表名 FROM '用户名' @ '主机名';

撤销权限;(撤销权限列表,从某个用户上撤销某个数据库某个表的权限)

注意:

多个权限之间,使用逗号分隔;

授权时,数据库名和表名可以使用 * 进行匹配,代表所有。

函数:

介绍:函数是指一段可以直接被另一段程序调用的程序或代码。

1.字符串函数

2.数值函数
 


3.时间函数
 


4.流程函数
 

约束概述:
1.概述:约束是一种作用于表中字段上的规则,用于限制存储在表中的数据。

2.目的:保证数据库中数据的正确,有效和完整性。

约束

描述

关键字

非空约束

限制该字段的数据不能为空

NOT NULL

唯一约束

保证该字段的所有数据都是唯一不重复的

UNIQUE

主键约束

主键是一行数据的唯一标识,要求非空且唯一

PRIMARY KEY

默认约束

保存数据时,如果未指定该字段的值,则采用默认值

DEFAULT

检查约束

保证字段值满足某一个条件

CHECK

外键约束

用来让两张表的数据之间建立连接,保证数据的一致性和完整性

FOREIGN KEY

拓展

别名

用:

AS

不写

别名不允许在WHERE中使用

函数

平均值:AVG(字段)

总价:sum(字段)

总类数量:count(字段)

分组:group by(字段)

排序:ORDER BY  字段

降序:DESC LTMIT  开始位数,结束位数

升序:ASC 开始位数,结束位数

四舍五入:ROUND(字段,位数)

重复值:DISTINCT

不在:not in(子查询)

包含一个或者多个值:in

转换:CONVERT (字段)

获取:LIMIT  开始位置,获取多少位

截取:LEFT(字段,第几位)

之间:BETWEEN

年龄:age

描述:desc

向上取整:CEIL()

向下取整:FLOOR()

获取月份:DATE-FORMAT(“2021-08-04”,“%Y-%m-%d”)

判断:CASE   字段

等于:WHEN

输出:THEN  字段

否则:ELSE   0

结束:END   

获取当前日期:CURRENT

DATE

获取当前时间:CURRENT

TIME

获取系统时间:当前日期+当前时间

年:YEAR,月:MONTH,日:DAY

小时:HOUR,分钟:MINUTE,秒:SECOND

替换:REPLACE(字段,“字段关键字”,“替换内容”)

为空:Is null

不为空:not null

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值