小白SQL学习笔记(1)

是的,在HTMl没有写完的时候,我又好死不死的开始学SQL,作为一个不会写代码的数据分析师(员),我也很无奈啊。

一、什么是 SQL?

SQL 指访问数据库的结构化查询语言,是一种 ANSI (美国国家标准化组织)的标准计算机语言。可以用来查询、取、插入、更新、删除数据,也可以创建数据库中的表、视图等等。说人话:写代码告诉数据库应该干点什么的让电脑能听懂的语言。想象一下自己在跟电脑对话吧。

然后因为世界上存在很多数据库,比如:MySQL、Oracle等等,所以SQL语言有很多不同的版本,就像中文一样,大家都讲中国话,可是不同地方有不同地方的方言。

如果要创建网站的话,我们需要以下能力:RDBMS 数据库程序(比如Access, Mysql等)、服务器端脚本语言(比如 PHP 或 ASP)、SQL、HTML / CSS语言能力。其中,RDBMS(Relational Database Management System)是关系型数据库管理系统的意思。

二、SQL关键词

一个数据库通常包含一个或多个表,数据存储在表(tables)中,表由列和行组成,每个表由一个名字标识,一行数据也叫一个记录。SQL语句主要是用来操作数据库中的对象,比如表、记录等等。每个SQL语句可以用分号分割,不区分大小写。

可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。下面对一些关键词做笔记。

DML部分,主要是查询和更新数据:

(1)SELECT - 从数据库表中获取数据

(2)UPDATE - 更新数据库表中的数据

(3)DELETE - 从数据库表中删除数据

(4)INSERT INTO - 向数据库表中插入数据

SQL 的数据定义语言 (DDL) 主要是对表、库的定义

(1)CREATE DATABASE - 创建新数据库

(1)ALTER DATABASE - 修改数据库

(3)CREATE TABLE - 创建新表

(4)ALTER TABLE - 变更(改变)数据库表

(5)DROP TABLE - 删除表

(6)CREATE INDEX - 创建索引(搜索键)

(7)DROP INDEX - 删除索引

三、具体SQL语法

以下例子是使用Access做的实验(是的,我就是这么low)。

表是这个:

小白SQL学习笔记(1)_第1张图片

1.SQL SELECT 语句

select语句用于从表中选取数据,结果被存储在一个结果表中(称为结果集)。语法如下:

(1)select列名称 from 表名称

(2)select * from 表名称

星号(*)代表选取所有列。

比如我们写了一个:SELECT 姓名 from 表1,出来是这样的结果;

小白SQL学习笔记(1)_第2张图片

写SELECT * from 表1,结果就是这样:

小白SQL学习笔记(1)_第3张图片

2. SELECT DISTINCT

这个语句用来选取唯一不同值,还是表1的例子,如果写成:SELECT distinct 身份 from 表1,结果就是这样,也就是说会反馈唯一值。

小白SQL学习笔记(1)_第4张图片

至于我为什么混着写,是为了说明SQL确实不区分大小写啊!(实际是懒)。

3.WHERE

WHERE是用来选择条件的,语法是:

SELECT 列名称 FROM 表名称 WHERE 列 运算符 值

运算符有:= 等于,<>不等于,>大于,<小于,>=大于等于,<=小于等于,BETWEEN在某个范围内,LIKE搜索某种模式。在某些方言中: <> 可以写为 !=。

比如我们写:SELECT * from 表1 where 姓名=”李四”结果是这样,就是翻译成人话就是在表一中筛选出姓名=李四的所有列。

小白SQL学习笔记(1)_第5张图片

SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。如果是数值,请不要使用引号,数值的意思是:要进行加减等运算的数字。

4.AND和OR

AND 和 OR 用来结合多个条件

如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。

如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。

例如:select * from 表1 where (城市='北京' or 身份='学生') and 年龄<20

显示的结果是这样,翻译成人话是:在表1中查找所有列显示出城市在北京或者身份是学生的并且年龄小于20的人。此处需要注意,数值不加引号,文本要加引号。

小白SQL学习笔记(1)_第6张图片

5. ORDER BY

ORDER BY 语句用于根据指定的列对结果集进行排序,默认按照升序对记录进行排序。如果想降序排列,可以使用DESC关键字。

比如,以年龄顺序显示记录:SELECT 姓名,城市,年龄 from 表1 order by 年龄

结果是这样的,可以看到是按年龄升序排列。翻译成人话:从表1选择姓名,城市,年龄三个字段同时按年龄升序顺序输出。

小白SQL学习笔记(1)_第7张图片

SELECT 姓名,年龄 from 表1 order by 姓名,年龄 desc

这个就是先按姓名升序排列,如果姓名相同,则按年龄降序排列。原表和结果如下,把上面用的表1加了一个李四的字段,还叫他表1吧,因为懒。

小白SQL学习笔记(1)_第8张图片


小白SQL学习笔记(1)_第9张图片

6. INSERT INTO

INSERT INTO表示插入,语法INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)。

(1)插入新行,insert into 表1 values ("8","二麻子","40","工程师","海南"),结果是这样: 

小白SQL学习笔记(1)_第10张图片

(2)指定列插入指定字段:

insert into 表1(姓名,年龄)values('张飞','70')

select * from 表1,显示如下图,插入的数据,要重新select才能显示。 

小白SQL学习笔记(1)_第11张图片

7.Update

Update语句用于修改、更新表中的数据。语法:

UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

比如:update 表1 set 城市="上海" where 姓名="张飞" 

就是将姓名是张飞的记录的城市更新为上海。结果这样:

小白SQL学习笔记(1)_第12张图片

如果想换很多的话也可以,update 表1 set 城市="上海" where 姓名="张飞",像这样:

小白SQL学习笔记(1)_第13张图片

8. DELETE

Delete是删除的意思,主要用来删除表中的行,语法是:

DELETE FROM 表名称 WHERE 列名称=值

比如,delete from 表1 where 姓名="李四",这样姓名=李四的行就会被删除啦。

小白SQL学习笔记(1)_第14张图片

再打开就变成了这样:


小白SQL学习笔记(1)_第15张图片

也可以在不删除表的情况下删除所有的行,语法是:DELETE FROM table_name或DELETE * FROM table_name,删除行之后表的结构、属性和索引都还是完整的。

你可能感兴趣的:(小白SQL学习笔记(1))