mysql的基本语句及定义

本文详细介绍了SQL中的数据定义语言DDL(如创建、使用数据库和表)、数据操作语言DML(增删改查)、查询语言DQL(包括聚合函数、分组、排序和分页)以及数据控制语言DCL(用户管理与权限)。涵盖了基础语法和示例应用。
摘要由CSDN通过智能技术生成

基本语句(DDL):

show databases; 查询所有数据库

create database 库名 ; 创建一个新库

use 库名 打开该数据库

show tables;//显示该数据库的下的所有表

增删改语句(DML):

删除语句:

delete from 表名 where 筛选条件;

插入语句:

insert into 表名 values(值);这里的值与默认的所有字段顺序一一对应

insert into 表名(字段) values(值);这里的值需要与表名后列出的字段一一对应。

删除语句:

update 表名 set 字段=修改后的值 where 筛选条件;

(注意:删除与修改语句在没有指定where筛选条件下,默认是对所有的数据进行更改);

查询语句(DQL):

(字段为*表示所有字段)

select 字段 from 表名 where 判断条件

like :

_ 表示一个字符的占位符

% 表示任意个数的占位符

聚合函数:

定义:

将一列数据作为一个整体进行纵向计算,通常搭配分组查询使用常用函数:

count 计算纵向数据的数量

max 计算纵向数据的最大值

min 计算纵向数据的最小值

avg 计算纵向数据的平均值

sum 计算纵向数据的总和

分组查询:

group by

where和group by的区别:

group by是在where的筛选后才进行的,having是对分组之后的结果进行过滤;

where不能对聚合函数进行判断,而having可以

select 字段 from 表名 group by 分组字段 having 刷选条件

排序查询:

order by

select 字段 from 表名 order by 排序字段1 排序规则,排序字段2 排序规则 ...;

排序规则:

asc 升序 desc 降序

先根据排序字段1来先排序,如果1相等则根据2来排序,以此类推。

分页查询:

limit

select 字段 from 表名 limit 起始索引,要查询的条数;

起始索引=(查询页码-1)*每一页的记录数,如果起始索引为1的话,可以省略,只需要写出查询条数即可。

编写顺序:

select 字段 from 表名 where 筛选条件 group by 分组字段 having 分组筛选 order by 排序字段 ,排序规则 limit 起始索引,查询记录数。

执行顺序:

from >where >group by >select >order by >limit;

用户语句(DCL):

一个本机的数据库,可以为该数据库创建多个用户,每个用户都对这个数据的的访问具有权限,其它主机通过登录用户的方式以对应用户的身份来访问这个数据库,而DCL语句就是为数据库的用户设置权限。

管理用户:

创建用户:

create user 用户名@主机名 identified by ‘密码’;

修改用户:

alter user 用户名@主机名 identified with mysql_native_password by '新密码';

删除用户:

drop user 用户名@主机名;

用户权限:

all; 所有权限

select; 查询数据

delete;删除数据

update;修改数据

insert;插入数据

alter ;修改表的权限;

drop;删除数据库/表/视图的权限;

create;创建数据库/表的权限;

查询权限:

show grants for 用户名@主机名;

grant 权限列表 on 数据库.表名 to 用户名@主机名;//授予用户对数据库的表的一种权限。

revoke 权限列表 on 数据库.表名 from 用户名@主机名;//撤销用户对数据库的表的一种权限。

函数:

字符串函数:

concat(s1,s2,s3,...) 将字符串s1,s2,s3拼接在一起

lower(s) 将字符串s的字母全部变为小写

upper(s) 将字符串s的字母全部变为大写

lpad(s,size,t_s) 将字符串的位数设置为size位,多于出来的位数用t_s左填充

rpad(s,size,t_s) 将字符串的位数设置为size位,多于出来的位数用t_s右填充

trim(s) 将字符串s的头部和尾部的空格删除掉,如果没有则不做删改。

substring(s,start,size) 返回字符串s从第start位开始之后的size位,这里的start是从1开始的

数值函数:

ceil(a) 将数值向上取整

floor(a) 将数值向下取整

mod(a,b) 取余函数

rand() 随机生成0-1的小数

round(x,y) 对参数x采用四舍五入的方式保留y位小数

案例: 通过数据库的函数,生成一个六位数的随机验证码。

select lpad(round(rand(),6)*1000000,6,'0');

日期函数:

curdate() //显示当前日期,年月日

curtime() //显示当前时间 时分秒

now() //显示当前时期 年月日时分秒

select year(date) 获取date里的年份

select month(date) 获取date里的月份

select day(date) 获取date里的日期

select date_add(now(),interval size 类型); 为时间now添加size个大小个类型 ,类型可以是年月日

select datediff(now(),'2002-09-28'); 求两者之间的天数,前者减去后者。

流程函数:

if(bool,s1,s2) //如果book为真则打印s1,反之打印s2

if(s1,s2) //如果s1为空则打印s2反之打印s1

case 字段 when 判断条件1 then 符合判定条件的结果2 when 判断条件1 then 符合判定条件的结果2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码商道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值