欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SQL语句的练习

程序员文章站 2022-03-08 17:36:46
...

SQL语句的学习与使用


前言

:::上篇文章我们介绍了如何用 Navicat来操作数据库中的数据,今天我们学习如何通过终端输入SQL语句来操作数据库中的数据,


提示:SQL语句中的标点均由英文状态下输入!

一、连接数据库

使用快捷键Win+R调出运行窗口,在运行窗口中输入cmd,并回车,即可调出DOS控制台
打开DOS控制台后先连接我们的数据库,输入以下代码,然后输入密码即连接数据库

mysql  -u 数据库的用户名  -p

SQL语句的练习

连接成功后,我们首先要显示出我们的数据库,使用命令

show databases;

输入命令后我们就能够看到我们的数据库信息,这时我们虽然能看见我们的数据库但是还不能够使用,要使用某个数据库,就要输入命令

use  数据库名;

输入命令选择我们的数据库后,会提示我们 Database changed,此时我们无法看到我们数据库中的表,输入命令,就能够显示出我们数据库中的表。

show tables;

显示某张表的详细数据输入命令,这样我们的数据库就连接成功了

select * from 表名 ;

二、插入数据

使用insert into 命令向表中插入具体的数据,注意数据要与字段名一一对应,例如insert into t_student (id,sname,age,phone) values (100,‘增加数据’,‘100’,‘17852400833’);
增加字符串时,用英文状态下的引号引起来
当添加一条数据时,若某个字段为必填字段,则使用insert into命令时必须为此字段进行赋值,否则将会报错。

insert into 表名  (字段1,字段2,字段3,字段4) values (数据1,数据2,数据3,数据4);

三、更改数据

使命update命令更改数据库中的信息,例如将id为100的数据更改为id为101,名字改为“更改数据”,注意where后跟限制条件,可以跟多重限制条件用and进行连接

 update 表名 set 字段1 =数据1,字段2 =数据2 where id = 101;

如果不适用where条件进行限制,则会将表中所有记录的指定字段都进行更新。

四、删除数据

delete from 表名 where 限制条件;

不使用where限制条件时将会删除整张表中的数据

五、查找数据

使用命令可以查找表中的全部数据

select * from  表名;

使用命令,可以查找并显示对应字段的数据

select  字段1,字段2,字段3 from 表名;

可以在查询语句后加上where条件限制,对数据进行筛选,比如筛选年龄大于20岁的男生:select name, sex,age from t_student where age>20 and sex = ‘男’;

select  字段1,字段2,字段3 from 表名 where 字段名限制条件;

where的限制条件有很多,例如查询姓王的所有学生 like

select * from t_student where name like '王%';

查询名字中带“文”的所有学生 like

select * from t_student where name like '%文%';

查询名字以“浩”的所有学生 like

select * from t_student where name like '%浩';

判断字符串时用 is

select * from t_student where name is ‘刘大宝’;

查询id是 1 id是3 id是5的学生 in()

select * from t_student where id in (1,3,5);

查询某个范围内的信息,例如年龄在18和25之间的学生信息 between …and…

select * from t_student where age between 18 and 25;

六、多表联查

上边内容仅仅是对单张表进行操作,但是在实际生活和工作中,往往需要多张表格共同使用,也就是需要将多张表联合起来进行操作,使用 join on 命令。
此时就需要引入一个新的名词—外键,也就是说一个表的某个字段如cid能用来连接另一张表,那么cid就是另一张表的的外键,例如
有一张学生表和班级表
SQL语句的练习
SQL语句的练习
此时输入命令,通过外键将学生表的和班级表连连起来,此时学生表中的cid就叫做班级表的一个外键

select * from t_student join t_class on t_student.cid = t_class.id;
select * from 表名1 join 表名2 on 表名1.cid = 表名2.id;

SQL语句的练习
其中由于查询时需要显示具体的字段名(t_class.id)表名较长时,操作会比较麻烦,所有有一种简单方法 as 为表去一个简化的名,实际表名不变,只是逻辑上改为取的别名
如连接学生表与班级表,我们就可以使用简化的方法

select * from t_student  as s join t_class  as c on s.cid =c.id;
将 t_student重命名为s     将t_class 重命名为 c

使用中 as 可以省略

select * from t_student s join t_class c on s.cid =c.id;
将 t_student重命名为s     将t_class 重命名为 c

七、课后题:

新建一个学生表(id,sname,cid,)、课程表(cid,classname)、成绩表(id,chinese,math,english),并写出以下SQL语句
1.查询行王的学生的个数
2.查询所有语文成绩比数学成绩高的所有学生的学号

1. select count (*) from t_student where name like '王%'
2.select s.id from t_student  s join  t_grade g on s.id = g.id where g.chinese > g.math; 
相关标签: mysql 数据库