SQL基础语法入门:创建表,查询表

前言

使用数据库进行数据存储是一种至关重要的方式,它是我们构建强大、可扩展和高效应用程序的基石。而要想充分利用数据库的强大功能,就不能避开SQL。

SQL,全称结构化查询语言,是一种专门用于与数据库交互的编程语言。它让我们能够查询、更新和操作数据库中的数据,是数据驱动应用程序的关键工具。

SQL有以下几个主要的组成部分:

  1. 数据定义语言(DDL):用于创建和修改数据库结构的语句,如CREATE TABLE、ALTER TABLE和DROP TABLE等。

  2. 数据操作语言(DML):用于对数据库中的数据进行操作的语句,如INSERT、UPDATE和DELETE等。

  3. 数据查询语言(DQL):用于从数据库中提取数据的语句,最常见的是SELECT语句。

  4. 数据控制语言(DCL):用于定义和管理数据库访问权限的语句,如GRANT和REVOKE等。

学习SQL就像掌握了一把魔法钥匙,它可以打开数据的大门,让我们能够自由地探索和分析数据,发现其中的规律和趋势,从而为我们的应用程序提供强大的支持。

所以,无论是想构建一个复杂的企业级应用,还是一个简单的个人项目,掌握SQL都是非常有价值的。它不仅可以帮助你更好地理解和使用数据,还可以让你的应用程序更加强大和高效。

本文将介绍SQL的最基础语法,和最常用的语法,包括如何创建表和查询表。本文将带你深入了解SQL的核心语法,包括如何创建和查询表。我们将一起探索这种强大的数据库语言,解锁数据的秘密,为你的数据驱动决策提供坚实的基础。无论你是初学者还是希望复习基础知识的开发者,这篇文章都将为你提供清晰、易于理解的指南,帮助你更好地理解和使用SQL。让我们一起踏上这个令人兴奋的学习之旅吧!

如何你希望学习如何使用SQL插入数据,更新数据,可以看我的另一篇博客SQL基础语法入门:插入数据,更新数据

如何定义表

在SQL中,我们使用CREATE TABLE语句来定义一个新的表。以下是一些基本的示例:

  1. 创建一个简单的表:
CREATE TABLE Students (
    ID INT,
    Name VARCHAR(100),
    Age INT
);

这个语句创建了一个名为Students的表,包含三个字段:ID,Name和Age。

  1. 创建表时指定主键:
CREATE TABLE Students (
    ID INT PRIMARY KEY,
    Name VARCHAR(100),
    Age INT
);

在这个例子中,ID字段被指定为主键。

  1. 创建表时指定自增字段:
CREATE TABLE Students (
    ID INT AUTO_INCREMENT,
    Name VARCHAR(100),
    Age INT,
    PRIMARY KEY (ID)
);

ID字段被设置为自增字段,每次插入新记录时,ID的值会自动增加。

  1. 创建表时指定默认值:
CREATE TABLE Students (
    ID INT AUTO_INCREMENT,
    Name VARCHAR(100),
    Age INT DEFAULT 18,
    PRIMARY KEY (ID)
);

在这个例子中,如果在插入记录时没有指定Age字段的值,那么它的值会默认为18。

  1. 创建表时指定非空约束:
CREATE TABLE Students (
    ID INT AUTO_INCREMENT,
    Name VARCHAR(100) NOT NULL,
    Age INT,
    PRIMARY KEY (ID)
);

在这个例子中,Name字段被指定为非空,也就是说,每条记录的Name字段都必须有值。

  1. 创建表时指定唯一约束:
CREATE TABLE Students (
    ID INT AUTO_INCREMENT,
    Name VARCHAR(100) UNIQUE,
    Age INT,
    PRIMARY KEY (ID)
);

在这个例子中,Name字段被指定为唯一,也就是说,Name字段的值不能在表中有重复。

  1. 创建表时指定检查约束:
CREATE TABLE Students (
    ID INT AUTO_INCREMENT,
    Name VARCHAR(100),
    Age INT CHECK (Age >= 18),
    PRIMARY KEY (ID)
);

在这个例子中,我们添加了一个检查约束,确保Age字段的值总是大于或等于18。

  1. 创建表时指定外键约束:
