groovy怎样从sql语句中截取表名_sql语句的基本应用

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

一、连接数据库

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

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

239775896013aa5ea487559f84dc0385.png

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

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就是另一张表的的外键,例如
有一张学生表和班级表

d28900c9bf1ace296eb842252426a64f.png

9d0bb85d5b60244cab6fe76fd2b779be.png


此时输入命令,通过外键将学生表的和班级表连连起来,此时学生表中的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;

d73e878e8c151525033ab86c24712a06.png


其中由于查询时需要显示具体的字段名(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


数据库作业:
1、 用SQL语句创建以下三张表,要求字段属性要求如图所示。
学生表:t_student

8525ba5643b8bee5fde672911e6effcf.png


1.连接数据库
指令:mysql -u root -p;然后输入密码,成功连接数据库

0e553e618420aaf60ea9ec341cd10eff.png


2.查看数据库
指令:show database;

4c29d44a3fc3d1b353788860e59c1d43.png


3.创建数据库
指令:create database test;

29e19f631f35701b79c27ac245a42e0b.png


4.使用数据库
指令:use test;
5.创建学生表
指令:create table t_student1(
id int(16) not null primary key auto_increment,
sname varchar(25) not null,
sex varchar(25),
age int(16),
phone varchar(25),
address varchar(25),
cid int(255),
remark varchar(25)
);

022012784671ca629bca2fad468345af.png


班级表:t_class

5b310018e81e85f1f37af667cae1609d.png


6.创建班级表
指令:
create table t_class(
id int(11) not null primary key auto_increment,
cname varchar(25) not null,
teacher varchar(25),
remark varchar(25)
);

42d86394eb28f87c8d6dd30f40796a92.png


成绩表:t_grade

623478702127e62ab05dcb372410614c.png


7.创建成绩表
指令:
create table t_grade(
id int(16) not null primary key auto_increment,
sid int(11),
chinese varchar(25) ,
math varchar(25),
english varchar(25),
remark varchar(25)
);

58b942ffc7de82b9d05a60cb9a2b5e8c.png


2、 用SQL语句,分别在三张表中插入数据。
插入学生表: insert into t_student values(9,'星星','女',29,'13456767798','北京',1,''),
(8,'张辉','男',19,'13456767558','广州',1,''),(7,'刘明','男',18,'13422767798','乌
鲁木齐',2,''),(6,'刘飞','男',16,'13455667798','杭州',3,'');
插入班级表:insert into t_class values(1,"1班","王爷",""),(2,"2班","汪华",""),(3,"3班
","王爷","");

c5fabfee20b6c619ff020e8e01a4f258.png


注意:mysql> insert into t_class values(1,"1班","王爷",""),(2,"2班","汪华",""),(3,"3班
","王爷","");
ERROR 1366 (HY000): Incorrect string value: 'xE7x8FxAD' for column 'cname' at
row 1
出现这种报错时,是因为字符集没改成utf8,所以用下面的指令改字符集
ALTER TABLE t_class CONVERT TO CHARACTER SET utf8mb4;
插入成绩表:
指令:mysql> insert into t_grade values (1,1,100,80,100,""), (2,2,85,80,70,""), (3,3,9
0,80,80,"");

0ae089563bfc816c6366112f21e732f0.png


注意:学生表的id等于成绩表的sid,班级表的id等于学生表的cid
3、 用SQL语句对班级表学生表进行多表联查,显示班级表的班级名称和学生的id,姓名
指令:
指令:select a.id,a.sname, b.cname from t_student a join t_class b on a.cid=b.id;

1ea21500d93f393c1a141c5ebe89e81a.png


4、 用SQL语句对学生表成绩表多表联查,显示学生的id,sname和成绩表的语数外的成绩。
指令:mysql> select a.id,a.sname,c.chinese,c.math,c.english from t_student a join t_gr
ade c on a.id=c.sid;

1eceae91dadc067d550d616f16a02993.png


5、 用SQL语句,对三张表进行多表联查,显示学生表的id,sname班级表的cname,成绩表的语数外成绩。
指令:mysql> select a.id,a.sname,b.cname,c.chinese,c.math,c.english from t_student a j
oin t_class b on a.cid=b.id join t_grade c on a.id=c.sid ;

50ec42264660aca0217bc23060a6b7a2.png

七、课后题:

新建一个学生表(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;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值