SQL简介

SQL (Structured Query Language) 是用于管理关系数据库管理系统的结构化查询语言。 SQL 的范围包括数据插入、查询、更新删除数据库模式创建和修改,以及数据访问控制

关系型数据库管理系统 中的数据存储在被称为的数据库对象中。
表是相关的数据项的集合,它由列和行组成。

常用SQL命令

SELECT – 从数据库中提取数据
WHERE – 提取满足指定条件的数据
UPDATE – 更新数据库中的数据
DELETE – 从数据库中删除数据
INSERT INTO – 向数据库中插入新数据
CREATE DATABASE – 创建新数据库
ALTER DATABASE – 修改数据库
CREATE TABLE – 创建新表
ALTER TABLE – 变更(改变)数据库表
DROP TABLE – 删除表
CREATE INDEX – 创建索引(搜索键)
DROP INDEX – 删除索引


本专栏将依次介绍SQL的各种命令及相关语法。学习之前请先准备好数据库工具,并创建数据表。此处以学生数据表(students)为例

(需要数据库工具和源数据的请私信)


SELECT 语句

SELECT 语句用于从数据库中选取数据

语法

SELECT column1, column2, ...FROM table_name;

column1, column2 表示表的字段名(列名),例如 id , name ,age …
可以同时选取多个字段,每个字段之间以逗号“,”隔开。一段SQL语句结尾以分号“;”结束。
table_name 表示表名,例如students

以students表为例,选取学生的id和姓名数据:

SELECT id,name FROM students;# 从students表中选择id,name字段

另外SQL语法中常使用 星号 “ * ” 表示表的全部字段,所以要选取表的所有字段,可以这样写:

select *from students;#从students表中选择所有字段

注意:SQL命令一般不区分大小写,大写小写均可,但是命令中的字段名与表名应与实际大小写一致。


WHERE 语句

WHERE 语句用于过滤记录,提取满足指定条件的数据。
语法

SELECT column1, column2, ...FROM table_nameWHERE condition;

condition 表示过滤条件

以students表为例,提取年龄为23的所有学生数据:

SELECT*FROM studentsWHERE age = 23;#从students表中过滤出age字段值为23的数据行,选择其所有字段

提取理科一班的所有学生数据:

SELECT*FROM studentsWHERE clazz = '理科一班';

注意:where语句中过滤条件指定字段值为数值不加引号,中文则需要加引号。

另外,where语句中过滤条件可以选择使用多种运算符,如下:

运算符功能
=等于
!=不等于,有些版本使用
>大于
<小于
>=大于等于
<=小于等于
BETWEEN … AND…在某个范围内
LIKE搜索某种模式
IN指定针对某个列的多个可能值

前六个运算符不做赘述,后三个举例解释:

BETWEEN

选取年龄在21到23岁之间的学生数据:

SELECT*FROM studentsWHERE age BETWEEN 21 AND 23;


注意between的范围是左闭右闭,包含两个端值。

LIKE

首先需要知道,LIKE是模糊匹配百分号 % 表示多个字符,下划线 _ 表示单个字符。

% 表示多个字符,_ 下划线表示一个字符;
M% : 为能配符,正则表达式,表示的意思为模糊查询信息为 M 开头的。
%M% : 表示查询包含M的所有内容。
%M_ : 表示查询以M在倒数第二位的所有内容。

选取所有理科班的学生数据:

SELECT*FROM studentsWHERE clazz LIKE '理科%';


选取所有姓赵的学生数据:

SELECT*FROM studentsWHERE name LIKE '赵__';

IN

选取文科五班和理科五班所有学生数据:

SELECT*FROM studentsWHERE clazz IN ('文科五班','理科五班');

本专栏将持续更新,对数据库SQL感兴趣的同学可以关注一下,谢谢!