MySqlDay03

一、DML(data manipulation language)-数据的操作

3.1.数据的基本操作CRUD

定义:用于完成对数据表中数据的新增、删除、修改、查询操作。

例:现有一张学生表,通过此表可以查到学生信息(学号、姓名、年龄、电话),如果你想甚至可以添加一些隐私性的信息哦,比如说,你的微信号...

首先创建一个数据表:

create table students(

stu_num int(8) primary key,

  stu_name varchar(20) not null,

  stu_age int not null,

  stu_tel char(11) not null unique,

  stu_hobby varchar(50)

);

课堂小练习1.

自主创建一张数据表,字段内容自行决定,字段数量>=5!!!

3.1.1.添加数据的sql语句

作用:往数据表中添加数据

语法一:

insert into 表名(列名,列名,...) values(值1,值2,...);

实例:

## 向数据表中指定的列添加数据(不允许为空的列必须提供数据)

insert into students(stu_num,stu_name,stu_age,stu_tel) values(1001,'小明',20,15196887452);

## 数据表后的字段名顺序可以不与表中一致,但是values中的值的顺序必须与表名后的字段名顺序对应

insert into students(stu_tel,stu_num,stu_name,stu_age) values(15196887452,1001,'小明',20);

## 当要向表中所有的字段添加数据时,表名后的字段名可以省略,但values中的值的顺序要与数据表定义字段的顺序保持一致。

## ps:不过在项目开发过程中,即使要向所有字段添加数据,也建议将字段名显示出来

insert into students values(1001,'小明',20,15196887452,'学习');

老师说:在mysql中添加数据时,我们可以通过另一方式来添加,相较于语法一而言,使用起来更加灵活。

语法二:

insert into 表名 set 字段名1=值1,字段名2=值2...;

实例二:

insert into students set stu_num=1002,stu_name='小美',stu_age=18,stu_tel=13553227789

老师说:两种书写方式都能够实现对数据的新增操作,但是在实际开发中,我们要根据实际情况选择适合自己的书写方式。

3.1.2.删除数据的sql语句

作用:从数据表中删除满足特定条件(所有)数据

语法:

delete from 表名;

delete from 表名 where 条件; ## 常用

实例:

## 删除学号为1002的学生信息

delete from students where stu_num=1002;

## 删除年龄大于18岁的学生信息(如果满足where子句的记录有多条,则删除多条记录)

delete from students where stu_age>18;

## 如果删除语句中没有where子句,则表示删除当前数据表中的所有记录

delete from students;

老师说:不管在什么时候都不要轻易去删除一种表中所有的数据。虽然没有删库跑路严重,但是也可小觑。当然,如果你想要体验一把“刺激”的话那就另当别论喽!!!

3.1.3.修改数据的sql语句

作用:对表中已经添加的记录进行修改

语法:

update 表名 set 字段名1=值1,字段名2=值2...;

update 表名 set 字段名1=值1,字段名2=值2... where 条件; ## 常用

实例:

## 将学号为1002的学生 姓名改为“小帅”(只修改一列)

update students set stu_name='小帅' where stu_num=1002;

## 将学号为1002的学生 年龄改为22,同时将电话改为15535584550(修改多列)

update students set stu_age=22,stu_tel=15535584550 where stu_num=1002;

## 如果update语句中没有where子句,则表示修改当前表中所有行(记录)

update students set stu_name="张三";

老师说:在实际的开发过程中,我们在修改数据时一般通过主键来实现,这也是今天的收获之一!!!

3.1.4.查询数据的sql语句

作用:从数据表中提取满足特定条件的数据信息

语法:

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

实例:

## 查询表中某些字段信息

select stu_num,stu_name,stu_tel from students;

## 查询表中所有数据

select * from students;

老师说:虽然*很好用,但是为了数据的安全我们一般会用字段名将其代替,这是每一个老程序员都需要知道的!!!

课堂小练习2.

在自己所建的数据表中进行增删改查的操作,为自己的表添砖加瓦!!!

3.2.where子句

