SQL语言的分类:DDL(数据库、表的增、删、改)、DML(数据的增、删、改)

数据库管理系统(数据库软件)功能非常多,不仅仅是存储数据,还要包含:数据的管理、表的管理、库的管理、账户管理、权限管理等。

操作数据库的SQL语言,基于功能,划分为4类:

1、数据定义:DDL(Data Definition Language)

复制代码
库的创建、删除,表的创建、删除等;

2、数据操纵:DML(Data Manipulation Language)

复制代码
新增数据、删除数据、修改数据等;

3、数据控制:DCL(Data Control Language)

复制代码
新增用户、删除用户、密码修改、权限管理等;

4、数据查询:DQL(Data Query Language)

复制代码
基于需求查询和计算数据;

SQL语法特征

1、不区分大小写

2、可以单行或多行书写,最后以;号结束

3、支持注释

复制代码
单行注释:-- 注释内容
单行注释:# 注释内容
多行注释:/*注释内容*/(要以换行写更多内容)
PS:不同的数据库软件或不同的系统版本等因素,可能支持的单行注释的方式不一样,以上两种可以尝试,至少会有一种是可以实现单行注释的;

DDL(数据定义:数据库、表相关操作)

一、数据库

查看数据库

复制代码
SHOW DATABASES;

使用数据库

复制代码
USE 数据库名称;

创建数据库

复制代码
CREATE DATABASE 数据库名称 [CHARSET UTF8];
说明:中括号里的内容是可选的内容,可以写,也可以不写,但是建议写上,选择以UTF8作为编码;

删除数据库

复制代码
DROP DATABASE 数据库名称;

查看当前使用的数据库

复制代码
SELECT DATABASE();

二、表

查看有哪些表

复制代码
SHOW TABLES;
说明需要先选择数据库,才能查看当前数据库中的表;

创建表

复制代码
语法:
CREATE TABLE 表名称(
		列名称 列类型,
		列名称 列类型,
		......
);

列类型说明
int -- 整数
float -- 浮点数
varchar(长度) -- 文本,长度为数字,做最大长度限制,数字必须填写
date -- 日期类型
timestamp -- 时间戳类型

删除表

复制代码
DROP TABLE 表名称;
DROP TABLE IF EXISTS 表名称;

DML(数据操纵:增、删、改)

数据库操作语言,用来对数据库中表的数据记录进行更新。

关键字:

插入:INSERT

删除:DELETE

更新:UPDATE

一、INSERT - 插入数据

基础语法:

复制代码
INSERT INTO 表名[ (列1, 列2, 列3,......, 列N) ] VALUES (值1, 值2, 值3, ......, 值N) [ (值1, 值2, 值3, ......, 值N),  (值1, 值2, 值3, ......, 值N), ...... (值1, 值2, 值3, ......, 值N)]
说明:中括号中的内容是可选

例:插入一条数据

复制代码
INSERT INTO 表名(列1, 列2, 列3,......, 列N) VALUES (值1, 值2, 值3, ......, 值N)

例:插入多条数据

复制代码
INSERT INTO 表名(列1, 列2, 列3,......, 列N) VALUES(值1, 值2, 值3, ......, 值N),  (值1, 值2, 值3, ......, 值N), ...... (值1, 值2, 值3, ......, 值N)

插入数据的值跟列是一一对应的,值要符合列的数据类型,才能插入成功。

例:列1是int类型,值1写varcher,则不可以,要写int类型才行

二、DELETE - 删除数据

基础语法:

复制代码
DELETE FROM 表名称 [WHERE 条件判断];

说明:加WHERE条件,删除符合条件的数据,不加WHERE条件,直接删除整张表所有的数据

条件判断

复制代码
操作符:= < > >= <= != 等
字段名 = 值
例:
id = 2
name != '小明'
price >= 12.22

三、UPDATE - 更新数据

基础语法

复制代码
UPDATE 表名 SET 列 = 值 [WHERE 条件判断];

说明:加WHERE条件,更新符合条件的列的值,不加WHERE条件,将整表的列的值全部更新。

条件判断

复制代码
操作符:= < > >= <= != 等
字段名 = 值
例:
id = 2
name != '小明'
price >= 12.22

例1:带WHERE条件

题目:表中字段名sname,值有小明,将小明的值更新为小雨

复制代码
语句:UPDATE 表名 SET name = '小雨' WHERE name = '小明'

执行完成后,表中所有叫【小明】的将替换为【小雨】没有小明的名字了

例2:不带WHERE条件

表中字段中sname,有小兵、小雨、小花

复制代码
语句:UPDATE 表名 SET sname = '小天'

执行完成后,表中name字段的所有的值都显示为【小天】了

注意:字符串的值,要用英文单引号'值'包围起来

相关推荐
2601_9521963643 分钟前
计算机科学与技术专业应届生投商业分析岗,需要哪些额外能力?
数据库·oracle
皮皮学姐分享-ppx1 小时前
地级市、省级人才政策强度测算(2000-2025)
大数据·数据库·人工智能·百度·高考
晚安日记wanna1 小时前
大厂禁 JOIN 的真正原因,拆到第四层才清楚
数据库·后端·面试
java1234_小锋2 小时前
Redis 宣布正式接入 AI
数据库·人工智能·redis
这个DBA有点耶2 小时前
数据融合平台的下一代形态:数据库内核自己就能融合,为什么还要ETL?
数据库·架构·aigc
数据库小学妹2 小时前
MySQL大表怎么优化?2亿行表的分区归档与冷热分离实战
数据库·mysql·分库分表·分区表·数据库运维·冷热分离
91刘仁德2 小时前
RAG实战 - 向量数据库(Milvus)
数据库·milvus
资深技术分享员2 小时前
Geejing WebBuilder 日志、在线用户、系统监控,出问题时的三个第一现场
java·运维·数据库
煎饼皮皮侠2 小时前
设计一个Web版数据库管理平台(之六):SQL执行监听器 —— 日志、监控与审计
sql·数据库平台
我是小白呀3 小时前
n8n 实战:把 AcmeFlow 的 READY 事件接到 CRM 通知
数据库·人工智能·workflow