前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL数据库(二)

MySQL数据库(二)

作者头像
用户10788736
发布2023-10-16 08:35:27
1460
发布2023-10-16 08:35:27
举报
文章被收录于专栏:CSDN搬移文章

前言

本文是关于MySQL数据库的第二弹。 临时表不受原表数据类型的约束!! SQL语法不区分大小写。

一、列的使用

(一)列的增加

1、全列插入
代码语言:javascript
复制
insert into 表名 values (数据,数据);

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

代码语言:javascript
复制
insert into 表名 values (数据,数据),(数据,数据);
2、指定列插入
代码语言:javascript
复制
insert into 表名(列名,列名,...) values (数据,数据,...);

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

1、全列查询
代码语言:javascript
复制
select *from 表名;
2、指定列查询
代码语言:javascript
复制
select 列名,列名 from 表名;
3、表达式查询

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

代码语言:javascript
复制
select 列名,列名+10 from 表名;

也可以:

代码语言:javascript
复制
select 列名1,列名2*列名1 from 表名;
4、指定别名查询
代码语言:javascript
复制
select 列名,列名 as 别名 from 表名;
5、去重查询  

distinct争对指定列进行去重。

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

代码语言:javascript
复制
select distinct 列名 from 表名;
6、查询结果排序
代码语言:javascript
复制
select 列名,列名 from 表名 order by 列名; -- 默认升序

注意事项:

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

排序时可以使用别名。

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

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

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

代码语言:javascript
复制
select 列名,列名 from 表名 order by 列名 asc;

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

代码语言:javascript
复制
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
代码语言:javascript
复制
select 列名,列名 as 别名 from 表名 where 条件;

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

代码语言:javascript
复制
select 列名,列名 as 别名 from 表名 where 列名 in(数据,数据,...);

(2) like 模糊匹配

  1. 使用 % 代表任意0个或多个字符。
  2. 使用 _ 表示任意一个字符。
代码语言:javascript
复制
select 列名,列名 as 别名 from 表名 where 列名 like '邹%';
代码语言:javascript
复制
select 列名,列名 as 别名 from 表名 where 列名 like '邹__';
8、分页查询

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

代码语言:javascript
复制
select *from 表名 limit m,n;
代码语言:javascript
复制
select *from 表名 limit n offset m;

(三)列的修改

代码语言:javascript
复制
update 表名 set 列名 = 值 where 条件;
代码语言:javascript
复制
update 表名 set 列名 = 值 order by 条件;
代码语言:javascript
复制
update 表名 set 列名 = 值 limit 条件;

(四)列的删除

代码语言:javascript
复制
delete from 表名 where 条件;

二、约束条件

(一)null

可以为空

(二)not null

不可以为空

(三)unique

列的值唯一

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

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

(四)primary key

主键(唯一且不为空)

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

代码语言:javascript
复制
create table 表名(列名 varchar(20) unique,列名 int primary key);

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

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

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

代码语言:javascript
复制
create table 表名(列名 varchar(20) unique,列名 int primary key auto_increment);

(五)foreign key

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

代码语言:javascript
复制
foreign key (列名) references 主表(列名); 

(六)default

默认值

代码语言:javascript
复制
create table 表名 (列名 int default 数值);

(七)check

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

三、表的设计

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

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

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

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

结语

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-08-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一、列的使用
    • (一)列的增加
      • 1、全列插入
      • 2、指定列插入
    • (二)列的查询(重点!!)
      • 1、全列查询
      • 2、指定列查询
      • 3、表达式查询
      • 4、指定别名查询
      • 5、去重查询  
      • 6、查询结果排序
      • 7、条件查询
      • 8、分页查询
    • (三)列的修改
      • (四)列的删除
      • 二、约束条件
        • (一)null
          • (二)not null
            • (三)unique
              • (四)primary key
                • (五)foreign key
                  • (六)default
                    • (七)check
                    • 三、表的设计
                    • 结语
                    相关产品与服务
                    云数据库 MySQL
                    腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档