CREATE TABLE Orders (
    OrderID INT AUTO_INCREMENT,
    OrderNumber INT,
    StudentID INT,
    PRIMARY KEY (OrderID),
    FOREIGN KEY (StudentID) REFERENCES Students(ID)
);

在这个例子中,我们创建了一个Orders表,其中StudentID字段是Students表的外键。

  1. 创建一个名为Students的表,包含ID、Name和Age三个字段:
CREATE TABLE Students (
    ID INT PRIMARY KEY, -- 定义一个名为ID的整数类型字段,作为主键
    Name VARCHAR(100), -- 定义一个名为Name的字符串类型字段,最大长度为100
    Age INT -- 定义一个名为Age的整数类型字段
);
  1. 创建一个名为Books的表,包含ISBN、Title、Author和Price四个字段:
CREATE TABLE Books (
    ISBN VARCHAR(20) PRIMARY KEY, -- 定义一个名为ISBN的字符串类型字段,最大长度为20,作为主键
    Title VARCHAR(200), -- 定义一个名为Title的字符串类型字段,最大长度为200
    Author VARCHAR(100), -- 定义一个名为Author的字符串类型字段,最大长度为100
    Price DECIMAL(5,2) -- 定义一个名为Price的十进制类型字段,总长度为5,小数点后长度为2
);
  1. 创建一个名为Orders的表,包含OrderID、CustomerID和OrderDate三个字段:
CREATE TABLE Orders (
    OrderID INT PRIMARY KEY, -- 定义一个名为OrderID的整数类型字段,作为主键
    CustomerID INT, -- 定义一个名为CustomerID的整数类型字段
    OrderDate DATE -- 定义一个名为OrderDate的日期类型字段
);

如何查询表

在SQL中,我们使用SELECT语句来查询表中的数据。以下是一些例子:

  1. 查询表中的所有记录:
SELECT * FROM Students;

这个语句会返回Students表中的所有记录。

  1. 查询表中的特定字段:
SELECT Name, Age FROM Students;

这个语句只返回Students表中的Name和Age字段。

  1. 使用WHERE子句过滤记录:
SELECT * FROM Students WHERE Age > 18;

这个语句只返回Students表中Age字段值大于18的记录。

  1. 使用ORDER BY子句排序记录:
SELECT * FROM Students ORDER BY Age DESC;

这个语句返回Students表中的所有记录,并按照Age字段的值降序排序。

  1. 使用LIMIT子句限制返回的记录数:
SELECT * FROM Students LIMIT 5;

这个语句只返回Students表中的前5条记录。

  1. 使用GROUP BY子句对记录进行分组:
SELECT Age, COUNT(*) FROM Students GROUP BY Age;

这个语句返回Students表中的记录按照Age字段的值进行分组,对每个年龄段的学生数量进行统计。

  1. 使用HAVING子句过滤分组:
SELECT Age, COUNT(*) FROM Students GROUP BY Age HAVING COUNT(*) > 1;

这个语句返回Students表中的记录按照Age字段的值进行分组,只返回学生数量大于1的年龄段。

  1. 使用JOIN子句连接两个表:
SELECT Students.Name, Orders.OrderNumber
FROM Students
JOIN Orders ON Students.ID = Orders.StudentID;

这个语句返回Students表和Orders表中的记录,其中学生ID和订单中的学生ID相匹配。返回的结果包含学生的姓名和订单号。

结语

数据库就像是一个巨大的仓库,里面存储了各种各样的数据。你可以把每个表想象成一个货架,每个货架上都有很多的盒子,这些盒子就是数据行。每个盒子都有一些标签,这些标签就是数据列,它们告诉我们盒子里面的数据是什么。

SQL就像是仓库的管理员,它知道如何在这个巨大的仓库中找到你需要的数据。你只需要告诉SQL你想要什么(SELECT语句),你想把它放在哪里(INSERT语句),或者你想改变什么(UPDATE语句),SQL就会帮你完成。

学习SQL就像学习一种新的语言,开始可能会有些困难,但是一旦你掌握了基本的语法和词汇,你就可以开始创建自己的查询,探索这个数据仓库的每一个角落。师父领进门,修行在个人,只有通过不断的实践和学习,你才能真正掌握SQL。

  • 32
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值