MySQL数据库之增删改查(二)

经过上一篇文章的学习,我们已经会简单创作一个表,接下来,我们就看看如何在一个表里面进行简单的增删改查。

目录

1.增

2.查

2.1全列查找,直接把一个表的所有列和所有的行都查找出来

2.2指定列查询

2.3指定查询字段为表达式

 2.4查询每个同学的总分

2.5查询字段指定别名

2.6针对查询结果的去重

2.7排序

 3.selset中的条件查询

3.1查询英语成绩 < 60的同学

3.2查询语文成绩 > 英语成绩的人

​ 

3.3查询总分 < 200的同学

​ 3.4and和or

3.5查询语文成绩 

3.6查询数学成绩是58或者59或者98或者99的同学及数学成绩

3.7like的使用

3.8分页查询

4.改

4.1将孙悟空的数学成绩改为80

 4.2将总成绩倒数前3的三位同学的数学成绩加上30分

 4.3将所有同学语文成绩变为原来的一半

 5.删

6.数据库的约束

6.1not null

 6.2unique

6.3Default

​ 6.4primary key

 6.4.1自增主键的用法


1.增

        我们也可以一句一句的添加,即将三个语句分三次写完,结果是一样的。但是明显一次插入比三次插入的速度要快很多,因此我们一般都是一次插入。

2.查

查找语句是SQL语句中最核心,也是最复杂的操作。下面我们一起来看看

2.1全列查找,直接把一个表的所有列和所有的行都查找出来

select * from 表名

        这里的*叫做通配符,表示一个表的所有列。但注意的是当我们把一个表里面所有的行和列都查找到时,查到的结果是一个“临时表”,之前我们建立的表是存储在硬盘上的,而此处的这个查询结果临时表,不是在硬盘上,而是在内存中,随着进行了输出之后,数据也就被释放了。

下面就是我们查询表的一列的全部过程:

          注意select * from这个操作也是一个危险操作,因为如果我们在生产环境的服务器中执行select * from这个操作,而此时的生产环境里的服务器的数据都是几个TB级别的,此时就意味着MySQL数据库就会疯狂的来读取硬盘数据,瞬间就会把硬盘的IO吃满,但是硬盘的读取速度是存在上限的,尤其是机械硬盘,同时MySQL服务器还会立即返回响应数据,而且返回的数据也是很大很多,此时就会把网卡的带宽吃满,一旦服务器的硬盘和网络被吃满,此时数据库服务器就很难对对其它用户的请求作出回应。

2.2指定列查询

2.3指定查询字段为表达式

希望查询结果中的语文成绩比真实的多10分

 

 2.4查询每个同学的总分

2.5查询字段指定别名

相当于是给查询结果的临时表指定新的列名:

 

2.6针对查询结果的去重

 

2.7排序

针对数学成绩来升序排序:

select 列名.....from  表名  order by 列名 asc/desc;

       上面的asc如果不写,默认是升序排序。但是像数据库的查询结果,如果不指定排序,此时查询结果的顺序是不可预期的。因此不省略最好。 

如果排序的时候,如果有null空置,则默认为最小的。 

排序也可以按照表达式来

 

排序的时候还可以通过order by来指定多个列进行排序:

 

       这里就是先按照数学排序,如果数学成绩相同,再按照语文排序,因为多个列排序的时候,是有明确优先级的。

 3.selset中的条件查询

这就是select后面加上一个where字句,后面跟上一个具体的筛选条件:

在进行条件查询之前,我们先来看看运算符

注意:where()这里的条件中不能使用别名

3.1查询英语成绩 < 60的同学

 

3.2查询语文成绩 > 英语成绩的人

 

3.3查询总分 < 200的同学

 3.4and和or

表达式里面如果同时有 and 和 or,先计算and,再计算or,如果想要打破优先级,就需要加()

3.5查询语文成绩 

3.6查询数学成绩是58或者59或者98或者99的同学及数学成绩

 

3.7like的使用

%表示任意个任意字符,只要对方的字符串符合你此处描述的一个形式就可以

 

3.8分页查询

SQL中可以通过limit来实现分页查询

 

 limit搭配条件以及order by等操作一起来使用

查找出总成绩前三名的同学姓名:

4.改

update是改的关键字,注意:update是会修改数据库服务器上的原始数据的

4.1将孙悟空的数学成绩改为80

 

 4.2将总成绩倒数前3的三位同学的数学成绩加上30分

先找出总成绩倒数前三名的同学:

再显示出这三位同学的数学成绩

 

 最后给三位同学的成绩加30

  因此,我们加1试试: 

 4.3将所有同学语文成绩变为原来的一半

 

 

 5.删

delete from 表名 where 条件

表示删除某个表

6.数据库的约束

约束就是再数据库在使用的时候,对于里面能够存的数据提出的要求和限制

6.1not null

表示某列不能存储null值,也可以给任意个列来设置

 6.2unique

表示数据唯一,保证每列的每行必须有唯一的值,重复的话也会报错

6.3Default

约定一个默认值,即MySQL中的默认值是null

 

我们也可以将默认值改为我们需要的值

 6.4primary key

主键约束,是not null和 unique的结合,相当于数据的唯一身份标识,类似于身份证号码,有助于帮助我们快速的找到表中一个特定的记录

 6.4.1自增主键的用法

关于自增主键的用法,最典型的就是直接使用1,2,3,4整数递增的方式来进行表示,MySQL里面对于这种递增的主键,是有内置支持的,称为自增主键

 当设置好自增主键之后,此时插入的记录就可以不指定自增主键的值了,直接使用null来表示,交给MySQL自行分配即可。

自增主键也是可以指定id的,一旦指定之后,后续插入的数据就都是从指定的id往后开始的,之前的值就不能用了。

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值