【MySQL】一文学会:2.3.3-如何去除数据库表中的列(字段)的重复数据?2.3.5-表名/字段名与关键字和保留字冲突怎么办?2.4-如何显示数据库的表结构?2.5-如何过滤数据?
![](https://img-blog.csdnimg.cn/db3bd83deaa1469abcce105518f1dafa.png)
2.3.3 去除重复行
去除重复行,在本科课程《数据库系统》有个专业的术语叫“投影”。
比如,我想知道 employees
表中的字段 department_id
中,有什么部门,我们就可以把重复的部门去掉,返回一个无重复数据的结果集。
在MySQL中,在要去重的列 (字段) 前声明关键字 DISTINCT
(adj.不同的;有区别的;不同种类的) ,就能实现该列去除重复数据,如下代码所示:
SELECT DISTINCT department_id
FROM employees;
查询结果:
可以看见,department_id
共有11个不重复的数据,并且可以发现,MySQL返回的结果集是递增排列的。 其中有一个 (NULL) 是指没有部门ID的员工。
2.3.5 着重号
` (着重号) 是为了解决命名与保留字、数据库系统或常用方法冲突的问题。
如在数据库中,有一张表名为 order
的表,其与MySQL的排序关键字 ORDER
冲突。此时如果我直接查询 order
表,MySQL会报错。
SELECT * FROM ORDER;
查询结果:
为了解决名称和关键字冲突的问题,要把 order
表用 ` (着重号) 引起来。如下代码所示:
SELECT * FROM `order`;
查询结果:
【体会】
- 在给数据库表、字段名等命名时,尽量不要与关键字和保留字重名。如果因为特殊情况必须坚持使用,则必须使用一对 ` (着重号) 引起来。
2.4 显示表结构
如果想知道数据库中一张表中,有什么字段、每个字段是什么数据类型、每个字段是否允许为空值等信息,我们就可以采用显示表结构。
在MySQL中,显示表结构,可以在表名前用关键字 DESCRIBE
(vt.描述;形容;) 来实现,也可以用缩写 DESC
。如下代码所示:
DESCRIBE employees;
或
DESC employees;
查询结果:
可以看到有11行,每一行就是 employees
的一个字段。该查询结果的字段依次表示:字段名、数据类型、是否允许为空值、约束条件、默认值和额外说明。
2.5 过滤数据
例子1:
查询 employees
表中,department_id
为 90 的员工。
这时候我们就可以使用过滤条件来查询。在SQL中,过滤用关键字 WHERE
来实现,声明在 FROM
结构后面。例如,
SELECT employee_id, last_name, department_id
FROM employees
WHERE department_id = 90;
查询结果:
例子2:
查询 employees
表中,lase_name
为 ‘King’ 的员工。
SELECT employee_id, last_name, department_id
FROM employees
WHERE last_name = 'King';
查询结果:
【体会】
WHERE
要声明在FROM
结构的后面。- 例子2中字符串类型的字段
last_name
要用单引号,且严格区分大小写。 - 至此,SQL查询语句最基础的结构
SELECT...FROM...WHERE...
就出现了。过滤条件还有一系列丰富的运算符操作,结合各种运算符,查询过滤能实现各种丰富的功能。运算符将在下一章详细描述。
相关文章
- mysql binary like_MYSQL的binary解决mysql数据大小写敏感问题的方法
- mysql数据库,如何进行数据目录的初始化操作
- ASP.NET实现二维码 ASP.Net上传文件 SQL基础语法 C# 动态创建数据库三(MySQL) Net Core 实现谷歌翻译ApI 免费版 C#发布和调试WebService ajax调用WebService实现数据库操作 C# 实体类转json数据过滤掉字段为null的字段
- mysql数据库遍历表,其一字段获取上一条数据
- mysql的安装,数据库的操作,创建数据库,修改表,创建表,删除表,插入数据mysql是什么?
- C#连接MYSQL数据库并进行查询
- 绝对干货,教你4分钟插入1000万条数据到mysql数据库表,快快进来
- mysql数据库提示本地无法连接远程服务器(Host is not allowed to connect to this MySQL server)解决办法
- 十三、Mysql - GTID主从复制 - MHA架构 - 数据库优化
- mysql多表查询 2.建立多表数据库案例
- Java对MySQL数据库进行连接、查询和修改【转载】
- sql server 导出的datetime结果 CAST(0x00009E0E0095524F AS DateTime) 如何向mysql,oracle等数据库进行转换
- MySQL数据库索引的底层原理(二叉树、平衡二叉树、B-Tree、B+Tree)
- (数据科学学习手札51)用pymysql来操控MySQL数据库
- 使用反应式关系数据库连接规范R2DBC操作MySQL数据库
- python操作mysql数据库系列-操作MySql数据库(三)
- Mysql命令mysql:连接Mysql数据库
- MySQL数据库使用mysqldump导出数据详解
- mysql—MySQL数据库中10位时间戳转换为标准时间后,如何对标准时间进行加减X天处理
- 数据库原理及MySQL应用 | 多表查询
- PostgreSQL通过mysql_fdw访问MySQL数据库
- MySQL数据库优化技术概述
- CentOS下无法正常获取MySQL数据库表数据的问题
- mysql数据库面试知识点汇总【转】
- 猫眼电影爬取(三):requests+pyquery,并将数据存储到mysql数据库
- mysql-数据库的主从同步,实现读写分离
- docker MySQL数据库的备份与还原,以及每天定时自动备份
- python封装一个工具类 ,对MySQL数据库增删改查,可多字段动态插入mysql数据库中
- 服务器访问数据库表mysql