MySQL基本语句(DDL,DML,DQL,DCL)

SQL通用语法

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

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

  3. MySQL数据库的SQL语句不区分大小写,关键字建议使用大写

  4. 注释:

    1. 单行:-- 或 #

    2. 多行:/* */

SQL语句分类

分类全称说明
DDLData Definition Language数据定义语言,用来定义数据库对象
DMLData Manipulation Language数据库操作语言,用来对数据库表中的数据进行增删改
DQLData Query Language数据查询语句,用来询数据库中表的记录
DCLData Control Language数据控制语言,用来创建数据库用户 控制数据库的访问权限

数据类型

  1. 数值类型 tinyint int double

  2. 字符串类型 varchar char

  3. 日期时间类型 date time datetime

DDL 数据定义语言

  • 查询

--查询所有数据库
SHOW DATABASES;
--查询当前数据库
SELECT DATABASE();
  • 创建
--[] 内可省略
CREATE DATABASE[IF NOT EXISTS] 数据库名称 [DEFAULT CHARSET 字符集][COLLATE 排序规则];
  • 删除
DROP DATABASE[IF EXISTS]数据库名称
  • DDL-表操作-创建
CREATE TABLE 表名(
    字段1 字段1类型[comment注释],
    字段2 字段2类型[comment注释],
    ...
    字段n 字段n类型[comment注释]
)[comment表注释]

craete table tb_user(
	id int comment '编号',
    name varchar(50) comment '姓名'
    age int comment '年龄'
    gender varchar(1) comment '性别'
)
  • DDL-表操作-修改\
--添加字段
alter table 表名 add 字段名 类型(长度)[comment注释][约束];
--修改数据类型
alter table 表名 modify 字段名 新数据类型(长度);
--修改字段名和字段类型
alter table 表名 change 旧字段名 新字段名 类型(长度)[comment注释][约束];
--删除字段
alter table 表名 drop 字段名;
--修改表名
alter table 表名 rename to 新表名;
--删除表
drop table [if exists] 表名;
truncate table 表名;--删除后重新创建

DML 数据库操作语言

  • 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...);
  • DML-修改数据
update 表名 set 字段名1=值1,字段2=值2,...[where 条件];
  • DML-删除数据
delete from 表名 [where 条件];

*DQL数据查询语句

select  4    
    字段列表
from    1    
    表名列表
where   2    
    条件列表
group by    3    
    分组字段列表
having      3       
    分组后条件列表
order by    5    
    排序字段列表
limit      6    
    分页参数
  • 基本查询
--查询多个字段
select 字段1,字段2,字段3...from 表名;
select * from 表名;
--设置别名
select 字段1[as 别名1]...;
--去除重复记录
select distinct 字段列表 from 表名;
  • 条件查询
select 字段列表 from 表名 where 条件列表;

 

 

  • 聚合函数

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

  • 常见聚合函数

 

  • select 聚合函数(字段列表) from 表名;
  • 分组查询

    select 字段列表 from 表名[where 条件]group by 分组字段名[having 分组后过滤条件];

  • where和having的区别

    • 执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组后对结果进行过滤

    • 判断条件不同:where不能对聚合函数进行判断,而having可以

  • 排序查询
Select 字段列表 from 表名 order by 字段1 排序方式1...;
/*
ASC:升序(默认)
DESC:降序
*/
  • 分页查询
select 字段列表 from 表名 limit 起始索引,查询记录数;

起始索引从0开始,起始索引=(查询页码-1)*每页显示记录数

DCL数据控制语句

用来管理数据库 用户,控制数据库的 访问权限

  • DCL-管理用户
--查询用户
use mysql;
select *from user;
--创建用户
create user '用户名'@'主机名' identified by '密码';
--修改用户名
alter user '用户名'@'主机名' identified with ;mysql_native_password by '新密码';
--删除用户
drop user '用户名'@'主机名';
  • DCL-管理权限
--查询权限
show grants for '用户名'@'主机名';
--授予权限
grant 权限列表 on 数据库名.表名 to '用户名'@'主机名';
--撤销权限
revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值