目錄
什么是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(放貨物)。