sql 以a开头的所有记录_15分钟学会 SQL

知乎视频​www.zhihu.com

一、SQL 是用于访问和处理数据库的标准的计算机语言。

数据库的基本操作就是增删改查。

1. 一个数据库通常包含一个或多个表。

每个表有一个名字标识(例如:"students"),

表是相关的数据项的集合,它由列和行组成。

c42f61fc8654391fff9d0709cf6cbb12.png

8513918bbc6798aa7f2b8c31f2d3689c.png

2. 首先我们要找一个可以在线编程的地方,入门的话我们就不需要那么麻烦,亲自配置编程环境了。

在百度搜索:在线SQL,找到:在线SQL—廖雪峰的官方网站打开这个网页。

网页中间的输入框就是输入代码的地方,点击下面的run按钮,就会在下方输出结果。

9b487d6edc033274713340910fb695af.png

二、创建删除数据库

1. 我们先把输入框中的全部代码删除,清空。

2. 输入:不要忘忘了后面的冒号。

使用show databases;意思是查看数据库,可以得到当前服务器中的所有数据库。

show databases; 

3. -- 以双减号开头的是注释

  show    databases;
 --查看    数据库 

4. 点击run按钮,查看下方结果,显示有三个数据库。

410a86ddec6f15d323c65a1bd1b698fc.png

5. 使用CREATE DATABASE命令创建一个名叫a的数据库。

CREATE DATABASE a; 
CREATE      DATABASE    a;
 --创建      数据库     数据库名; 

6. 再使用show databases;查看一下数据库。

在运行代码前删除或注释掉前面的代码。

show databases; 

7. 点击run按钮,查看下方结果,多了一个名叫a的数据库。

fc155e4fd2bb4b07b0c1a2641d50491c.png

8. 数据库主要是对表操作,选择数据库后可以省掉每次指定数据库的麻烦。

use a 
  use     a
 --使用    a数据库 

9. 使用drop database a; 删除名叫a的数据库。

drop database a; 
  drop    database    a;
--删除    数据库      数据库名; 

10. 再使用show databases;查看一下数据库。

点击run按钮,查看下方结果,名叫a的数据库被删除了。

drop database a; 

show databases; 

410a86ddec6f15d323c65a1bd1b698fc.png

三 、查询数据

1. 在线SQL 自带了两表,一个students表和一个classes表

8182ae515aeee32bebd2fe68873fc229.png

2. 我们现在要查询students表的所有行,我们用如下SQL语句:

SELECT * FROM students; 

SELECT是关键字,表示将要执行一个查询,*表示“所有列”,FROM表示将要从哪个表查询,本例中是students表。

SELECT       *     FROM  students;
--选择    所有行    从    学生表 

3. 点击run按钮,查看下方结果,显示studends表的所有行。

b91bca809e83f41f2e148def3f41eadf.png

四、条件查询,where 子句用于提取那些满足指定条件的记录。

1. 只查询 分数大于等于80的学生。

WHERE关键字后面的score >= 80就是条件。score是分数,该列存储了学生的成绩,

SELECT * FROM students WHERE score >= 80; 
SELECT      *      FROM   students  WHERE    score      >=        80;
--选择    所有行    从    学生表    找到    分数例    大于等于    80的数据 

点击run按钮,查看下方结果,只显示分数大于等于80的学生的数据。

cabefe2dc41bf9ab58afb0e171350129.png

2. 要同时满足两个条件。

查询 分数大于等于80的 男生

要同时满足 <条件1> AND <条件2>

条件要同时满足 <分数大于等于80> 和 <男生>,

WHERE条件: score >= 80 AND gender = 'M',

gender列存储的是字符串,M需要用单引号括起来。

M是男学生,F是发学生。AND可以理解为并且。

SELECT * FROM students WHERE score >= 80 AND gender = 'M'; 
SELECT    *    FROM students WHERE score   >=        80        AND  gender = 'M';
--选择  所有行  从  学生表  找到  分数例  大于等于  80        并且  性别    男的数据 

点击run按钮,查看下方结果,只显示分数大于等于80的男学生的数据。

edeba6a0dce612d1916d2147bc9b7909.png

4. 满足任意之一的条件即可。

查询 分数大于等于80的 或 者是男生的 数据。

<条件1> OR <条件2>

“分数在80分及以上” 或者 “男生”

score >= 80 OR gender = 'M'

SELECT * FROM students WHERE score >= 80 OR gender = 'M'; 
SELECT    *    FROM students WHERE score   >=        80        OR  gender = 'M';
--选择  所有行  从  学生表  找到  分数例  大于等于   80        或者  性别   男的数据 

点击run按钮,查看下方结果,只显示分数在 “80及以上” 或者 “男生”,

a5a9fc371c0cff60b046e0e41c2dfc99.png

5.只查询“不符合该条件”的数据。

只查询 class_id不是2的 数据。

NOT <条件>,

不是 二班的

NOT class_id = 2:

SELECT * FROM students WHERE NOT class_id = 2; 
SELECT    *    FROM students WHERE NOT    class_id =   2; 
--选择  所有行  从  学生表  找到   不是   班级     为  2的数据; 

点击run按钮,查看下方结果,只显示班级不为 二的的数据,

17b3147b28a42735fe4cd0a846ac65a3.png

五、投影查询,只查询指定列的数据,而不是所有列的数据。

1. 只查询name列

SELECT name FROM students; 
SELECT  name   FROM  students;
--选择  name列  从   学生表  

结果只显示了name列

46ed4e895eacf2b15c6d689ac955a621.png

2. 同时使用投影查询和条件查询

查询id列、score列中的女生。

SELECT id,score FROM students WHERE gender="F"; 
--选择 id,score列 从  学生表   找到  性别   女 

