asp多表查询并显示_sql在cmd中的增删改查和多表联查

一,cmd的了解

终端(shell)包含:1,cmd 2,poweishell

d6b3ce564fb588fab3bdd7acb03fe954.png

二,cmd连接数据库

1,host(默认IP localhost,如果IP是本机,可不写):IP

简写-h

2,port(默认3306,如果端口号是3306,可不写):端口

简写-P

3,user:账号

简写-u

4,password:密码

简写-p

cmd中输入mysql -u root -p,回车。再输入密码,回车,连接成功。退出exit。

42d3981bcb9590dfec059cf6588bc713.png

PS:同理如果连接其他电脑数据库,如:

输入:mysql -h 192.144.148.91 -u ljtest -p ,回车后输入密码

MySQL中表的关系

Mysql是关系型数据库(表与表之间的逻辑关系)

如:学生表和班级表,学生表和成绩表

那么,学生表的姓名与班级表的姓名相对应,为方便修改操作,可由学生表的编号作为该学生的代表编号,其他表格的姓名均用学生编号代替,即学生表的编号=成绩表的学生编号, 如图

4579dbd2c9a6ce07182def0db281d21f.png

c35cec2cbca4da6292175b7f7991cfd2.png

成绩表的学生编号1对应学生表的编号1的信息,及成绩表的学生编号1 就是“张三”

因此学生编号就是成绩表的“外键”(外键:建立表与表之间的关系)

因此我们首先准备好三张有关联的表格:学生表t_student,班级表t_class,成绩表t_grade

1fb9ec633638f57b87e2ce81c5eedd9f.png

eba2cca4cb02f51576fb92bc30c2dc9a.png

96a4e0bc89f48cab72852d65aa0a6384.png

Mysql 在 cmd 上的具体操作(增删改查)

一,数据库和表格管理

1,输入命令 mysql -u rool -p,输入密码,连接成功

1ec1a1bfc3fc5d53eff183c56883c682.png

注意:连接数据库后,之后的语句运行结尾必须加英文分号(;)并回车

小技巧:光标处按键盘上下,可查询输过的命令

2,输入show databases;(简称bd) 查看数据库列表(nvicate会自动运行命令,所以会自动展示,cmd则需要手动)(databases=数据库)

3579784a678c331c5ef0308fce582a84.png

注意:所有命令结尾都必须加上分号(英文版),否则无法运行命令,如果命令正确,漏掉分号,自动换行后直接补上英文分号即可。如果输错中文分号,可在自动换行后按crrl+c 先中止,再重新输入语句。

3,选择数据库

输入 use 数据库的名字; ,出现databases changed ,表示成功

df0eff7a18733b62dfa7825b0ec96545.png

4,查看列表

输入 Show tables ;,显示出该数据库的表列表

25226f711fe00a243b0fc36d958aee35.png

5,查看表格

输入Select *from 表名; ,展示出该表的所有数据(*表示所有字段,可根据情况修改)

即 select 字段1,字段2 from,就是只展示出该表的字段1,字段2,如图

输入 select sname from t_student;

6a6ef469c0f9926f116bf36a9a4ee22d.png

以上完成后,就可以进行更具体的操作了!

通过条件查询表格明细

输入 Select *from 表名 where 字段1=值 and 字段2=值

如输入 select * from t_student where sex = ‘女’ and age > 25;

(因为“女”是字符串,所以必须加单引号)

查询出学生表的大于25岁女生

fdbd4f5128265a2f17860416c7f64090.png

二,判断符与逻辑连接符的运用

判断符:= ,>,<,!=(不等于),in,is,like,between, 取反:加not,如 is not,not in 等

逻辑连接符:and,or 并且,或者的意思

In/is/like/between 的运用

1,in 在**里面的意思,如城市

