SQL语言分类

@SQL语言分类

DDL(Data Definition Language) 数据定义语言

用于创建、修改、删除数据库中的各种对象(数据库、表、视图、索引等)常用命令有createalterdrop

数据库的增删选查

查看数据库:show databases;
创建数据库:create database 数据库名称;
选择使用数据库:use 数据库名称
删除数据库:drop database 数据库名称;

数据表的增删改查

创建数据表:create table 表名(字段名 数据类型 [约束条件],字段名2 数据类型2 [约束条件2]);
查看当前数据库中所有表:show tables;
查看表结构:desc 表名;(describe,简写为desc,descending 降序排序的简写也是desc )
删除数据表:drop table 表名;
修改表名:alter table 原表名 rename 新表名;
修改字段名:alter table 表名 change 原字段名 新字段名 数据类型 [自增/非空/默认] [字段位置];
修改字段类型:alter table 表名 modify 字段名 新数据类型 [自增/非空/默认] [字段位置];
修改字段的排列位置:
alter table 表名 modify 字段名 数据类型 [自增/非空/默认] first;
alter table 表名 modify 要排序的字段名 数据类型 [自增/非空/默认] after 参照字段;
添加字段:alter table 表名 add 新字段名 数据类型 [自增/非空/默认] [字段位置];
删除字段:alter table 表名 drop 字段名;

DML(Data Manipulation Language) 数据操作语言

用于操作数据库表中的记录,常用命令有insertupdatedelete

插入数据

指定字段名插入数据:
insert into 表名(字段名1[,字段名2,…]) values(字段值 1[,字段值 2,…]);
不指定字段名插入数据:需要为表中每一个字段指定值,且值的顺序须和数据表中字段顺序相同
insert into 表名 values(字段值 1[,字段值 2,…]);

更新数据

update 表名 set 字段名1=字段值1[, 字段名2=字段值2[,…]][ where 更新条件];

删除数据

delete from 表名[ where 删除条件];
truncate 表名;(与delete from 表名一样,都是删除表中全部数据,保留表结构)
delete和truncate的区别:
delete可以添加where子句删除表中部分数据,truncate只能删除表中全部数据
delete删除表中数据保留表结构,truncate直接把表删除(drop table)然后再创建一张新表(create table),执行速度比delete快。

DQL(Data QueryLanguage) 数据查询语言

用于查询数据库表中的记录
基本结构:select <字段名> from <表名或视图名> where <查询条件>

单表查询

全表查询:select * from 表名;
查询指定列:select 字段1[,字段2,…] from 表名;
别名的设置:select 字段名 [as] 列别名 from 原表名 [[as] 表别名];
命名规则:字符(中文/英文)、数字和_,当别名中有空格或为纯数字时需要加引号
查询不重复的记录:select distinct 字段名[,字段名2,…] from 表名;
多个字段去重时,distinct关键字必须位于第一个字段前,多个字段完全一样的情况下,才会过滤
条件查询:条件查询:select 字段1[,字段2,…] from 表名 where 筛选条件;
空值查询:select 字段1[,字段2,…] from 表名 where 空值字段 is [not] null;
null空值是特殊的未知值,它不属于任何一种数据类型,跟任何类型的数据进行运算结果也都为null
模糊查询: select 字段1[,字段2,…] from 表名 where 字段 [not] like 通配符;
模糊查询只能用于字符串类型的字段
百分号(%)通配符:匹配0个或多个字符
下划线( )通配符:匹配一个字符
查询结果排序:select 字段1[,字段2,…] from 表名 order by 字段1[ 排序方向,字段2 排序方向,…];指定排序方向:asc升序,desc降序(没有指定排序方向时,默认是asc升序)
多字段排序时,先按第一个字段排序,第一个字段值相同时再按第二个字段排序,如果第一个字段值都是唯一的,则不会按照第二个字段排序
限制查询结果数量:select 字段1[,字段2,…] from 表名 limit [偏移量,] 行数;
limit接受一个或两个数字参数,参数必须是一个整数常量
第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目
如果只给定一个参数,表示返回最大的记录行数目
初始记录行的偏移量是0(而不是1)
分组查询:select 字段1[,字段2,…] from 表名[ where 查询条件] group by 分组字段1[,分组字段2,…];
将查询结果按照一个或多个字段进行分组,多个字段之间没有先后顺序,字段值相同的为一组,对每个组内的多条记录进行聚合计算
分组聚合后,select子句中只能出现分组字段和聚合字段
在mysql 5.7.5或之后的版本:
允许在select、having和order by中使用没有出现在group by中的字段
允许在group by和having子句中可以引用select子句中设置的别名
分组后筛选:select 字段1[,字段2,…] from 表名[ where 筛选条件] group by 分组字段1[,分组字段2,…] having 筛选条件;
having 子句支持 where 子句中所有的运算符,having子句中的筛选字段必须是分组字段和聚合字段
where与having的区别
where子句作用于表,having子句作用于组
where条件查询的作用域是针对数据表进行筛选,而having条件查询则是对分组结果进行过滤
where在分组聚合计算之前筛选行,而having 在分组聚合之后筛选分组的行,因此where子句不能使用聚合函数

select语句执行顺序
from–> where --> group by --> having --> select --> order by --> limit

DCL(Data Control Language) 数据控制语言

用于定义数据库访问权限和安全级别,常用命令有grant、revoke

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL是Structured Query Language的缩写,意为结构化查询语言,它是一种用于操作关系型数据库语言SQL允许用户对数据库进行各种操作,包括创建、查询、更新和删除数据等。 根据SQL语句的功能和用途,可以将其分为以下四种类型: 1. DDL(Data Definition Language),即数据定义语言,用于创建和管理数据库中的对象,如表、索引、视图、存储过程等。常见的DDL语句包括:CREATE、ALTER、DROP等。 例如,创建一个名为student的表: ``` CREATE TABLE student ( id INT PRIMARY KEY, name VARCHAR(20) NOT NULL, age INT, gender VARCHAR(2) ); ``` 2. DML(Data Manipulation Language),即数据操作语言,用于对数据库中的数据进行操作,如插入、更新和删除数据等。常见的DML语句包括:INSERT、UPDATE、DELETE等。 例如,向student表中插入一条记录: ``` INSERT INTO student (id, name, age, gender) VALUES (1, 'Tom', 18, 'M'); ``` 3. DQL(Data Query Language),即数据查询语言,用于查询数据库中的数据。常见的DQL语句包括:SELECT、FROM、WHERE等。 例如,查询student表中的所有记录: ``` SELECT * FROM student; ``` 4. DCL(Data Control Language),即数据控制语言,用于管理数据库的访问权限和安全性,如授权、撤销权限等。常见的DCL语句包括:GRANT、REVOKE等。 例如,授权用户bob访问student表: ``` GRANT SELECT ON student TO bob; ``` 总之,SQL是用于操作关系型数据库语言,根据功能和用途可以将其分为DDL、DML、DQL和DCL四种类型,每种类型语句的作用和用法不同。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值