在删除、修改及查询的语句后都可以添加where子句(条件),用于筛选满足特定条件的数据进行删除、修改和查询的操作

delete from 表名 where 条件;

update 表名 set 字段名=值 where 条件;

select 字段名 from 表名 where 条件;

各种条件情况(实例):

## = 等于

select * from students where stu_num=1001;

## != <> 不等于

select * from students where stu_num!=1001;

select * from students where stu_num<>1001;

## > 大于

select * from students where stu_age>18;

## < 小于

select * from students where stu_age<18;

## >= 大于等于

select * from students where stu_age>=18;

## <= 小于等于

select * from students where stu_age<=18;

多条件查询

在where子句中可以将多个条件通过编辑运算(and or not)进行连接,通过多个条件来筛选要操作的数据

## and 并且 筛选多个条件同时满足的数据

select * from students where stu_age>18 and stu_hobby='唱歌';

## or 或者 筛选多个条件中至少满足一个条件的数据

select * from students where stu_age>18 or stu_hobby='唱歌';

## not 取反

select * from students where stu_age not between 18 and 20;

老师说:where子句在真实的项目开发过程中的使用频率是很高的,合理的使用where能够让你的sql语句更省力!!!

3.3.like子句

在where子句的条件中,我们可以使用 like关键字来实现模糊查询

语法:

select * from 表名 where 条件 like 表达式;

在like关键字后面的表达式中:

%:表示任意多个字符

_:表示任意一个字符

实例:

## 查询学生姓名中包含“三”的学生信息

select * from students where stu_name like '%三%';

## 查询学生姓名第一个字为“张”的学生信息

select * from students where stu_name like'张%';

## 查询学生姓名最后一个字为“三”的学生信息

select * from students where stu_name like'%三';

## 查询学生姓名第二个字为“三”的学生信息

select * from students where stu_name like'_三%';

老师说:虽然like模糊查询很好用,但是因为其效率太低,所以我们一般会将其优化后使用,毕竟在公司效率至上!!!

3.4.order by排序

将查询到的满足条件的记录按照指定的列的值升/降排序

语法:

select * from 表名 where 条件 order by 字段名 排序规则;

我们一般会将结果进行升序或者降序的排序:

asc按照指定的列升序(默认)

desc按照指定的列降序

实例1:

## 单字段排序

select * from students where stu_age>10 order by stu_num desc;

结果对比:

通过查询语句得到的默认结果:

实例中倒叙排序后的结果:

实例2:

## 多字段排序:先满足第一个排序的列的值相同再按照第二个列的规则排序

select * from students where stu_age>10 order by stu_num asc,stu_age desc;

结果:

课堂小练习3.

在已有表的基础上,通过where子句、like子句以及order by排序得到一个满足特定条件的查询结果,并将其进行倒叙排序!!!

二、使用navicat操作表

4.1.通过navicat对数据库表进行CRUD

通过sql语句对数据进行增删改查需要保证sql语句不出错,为了方便操作数据,很多时候我们会在navicat中对数据进行操作

4.1.1.nvicat中添加数据

4.1.2.nvicat中删除数据

4.1.3.nvicat中修改数据

4.1.4.nvicat中查询数据

老师说:通过那vicat查询表时,显示的是当前表中的所有数据,想要精准查询满足特定条件的数据还是通过sql语句实现更为方便,所以并不一定方便的就是最好的!!!

4.2.navicat中对数据库表的排序

在Mysql中排序也并非只能通过sql语句实现,navicat的出现为我们提供了很多的便利,其中也就包括通过navicat来实现字段排序。

老师说:很多时候我们会被眼前的利益蒙蔽自己的双眼,从而忽略了长远的利益。在Mysql中可能很多操作可以通过navicat来实现,但是,过度对navicat的依赖会使我们失去对sql语句的敏感性,这样一来在失去navicat之后就会两眼一抹黑,希望大家多多练习sql语句,这样即便只有Mysql也不影响我们对其操作。同样在生活中做决定的时候也不要被眼前的利益所蒙蔽,懂得从长远的眼光来看带问题!!!

好文阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: