深入浅出数据库语言SQL常用方法

在数据库的世界里,SQL(Structured Query Language)就像一位全能武林高手,既能搭建高楼大厦(定义数据),又能翻云覆雨(操纵数据),还能明察秋毫(查询数据),最后还能定乾坤(控制数据)。今天,我们就来聊聊这位"数据库武林盟主"的四大绝技:数据定义、数据操纵、数据查询、数据控制


一、数据定义:建房、装修与拆墙

数据库的江湖,首先要学会"盖房子"。这里的"房子"不是砖瓦堆砌的,而是表(Table)、索引(Index)、视图(View)等数据库对象。

  1. CREATE(建房)

    想开一家火锅店?先用CREATE搭建"菜单表":

    sql 复制代码
    CREATE TABLE menu (  
        dish_id INT PRIMARY KEY,  
        dish_name VARCHAR(50),  
        price DECIMAL(10,2)  
    );  

    这里CREATE TABLE就像请来建筑队,盖好火锅店的"菜单仓库",规定了每道菜的ID、名字和价格。

  2. ALTER(装修)

    火锅店开业后,突然发现菜单里没写"辣度等级"怎么办?ALTER来救场:

    sql 复制代码
    ALTER TABLE menu ADD COLUMN spiciness_level VARCHAR(20);  

    这行代码就像找装修队,给菜单表加个新栏目"辣度等级",瞬间提升用户体验。

  3. DROP(拆墙)

    如果火锅店要改行卖烧烤,直接DROP掉旧菜单表:

    sql 复制代码
    DROP TABLE menu;  

    这命令一发,整个火锅菜单的"房子"轰然倒塌,连地基都没剩。


二、数据操纵:点菜、改单与退菜

数据库的"菜品"管理,靠的是INSERTUPDATEDELETE三大招式。

  1. INSERT(点菜)

    客户点了麻辣香锅,服务员要用INSERT记录订单:

    sql 复制代码
    INSERT INTO orders (order_id, customer_name, dish_id, quantity)  
    VALUES (1001, '张三', 101, 2);  

    这行代码就像在订单表里"点菜",把张三点了两份麻辣香锅的信息写进数据库。

  2. UPDATE(改单)

    张三临时想把麻辣香锅改成微辣,UPDATE来处理:

    sql 复制代码
    UPDATE orders  
    SET spiciness_level = '微辣'  
    WHERE order_id = 1001;  

    这招"精准修改",只改动张三的订单,其他顾客的辣度丝毫不受影响。

  3. DELETE(退菜)

    如果张三后悔点了这道菜,直接DELETE退单:

    sql 复制代码
    DELETE FROM orders WHERE order_id = 1001;  

    这行代码就像服务员端走麻辣香锅,订单表里彻底消失,连痕迹都不留。


三、数据查询:从翻菜单到算账

查询数据是SQL的精髓,就像在火锅店里翻菜单、找菜品、算账单。

  1. SELECT(翻菜单)

    想看看今天有哪些菜品?SELECT帮你搞定:

    sql 复制代码
    SELECT * FROM menu;  

    这行代码就像服务员把菜单摊开给你看,所有菜品一目了然。

  2. 简单查询与条件筛选(找特定菜)

    如果只想查"辣味"菜品:

    sql 复制代码
    SELECT dish_name, price FROM menu WHERE spiciness_level = '辣';  

    这招"条件筛选"就像服务员拿着放大镜,帮你从菜单里找出所有辣味菜。

  3. 连接查询(跨表找信息)

    想查张三点了什么菜?需要连接"订单表"和"菜单表":

    sql 复制代码
    SELECT o.customer_name, m.dish_name, m.price  
    FROM orders o  
    JOIN menu m ON o.dish_id = m.dish_id;  

    这行代码就像服务员在订单表和菜单表之间架起一座桥,把张三点的菜名和价格连起来。

  4. 子查询与聚集函数(算账单)

    想统计张三的消费总额?SUM和子查询联手:

    sql 复制代码
    SELECT SUM(m.price * o.quantity) AS total_cost  
    FROM orders o  
    JOIN menu m ON o.dish_id = m.dish_id  
    WHERE o.customer_name = '张三';  

    这招"算账单"直接把张三的消费明细加起来,连零头都算得清清楚楚。

  5. 分组查询(分类统计)

    想知道每种辣度的菜品销量?GROUP BY来帮忙:

    sql 复制代码
    SELECT m.spiciness_level, COUNT(*) AS dish_count  
    FROM menu m  
    GROUP BY m.spiciness_level;  

    这行代码就像服务员把菜单按辣度分类,统计每类有多少道菜。

  6. 字符串操作(模糊搜索)

    忘记菜名的拼写?用LIKE模糊搜索:

    sql 复制代码
    SELECT dish_name FROM menu WHERE dish_name LIKE '%鱼%';  

    这招"模糊搜索"就像服务员问:"您是不是想找带'鱼'的菜?"瞬间帮你找到"水煮鱼"或"酸菜鱼"。


四、数据控制:授予权限与收回权限

数据库的江湖,除了武功,还需要规矩。GRANTREVOKE就是管理权限的"掌门令牌"。

  1. GRANT(授予权限)

    让服务员小李能查看菜单表:

    sql 复制代码
    GRANT SELECT ON menu TO XiaoLi;  

    这行代码就像掌门人把"菜单表"的查看权交给小李,他就能翻菜单了。

  2. REVOKE(收回权限)

    如果小李离职了,立刻收回权限:

    sql 复制代码
    REVOKE SELECT ON menu FROM XiaoLi;  

    这招"收回权限"就像掌门人把令牌收走,小李再也看不到菜单了。


结语:SQL江湖的终极奥义

SQL的四大门派------定义、操纵、查询、控制,就像武功的招式:建房(定义)、点菜(操纵)、翻菜单(查询)、定规矩(控制)。掌握这些技能,你就能在数据库的江湖里游刃有余。


附:SQL学习小贴士

  • 多练多写:SQL是实践性语言,光看教程不如动手写代码。
  • 善用工具:用数据库管理工具(如MySQL Workbench、DBeaver)直观操作。
  • 遇到问题?别怕!Stack Overflow和CSDN是程序员的"灵丹妙药"。
相关推荐
夕颜1117 分钟前
Claude AI 编程初体验
后端
程序员爱钓鱼11 分钟前
Go语言实战案例:使用WaitGroup等待多个协程完成
后端·go·trae
程序员海军19 分钟前
告别低质量Prompt!:字节跳动PromptPilot深度测评
前端·后端·aigc
程序员爱钓鱼20 分钟前
Go语言实战案例:任务调度器:定时执行任务
后端·go·trae
沙蒿同学26 分钟前
Golang单例模式实现代码示例与设计模式解析
后端·go
Apifox27 分钟前
如何在 Apifox 中给字段设置枚举(比如字符串、数组等)?
后端·ai编程·测试
用户4976360000601 小时前
内部类不能bean注入
后端
Code blocks1 小时前
SpringBoot中策略模式使用
java·spring boot·后端·mybatis·策略模式
ん贤1 小时前
面向对象的七大设计原则
前端·后端·go
coding随想2 小时前
深入浅出数据库管理系统DBMS
后端