③SQL 分类

在介绍SQL语句五种分类前,先来简单的认识一下SQL。SQL的英文全称为Structured Query Language,SQL用来和数据库打交道,完成和数据库的通信,SQL是一套标准,但是每一个数据库都有自己的特性,当使用这个数据库特性相关的功能,这时SQL语句可能就不是标准了,但是百分之九十以上的SQL都是通用的。

SQL语句的五种分类分别是DQL、DML、DDL、TCL和TCL,下面对SQL语句的五种分类进行列举:

1、数据库查询语言(DQL)

数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE 子句组成的查询块,简称DQL,Data Query Language。代表关键字为select。

2、数据库操作语言(DML)

用户通过它可以实现对数据库的基本操作。简称DML,Data Manipulation Language。代表关键字为insert、delete 、update。

3、数据库定义语言(DDL)

数据定义语言DDL用来创建数据库中的各种对象,创建、删除、修改表的结构,比如表、视图、索引、同义词、聚簇等,简称DDL,Data Denifition Language。代表关键字为create、drop、alter。和DML相比,DML是修改数据库表中的数据,而 DDL 是修改数据中表的结构。

-- DDL 

-- 创建数据库
CREATE DATABASE db02;
-- 选择使用数据库
USE db02;-- 针对当前会话的一个临时使用数据库
SELECT DATABASE();
-- 删除数据库
DROP DATABASE SDay1;

-- 创建表
CREATE TABLE stu(
	stu_id INT PRIMARY KEY,-- 主键约束
	stu_name VARCHAR(20) UNIQUE,-- 唯一约束
	gender CHAR(1) DEFAULT '男',-- 默认值约束
	address VARCHAR(100) NOT NULL,-- 非空约束
-- PRIMARY KEY(stu_id,stu_name)联合主键
	 birthday date
);
-- 查看字段列
DESC stu;
-- 删除表
DROP TABLE stu;
-- 删除表 先删除drop 再创建create
TRUNCATE TABLE stu;
SHOW TABLE;-- 查看当前数据库下的表

-- DML语句 
-- 添加
-- INSERT INTO 表名(字段名...) value();
-- INSERT INTO 表名 value();
-- INSERT INTO 表名 values(),(),(),(),...;
INSERT INTO stu(stu_id,stu_name,address) VALUE(1001,'小王','黑龙江');
INSERT INTO stu VALUE(1002,'小林','女','河南鹤壁','1999-12-30');
INSERT INTO stu VALUES(1003,'小李','女','江苏南通','1999-12-30'),
											(1004,'小七','男','安徽合肥','1999-12-30'),
											(1005,'小张','女','河北保定','1999-12-30'),
											(1006,'小米','女','广东肇庆','1999-12-30');
-- 修改
-- UPDATE 表名 set 字段1=值1,字段2=值2... where 条件
UPDATE stu SET birthday='2001-11-10' WHERE stu_name='小张';
-- 删除
-- DELETE FROM 表 WHERE 条件
DELETE FROM stu WHERE stu_id=1003;


-- DQL

-- 单表查询
-- 查询全部字段
SELECT * FROM stu;
-- 查询指定字段
SELECT stu_id,stu_name FROM stu;
-- 去重查询
SELECT DISTINCT gender FROM stu;
-- 起别名
SELECT DISTINCT gender '性别' FROM stu;

-- 条件查询
-- 算术运算符
SELECT stu_id +1000,stu_name FROM stu;
-- 比较运算符  != 不规范 ,  <> 规范  都是不等于,都能用
SELECT * FROM stu WHERE stu_id < 1005;
-- 逻辑运算符 and 和 or 
SELECT * FROM stu WHERE stu_id=1004 AND birthday = '1999-12-30';
SELECT * FROM stu WHERE stu_id=1004 OR birthday = '1999-12-30';
-- 特殊的逻辑运算符 和 比较运算符
SELECT * FROM stu WHERE stu_id=1001 OR stu_id=1003 OR stu_id=1006;
SELECT * FROM stu WHERE stu_id IN (1001,1003,1006);
SELECT * FROM stu WHERE stu_id NOT IN (1001,1003,1006);
-- age>=10 and age<=20
SELECT * FROM stu WHERE stu_id BETWEEN 1002 AND 1005;
-- 特殊的比较
SELECT * FROM stu WHERE birthday = NULL;-- 错误的写法,但语法没问题
SELECT * FROM stu WHERE birthday IS NULL;-- 对于null要用is null 判断
-- 模糊查询(通配符)  _表示一个字符  %表示0~n个字符
SELECT * FROM stu WHERE stu_name LIKE '小_';
SELECT * FROM stu WHERE stu_name LIKE '_小';
SELECT * FROM stu WHERE stu_name LIKE '大_小';
SELECT * FROM stu WHERE stu_name LIKE '小%';
SELECT * FROM stu WHERE stu_name LIKE '%小';
SELECT * FROM stu WHERE stu_name LIKE '%小%';
-- 分组 排序  限制查询数量
-- 分组 将依据(一列或多列)相同的作为一组
-- 分组之后虽然看到的数据只有一行,但这一行代表着一组,一组可能有多条数据
SELECT gender FROM stu GROUP BY gender;
-- 介入了一个概念:聚合函数 count() max() min() avg() sum()
-- 如下面一条语句,虽然按gender分组后,一般只会显示gender一列
-- 但可以通过聚合函数获取到某一列的和或最大值或最小值等结果
SELECT gender,COUNT(stu_id) FROM stu GROUP BY gender;
-- 引入新的关键字 having 分组后的 条件筛选,分组之前用where
-- 即先分组,在分组里筛选(不是只有一列的分组),然后获取到结果
SELECT gender,COUNT(stu_id) cs FROM stu GROUP BY gender HAVING COUNT(stu_id)>2;
-- 排序 (升序、降序,默认是升序,且只能根据一列排序)
SELECT * FROM stu ORDER BY stu_id;-- asc
SELECT * FROM stu ORDER BY stu_id DESC;-- desc
-- 限制查询个数 LIMIT(m,n),其中m是从第几条数据开始查询,n是查询几条数据
-- LIMIT 2,3
SELECT * FROM stu LIMIT 2,3;


4、事务控制语言(TCL)

TCL经常被用于快速原型开发、脚本编程、GUI和测试等方面,简称:TCL,Trasactional Control Languag。代表关键字为commit、rollback。

5、数据控制语言(DCL)

数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等。简称:DCL,Data Control Language。代表关键字为grant、revoke。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值