640a9fdd7c50d2a0bb2ebda4f5fe7d4f.png

3. 改变列名和顺序。

把score列的列名改为points,把score列的顺序放到name列的左边。

SELECT id, score points, name FROM students; 
SELECT id, score points, name FROM students; 
--选择  id, score points, name 从   学生表 

065f77f5d8fd40c0c43a346ab92ee82a.png

六、排序,通常我们是根据主键排序的,但是也可以根据其他条件排序。

1. 按照成绩从低到高进行排序

加上ORDER BY子句就可以,ORDER BY的意思是:顺序按照

SELECT id, name, gender, score FROM students ORDER BY score; 
SELECT  id,    name,   gender,    score   FROM  students   ORDER   BY    score; 
--选择  id列   name列  gender列  score列  从    学生表     顺序    按照  分数 

eb2664966c5129326339ff464ae51f01.png

2. 如果要反过来,按照成绩从高到底排序,我们可以在最后面加上 DESC 表示“倒序”:

SELECT id, name, gender, score FROM students ORDER BY score DESC; 
SELECT  id,    name,   gender,    score   FROM  students   ORDER   BY    score DESC; 
--选择  id列   name列  gender列  score列  从    学生表     顺序    按照  分数  倒序; 

b12c64f8a53ee43590f9d80edd2b6b24.png

3. 同时按score, gender排序

如果score列有相同的数据,要进一步排序,可以继续添加列名。

ORDER BY score DESC, gender表示先按score列倒序,如果有相同分数的,再按gender列排序

SELECT id, name, gender, score FROM students ORDER BY score DESC, gender; 
SELECT   id,    name,   class_id,  score   FROM   students   ORDER    BY   score  DESC, gender; 
--选择  id列   name列  class_id列  score列  从    学生表     顺序    按照  分数  倒序,  性别; 

2b7dbf0a2a51c0485a45086efa0414de.png

七、

1. 查询前3行,LIMIT 3 OFFSET 0意思是从0号记录开始,最多取3条。

SELECT * FROM students LIMIT 3 OFFSET 0; 
SELECT      *      FROM  students  LIMIT 3 OFFSET 0; 
--选择    所有行    从    学生表    限制 3  从   0; 

009f392dfb783cf4767ca50ba8456dde.png

2. 聚合查询,统计一张表的数据量

查询students表一共有多少条记录,count是数量的意思,(*)是全部的意思。

SELECT COUNT(*) FROM students; 
SELECT COUNT(*) FROM students; 
--选择 数量所有  从   学生表 

结果是10条。

2bc510ba8d6cff5940e12cdae35e684f.png

3. 查询gender列M的数量,并且把列名命名为boys

SELECT COUNT(*) boys FROM students WHERE gender = 'M'; 
SELECT COUNT(*) boys FROM students WHERE gender = 'M'; 
--选择 数量所有  男孩   从   学生表  找到  性别     男 

fef5fdea789a648c700fe7d366dbe91f.png

4. 同时查询students表和classes表

SELECT * FROM students, classes; 
SELECT  *   FROM  students, classes; 
--选择 所有  从    学生表  , 班级表; 

3242754fc8be59065668ad82699fc8f9.png

八、修改数据

1. 插入数据,在students表中插入class_id为2,name为‘大牛’,gender为'M',score为80,的一条新数据。

INSERT INTO students (class_id, name, gender, score) VALUES (2, '大牛', 'M', 80); 

-- 查询并观察结果: 
SELECT * FROM students; 
INSERT INTO students (class_id, name, gender, score) VALUES (2, '大牛', 'M', 80); 
--插    入   学生表   (class_id, name, gender, score) 值为   (2, '大牛', 'M', 80);  

SELECT * FROM students; 
INSERT INTO <表名> (字段1, 字段2, ...) VALUES (值1, 值2, ...); 

8fb73d078070d90fa3fb9463ddfdd54b.png

2. 一次性添加多条新记录

INSERT INTO students (class_id, name, gender, score) VALUES
   (1, '大宝', 'M', 87),
   (2, '二宝', 'M', 81);  

SELECT * FROM students;  

487beb6f2e9a940324287f4257500f77.png

3. 新数据库表中的记录,使用UPDATE语句。

将 id为1的这条数据的name改为'大牛',score改为66.

UPDATE students SET name='大牛', score=66 WHERE id=1; 

-- 查询并观察结果: 
SELECT * FROM students WHERE id=1; 
UPDATE  students SET name='大牛', score=66 WHERE id=1; 
--更新  学生表   设置 name='大牛', score=66  找到 id=1;   

SELECT * FROM students WHERE id=1; 
UPDATE <表名> SET 字段1=值1, 字段2=值2, ... WHERE ...; 

19cab895f5bc108e4b651dd3bd781a0d.png

4. 删除数据库表中的记录,我们可以使用DELETE语句。

删除students表中id=1的这一条数据。

DELETE FROM students WHERE id=1; 

-- 查询并观察结果: 
SELECT * FROM students; 

981063b68c16ce64a97ef9a4ac4a22d0.png

九、创建数据表

1. 创建一个名叫a的数据表。

CREATE TABLE a; 

2. 查看创建表a。

SHOW CREATE TABLE a; 

691a8bc98d436f32f72019835a686c23.png

3. 给a表新增一列,列名叫做id。

ALTER TABLE a ADD COLUMN id VARCHAR(10) NOT NULL; 

4. 在a表中为id例插入值为3的一条新数据。

INSERT INTO a (id) VALUES ("ABC"); 

5. 查询a表。

SELECT * FROM a; 

7857be439b1e59c9ddb18983c0d28a93.png

6.在a表中删除id列。

ALTER TABLE a DROP COLUMN id; 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值