如输入select *from t_student where address in (‘杭州’,'上海’);

查询出所有在上海杭州的学生的数据

7479f0a47111aaee2895ed1124dfd135.png

取反同理,运用not in

可输入select *from t_student where address not in (‘杭州’,'上海’);

查询出所有不是杭州上海的学生的数据

2b8be13d06a32ff056b8e9ef60c44127.png

2, is 用来判断是否为空 (null是空的意思)

如elect *from t_student where phone is null

查询出phone 是 null 的所有数据

34f64c1c4c28c352b7125566e44eed1f.png

取反同理,运用 is not (注意:is 的取反与其他不同,is 在前,not 在后)

可输入select *from t_student where phone is not null

3, between and 表示两只之间

如select *from t_student where age between 18 and 25

查询出学生表中所有年龄在18-25之间的学生

4a4d015bfb61ca7c18b1211ce6738401.png

引申:查出学生表中所有年龄在18-25之间的男学生

输入select *from t_student where age between 18 and 25 and sex=’男’;

注意: 语句当中的两个and,不是同一个意思

结果如图

6116bea75379fd19b73c0b713232e69f.png

取反同理,运用not between

可输入select *from t_student where age not between 18 and 25;

4, Like “包含”的意思, 用于字符串的查询

如输入select *from t_student where sname like ‘张%’;

查询姓张的同学

9ed2a76ea4b550e1d3ae0f1eb8b2d491.png

同理查询凡结尾的学生

输入select *from t_student where sname ‘%凡’;

同理查询名字中有含有小的学生

输入select *from t_student where sname ‘%小%’;

三,sql的新增

输入 Insert into 表名(字段1,字段2,字段3) values (值1,值2,值3);

注意:新增是一行一行新增的

如在class 表中新增一行

输入 insert into t_class (id,cname,remark) values (5,’扬州’,’挺好’);

显示OK,已经新增,查看一下表明细确实新增一个字段

df75260bd48eaf307433994def84c59c.png

四,sql的修改

输入update 表名 set 字段1=值,字段2=值 where 条件;

表示修改表中某行某字段的值

如输入update c_class set teacher = ‘王也’ where id = 5;

显示OK,修改成功

查看一下表明细,确实修改成功咯

2d744d71273ca9f97719134a88a2b01b.png

五,aql的删除

输入Delete from 表明 where 条件

如输入Delete from t_class where id = 5;

删除班级表id为5的字段(删除也是一行一行删除的)

显示ok,删除成功,结果如图

cd288fca70d8312e0cdf9c1e9e3bf271.png

六,多表联系和查询

1,多表联系

输入Select * from 表1 join 表2 on 表1.字段1=表2.字段2; 将表1和表2联系起来

如 select * from t_student join t_class on t_student.cid = t_class.id;

或者可以指定字段显示,更便于查询重点数据

如select t_student.id,t_student.sname,t_class.cname,t_grade.chinese from t_student join t_class on t_student.cid = t_class.id join t_grade on t_garde.sid = t_student.id;

可显示出三表关联起来的指定数据信息,如图

b28e005612136efa0947288321ed1bcb.png

2,取别名

因写字段时都必须带上表名,略显繁琐,因此可以用aql技巧 :用取别名方式简写表名或字段。

1)如何给字段取别名?

如先查询t_student表的id与名字数据

输入select id,sname from t_student;

7cb9d0a86b0031fd63823f7a24350b81.png

那么针对这两个字段怎么简写字段?

可输入 select id as a,sname as b from t_student; (将id简写成a,将sname简写成b)

结果如图,显示出来的表格字段就被简化成a,b了

ae6821e3d17fcec005d76d75cbbcc572.png

注意:若省略as,即select id a,sname b from t_student; 同样受用,因此as可省略

2)怎么给表名取别名

如select * from t_student join t_class on t_student.cid=t_class.id;

那么可以写成Select *from t_student as a join t_class as b on a.cid=b.id; (as可省略)

同样针对select t_student.id,t_student.sname,t_class.cname,t_grade.chinese from t_student join t_class on t_student.cid = t_class.id join t_grade on t_garde.sid = t_student.id;

可以写成 select a.id,a.sname,b.cname,c.chinese from t_student a join t_class b on a.cid=b.id join t_grade c on c.sid=a.id;

4ad3a9bfd09e23243ab212987f2ae3e9.png

2,多表联查

只,需将联系的表Select * from 表1 join 表2 on 表1.字段1=表2.字段2 加上条件

即Select * from 表1 join 表2 on 表1.字段1=表2.字段2 where 字段1=值,字段2=值

如select a.id,a.sname,b.cname,c.chinese from t_student a join t_class b on a.cid=b.id join t_grade c on c.sid=a.id where c.chinese >100

显示出abc表联合的语文成绩大于100的学生信息,结果如图

58e11a9e1ac5195df661d07c9ac69f59.png

七,Navicat sql 语句运行方式

在Navicat中选择数据库,选择查询,新建查询,将aql语句写到空白处,可美化sql,运行,结果出现

fd297290b5555a2adb6dace04f6157e3.png

八,聚合函数(给表格做计算)

分别有:

计数count

最大值max

最小值min

平均值avg

求和sum

计数count

如 select count(*) from t_student

c9cda3ed44729d0374c1b0cd53df7fb1.png

注意:最大值max,最小值min,平均值avg,求和sum只能用在数字上

如select count(*),max (age) , min(age) , avg(age),sum(age) from t_student;

显示出结果计数,最大年龄,最小年龄,平均年龄,年龄总和

ebc4d1dc00ccdf5f44d2c1431e1954b5.png

九,课后题目

题目一:查询姓‘王’的学生个数

解答:输入语句select count(*) from t_student where sname like王%';

显示结果

6ab4333b294b5317ad83802150227b4e.png

题目二:查询数学比语文成绩高的所有学生的学号

解答:输入select a.id from t_student a join t_grade b on a.id=b.sid where b.math> b.chinese;

显示结果

6a016e9a4d1cae2b50109f8ec4f324a5.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值