MySQL数据库(二)

本文介绍了MySQL数据库中关于列的使用,包括增加、查询、修改和删除操作,重点讲解了查询的多种方式,如全列、指定列、去重和排序。此外,还详细阐述了约束条件,如null、notnull、unique、primarykey、foreignkey和default,以及表设计的基本概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

本文是关于MySQL数据库的第二弹。

临时表不受原表数据类型的约束!!

SQL语法不区分大小写。


一、列的使用

(一)列的增加

1、全列插入

insert into 表名 values (数据,数据);

也可以同时插入多条数据:

insert into 表名 values (数据,数据),(数据,数据);

2、指定列插入

insert into 表名(列名,列名,...) values (数据,数据,...);

(二)列的查询(重点!!)

1、全列查询

select *from 表名;

2、指定列查询

select 列名,列名 from 表名;

3、表达式查询

表达式查询是进行列与列之间的运算,呈现出来的数据是以临时表的形式出现。

select 列名,列名+10 from 表名;

也可以:

select 列名1,列名2*列名1 from 表名;

4、指定别名查询

select 列名,列名 as 别名 from 表名;

5、去重查询  

distinct争对指定列进行去重。

当distinct指定多个列时,要求这些列的值都相同才视作重复。

select distinct 列名 from 表名;

6、查询结果排序

select 列名,列名 from 表名 order by 列名; -- 默认升序

注意事项: 

  1. null在排序时,视为最小值。

  2. 排序时可以使用别名。

  3. 对于MySQL,如果一个SQL没有指定order by 列名,此时的查询结果集的数据顺序是不可预期的。

  4. 可以指定多个列排序,多个列之间用逗号分隔。先按第一列排序,若第一列相同则按第二列排序...以此类推。

  5. 默认排序是升序排序,使用asc也表示升序排序。

    select 列名,列名 from 表名 order by 列名 asc;

      

  6. 使用desc表示降序排序(desc  ->  descend)。

    select 列名,列名 from 表名 order by 列名 desc;

7、条件查询

比较运算符

> 大于符号 >= 大于等于符号 < 小于符号 <= 小于等于符号 = 比较相等符号,不可以比较空(null = null 结果还是null =》false <=> 比较等于,可以比较空(null <=> null 结果是true <> 不等于符号 != 不等于符号 between a0 and a1 范围[a0,a1] in(option,....) 如果是option当中任意一个,返回true is null 是否为空 is not null 是否不为空 like 模糊匹配

逻辑运算符
and
or或者
not
  1. where条件可以使用表达式,但不能使用别名
  2. and优先级高于or

select 列名,列名 as 别名 from 表名 where 条件;

 

(1) in(option,....)

select 列名,列名 as 别名 from 表名 where 列名 in(数据,数据,...);

(2) like 模糊匹配

  1. 使用 % 代表任意0个或多个字符。
  2. 使用 _ 表示任意一个字符。
select 列名,列名 as 别名 from 表名 where 列名 like '邹%';

select 列名,列名 as 别名 from 表名 where 列名 like '邹__';

8、分页查询

limit 声明从哪一条开始查询(从0开始计数),从哪一条查询结束。

select *from 表名 limit m,n;

select *from 表名 limit n offset m;

(三)列的修改

update 表名 set 列名 = 值 where 条件;
update 表名 set 列名 = 值 order by 条件;
update 表名 set 列名 = 值 limit 条件;

(四)列的删除

delete from 表名 where 条件;

二、约束条件

(一)null

可以为空

(二)not null

不可以为空

(三)unique

列的值唯一

插入/修改数据时,会先查询数据是否已经存在。

存在 -> 插入/修改失败;不存在 -> 插入/修改成功 。

(四)primary key

主键(唯一且不为空)

MySQL中,一个表只能有一个主键。

create table 表名(列名 varchar(20) unique,列名 int primary key);

 关于主键,MySQL给我们提供了自增主键。

自增主键(auto_increment):MySQL给每个表维护了一个全局变量,每次分配一个主键全局变量就自增,下次分配接着上次的继续分。以最大的数据为标准。

即使某一次主键自增失败,该全局变量也会发生增加。

create table 表名(列名 varchar(20) unique,列名 int primary key auto_increment);

(五)foreign key

外键,用于关联其他表的主键或唯一键

foreign key (列名) references 主表(列名); 

(六)default

默认值

create table 表名 (列名 int default 数值);

(七)check

保证列中的值符合指定的条件,但MySQL5中不会报错,忽略效果。了解即可

三、表的设计

表的设计有一对一,一对多,多对多三种形式。

一对一的表,例如银行里面的个人信息是只争对某一个人的。

一对多的表,例如银行的柜姐要对多人服务。

多对多的表,例如高考是一个人要写多张卷子,不同的卷子需要被不同的人作答。


结语

数据库的学习先暂时就到这里啦,大家下次再见!

这篇博客如果对你有帮助,给博主一个免费的点赞以示鼓励,欢迎各位🔎点赞👍评论收藏⭐,谢谢!!!

评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Y君的进化史

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值