目录
什么是SQL?
1. DDL(Data Definition Language,数据定义语言)
2. DML(Data Manipulation Language,数据操作语言)
DDL和DML的区别
什么是SQL?
SQL(Structured Query Language,结构化查询语言)是用来管理数据库的语言。想象数据库就像一个大仓库,里面存放着各种数据(比如顾客信息、商品记录等),而SQL就是你用来“指挥”这个仓库的工具。它可以帮你创建仓库、整理货架、添加货物、查询货物,甚至清空仓库。SQL被分成几大类,其中最基础的两类是DDL和DML。
1. DDL(Data Definition Language,数据定义语言)
DDL是用来定义数据库“结构”的语言。结构就像是仓库的框架,包括仓库本身、货架(表)、货架上的格子(列)以及索引(方便找东西的标签)。DDL的命令决定了这些东西怎么建、怎么改、怎么删。下面介绍一下基本的DDL命令:
-
CREATE
作用:创建数据库、表、列和索引。
通俗解释:就像盖房子,你先得设计并建好仓库和货架。比如,你可以用CREATE DATABASE my_store;来建一个叫“my_store”的仓库,再用CREATE TABLE customers (id INT, name VARCHAR(50));建一个“顾客”货架,上面有“id”和“name”两个格子。
重难点:第一次接触可能觉得“表”和“列”有点抽象。简单说,表就是一组相关数据的集合(比如所有顾客的信息),列就是表里的每一类信息(比如名字、年龄)。 -
ALTER
作用:修改数据库对象的结构,比如添加或删除列、索引等。
通俗解释:房子建好后,你可能想在货架上加一个新格子(比如加一个“电话”列),或者移除一个旧格子(比如删掉“地址”列)。比如ALTER TABLE customers ADD phone VARCHAR(15);就是加一个电话格子。
重难点:改结构要小心,因为可能影响已有的数据。比如删列时,里面的数据也会丢掉,相当于把货架上的东西扔了。 -
DROP
作用:删除表、索引,甚至整个数据库。
通俗解释:如果某个货架用不上了,或者整个仓库要拆掉,你可以用DROP TABLE customers;或DROP DATABASE my_store;。注意,这是个“暴力”操作,数据会彻底消失,就像拆房子不会留东西。
重难点:这命令很危险,执行前要确认不需要这些数据了,不然就像失手砸了硬盘。 -
RENAME
作用:重命名一个表。
通俗解释:就像给货架换个名字,比如原来叫“customers”,现在想叫“users”,用RENAME TABLE customers TO users;就行了。
重难点:只是改名字,里面的数据不会变,相当于换了个标签。 -
TRUNCATE
作用:清空表的内容,相当于删除并重建表。
通俗解释:货架上的货物全清空,但货架本身还在。比如TRUNCATE TABLE customers;会把所有顾客记录删掉,但表结构(id、name等格子)保留。
重难点:跟DROP不同,TRUNCATE只清数据不删结构,速度快,但数据没法恢复,就像清空垃圾桶但保留桶本身。
总结DDL:DDL是“建房子、改框架、清空货架”的工具,重点是管理数据库的结构。
2. DML(Data Manipulation Language,数据操作语言)
DML是用来操作数据库“数据”的语言。结构建好后,DML就是你往货架上放货物、查货物、改货物、扔货物的工具。来看看DML命令:
-
SELECT
作用:查询数据库,检索数据行。
通俗解释:想知道货架上有什么?用SELECT * FROM customers;就能列出所有顾客的信息。*代表“全部”,也可以指定列,比如SELECT name FROM customers;只看名字。
重难点:SELECT是查询的起点,后面会学到条件(如WHERE)、排序等,慢慢来,别急着全记住。 -
INSERT
作用:插入数据到表中。
通俗解释:往货架上放新货物。比如INSERT INTO customers (id, name) VALUES (1, 'Alice');就是放了一个顾客,id是1,名字是Alice。
重难点:要确保数据格式匹配(比如id是数字,name是文字),不然就像把方形积木塞圆孔。 -
UPDATE
作用:修改表中数据。
通俗解释:货物信息变了,比如Alice换了名字,用UPDATE customers SET name = 'Alicia' WHERE id = 1;就能改。WHERE是条件,指定改谁。
重难点:如果忘了加WHERE,所有行的数据都会改,相当于把所有货物的标签都换了,容易出错。 -
DELETE
作用:删除表中的行。
通俗解释:扔掉某些货物,比如DELETE FROM customers WHERE id = 1;会删掉id为1的顾客。
重难点:跟TRUNCATE不同,DELETE是按条件删,灵活但也容易误删,记得用WHERE小心操作。
总结DML:DML是“操作货物”的工具,重点是管理数据本身。
DDL和DML的区别
-
目的:DDL管“结构”(框架),DML管“数据”(内容)。
比喻:DDL是建仓库和货架,DML是放货和查货。 -
影响:DDL改的是数据库的定义,DML改的是里面的具体值。
-
例子:CREATE TABLE(建货架) vs. INSERT INTO(放货物)。