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字段的所有的值都显示为【小天】了

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

相关推荐
枕布响丸辣7 小时前
MySQL 主从复制与 MyCat 分库分表实战详解
数据库·mysql
eRTE XFUN7 小时前
Redis 设置密码(配置文件、docker容器、命令行3种场景)
数据库·redis·docker
Lhan.zzZ7 小时前
Qt开发踩坑:QList越界问题导致程序崩溃
数据库·c++·qt
8Qi87 小时前
Redis哨兵模式(Sentinel)深度解析
java·数据库·redis·分布式·缓存·sentinel
数据库小组7 小时前
从业务库到实时分析库,NineData 构建 MySQL 到 SelectDB 同步链路
数据库·mysql·数据库管理工具·数据同步·ninedata·数据库迁移·selectdb
CDN3607 小时前
CDN HTTPS 证书配置失败?SSL 部署与域名绑定常见问题
数据库·https·ssl
Chengbei117 小时前
一次比较简单的360加固APP脱壳渗透
网络·数据库·web安全·网络安全·系统安全·网络攻击模型·安全架构
寒秋花开曾相惜7 小时前
(学习笔记)3.9 异质的数据结构(3.9.1 结构)
c语言·网络·数据结构·数据库·笔记·学习
mcooiedo8 小时前
mybatisPlus打印sql配置
数据库·sql
wudl55668 小时前
MySQL 8.0.42 Docker 开发部署手册
数据库·mysql·docker