MySQL基本的SELECT语句,SQL语言概述,基础和重要不冲突,完整详细可收藏

文章目录

    • 1、SQL语言的分类
    • 2、SQL语言的规则与规范
    • 3、基本的SELECT语句
    • 4、DESCRIBE显示表结构
    • 5、WHERE过滤数据


1、SQL语言的分类

SQL语言在功能上主要分为如下3大类:

DDL(Data Definition Languages、数据定义语言),这些语句定义了不同的数据库、表、视图、索引等数据库对象,还可以用来创建、删除、修改数据库和数据表的结构。主要的语句关键字包括 CREATE 、 DROP 、 ALTER 等。

DML(Data Manipulation Language、数据操作语言),用于添加、删除、更新和查询数据库记录,并检查数据完整性。主要的语句关键字包括 INSERT 、DELETE 、 UPDATE 、 SELECT 等。SELECT是SQL语言的基础,最为重要。

DCL(Data Control Language、数据控制语言),用于定义数据库、表、字段、用户的访问权限和安全级别。主要的语句关键字包括 GRANT 、 REVOKE 、 COMMIT 、 ROLLBACK 、 SAVEPOINT 等。

因为查询语句使用的非常的频繁,所以很多人把查询语句单拎出来一类:DQL(数据查询语言)。还有单独将 COMMIT 、 ROLLBACK 取出来称为TCL(Transaction Control Language,事务控制语言)。


2、SQL语言的规则与规范

2.1 基本规则
①SQL可以写在一行或多行。为了提高可读性,各子句分行写,必要时使用缩进。
②每条命令以 ; 或 \g\G 结束。
③关键字不能被缩写也不能分行。
④关于标点符号:
必须保证所有的()、单引号、双引号是成对结束的。
必须使用英文状态下的半角输入方式。
字符串型和日期时间类型的数据可以使用单引号''表示。
列的别名,尽量使用双引号" ",而且不建议省略as

2.2 SQL大小写规范 (建议遵守)
①MySQL 在 Windows 环境下是大小写不敏感的。
②MySQL 在 Linux 环境下是大小写敏感的。
③数据库名、表名、表的别名、变量名是严格区分大小写的。
④关键字、函数名、列名(或字段名)、列的别名(字段的别名) 是忽略大小写的。
⑤推荐采用统一的书写规范:
数据库名、表名、表别名、字段名、字段别名等都小写;SQL 关键字、函数名、绑定变量等都大写。

2.3 注 释
可以使用如下格式的注释结构:

单行注释:#注释文字(MySQL特有的方式)
单行注释:-- 注释文字(--后面必须包含一个空格。)
多行注释:/* 注释文字 */

2.4 命名规则
①数据库、表名不得超过30个字符,变量名限制为29个。
②必须只能包含 A–Z, a–z, 0–9, _共63个字符。
③数据库名、表名、字段名等对象名中间不要包含空格。
④同一个MySQL软件中,数据库不能同名;同一个库中,表不能重名;同一个表中,字段不能重名。
⑤必须保证字段没有和保留字、数据库系统或常用方法冲突。如果坚持使用,请在SQL语句中使用`(着重号)引起来。
⑥保持字段名和类型的一致性,在命名字段并为其指定数据类型的时候一定要保证一致性。假如数据类型在一个表里是整数,那在另一个表里不要变成字符型了。

#以下两句是一样的,不区分大小写
show databases;
SHOW DATABASES;
#创建表格
#create table student info(...); #表名错误,因为表名有空格
create table student_info(...);
#其中order使用``飘号,因为order和系统关键字或系统函数名等预定义标识符重名了
CREATE TABLE `order`(
id INT,
lname VARCHAR(20)
);
select id as "编号", `name` as "姓名" from t_stu; #起别名时,as都可以省略
select id as 编号, `name` as 姓名 from t_stu; #如果字段别名中没有空格,那么可以省略""
select id as 编 号, `name` as 姓 名 from t_stu; #错误,如果字段别名中有空格,那么不能省略""

2.5 数据导入指令
在命令行客户端登录mysql,使用source指令导入:

mysql> source d:\mysqldb.sql

3、基本的SELECT语句

3.0 SELECT…

SELECT 1; #没有任何子句
SELECT 9/2; #没有任何子句

3.1 SELECT … FROM

SELECT 标识选择哪些列
FROM 标识从哪个表中选择
SELECT * #选择全部列
FROM departments;

一般情况下,除非需要使用表中所有的字段数据,最好不要使用通配符‘*’。使用通配符虽然可以节省输入查询语句的时间,但是获取不需要的列数据通常会降低查询和所使用的应用程序的效率。通配符的优势是,当不知道所需要的列的名称时,可以通过它获取它们。

SELECT department_id, location_id #选择特定的列
FROM departments;

3.2 列的别名
①重命名一个列,便于计算。
②紧跟列名,也可以在列名和别名之间加入关键字AS,别名使用双引号,以便在别名中包含空格或特殊的字符并区分大小写。
③AS 可以省略。
④建议别名简短,见名知意。
举例:

SELECT last_name AS name, commission_pct comm
FROM employees;
SELECT last_name "Name", salary*12 "Annual Salary"
FROM employees;

3.3 去除重复行
默认情况下,查询会返回全部行,包括重复行。在SELECT语句中使用关键字DISTINCT去除重复行。

SELECT DISTINCT department_id
FROM employees;

注意:
①DISTINCT 需要放到所有列名的前面,如果写成如下会报错。

SELECT salary, DISTINCT department_id
FROM employees 

②DISTINCT 其实是对后面所有列名的组合进行去重,你能看到最后的结果是 74 条,因为这 74 个部门id不同,都有 salary 这个属性值。如果你想要看都有哪些不同的部门(department_id),只需要写 DISTINCT department_id 即可,后面不需要再加其他的列名了。

3.4 空值参与运算
所有运算符或列值遇到null值,运算的结果都为null。一定要注意,在 MySQL 里面, 空值不等于空字符串。一个空字符串的长度是 0,而一个空值的长度是空。而且,在 MySQL 里面,空值是占用空间的。

3.5 着重号
我们需要保证表中的字段、表名等没有和保留字、数据库系统或常用方法冲突。如果真的相同,请在SQL语句中使用一对``(着重号)引起来。


4、DESCRIBE显示表结构

使用DESCRIBE 或 DESC 命令,表示表结构。

DESCRIBE employees;DESC employees;

在这里插入图片描述
其中,各个字段的含义分别解释如下:
①Field:表示字段名称。
②Type:表示字段类型,这里 barcode、goodsname 是文本型的,price 是整数类型的。
③Null:表示该列是否可以存储NULL值。
④Key:表示该列是否已编制索引。PRI表示该列是表主键的一部分;UNI表示该列是UNIQUE索引的一部分;MUL表示在列中某个给定值允许出现多次。
⑤Default:表示该列是否有默认值,如果有,那么值是多少。
⑥Extra:表示可以获取的与给定列有关的附加信息,例如AUTO_INCREMENT等。


5、WHERE过滤数据

SELECT 字段1,字段2
FROM 表名
WHERE 过滤条件
SELECT employee_id, last_name, job_id, department_id
FROM employees
WHERE department_id = 90; #查询部门编号为90的

使用WHERE 子句,将不满足条件的行过滤掉,WHERE子句紧随 FROM 子句。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/347494.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL运算符,SQL,算术比较逻辑位,优先级,正则表达式,完整详细可收藏

文章目录1、算术运算符2、比较运算符3、逻辑运算符4、位运算符5、运算符的优先级拓展:使用正则表达式查询1、算术运算符 算术运算符主要用于数学运算,其可以连接运算符前后的两个数值或表达式,对数值或表达式进行加()…

苹果原装转接头不能连html,变革之际 iPhone 7P原装lightning耳机及转接头拆解

苹果最新推出的iphone7 系列,最大的改动是取消了3.5mm耳机孔,用lightning接口取代,这个看来也是趋势,安卓手机有几款也是直接用Type-c的接口解决音频、充电问题的。lightning耳机的接口最大的不便不能同时听歌充电,只能…

java 反射api_Java的反射API

java 反射api如果您曾经问​​过自己以下问题: –“如何在字符串中仅包含其名称的方法调用?” –“如何动态列出类中的所有属性?” –“如何编写将任何给定对象的状态重置为默认值的方法?” 然后,您可能已经听说过…

MySQL多表查询,SQL,笛卡尔积等值连接自连接外连接,SQL99新特性,完整详细可收藏

文章目录1、笛卡尔积(交叉连接)2、等值连接 vs 非等值连接3、自连接 vs 非自连接4、内连接 vs 外连接5、SQL99语法新特性多表查询,也称为关联查询,指两个或更多个表一起完成查询操作。 前提条件:这些一起查询的表之间…

针对开发人员的Microsoft SQL Server元数据

Microsoft SQL Server 2016最近在关系数据库管理系统(RDBMS)中处于领先地位。 高性能,安全性,分析和云兼容性的结合使其成为领先的RDBMS 。 SQL Server 2017甚至支持R和Python编程语言,这进一步提高了它在学术机构中的…

计算机怎么录制视频教程,怎么录制视频教程?查看电脑具体录屏方法

怎么录制视频教程?查看电脑具体录屏方法2020年04月07日 15:25作者:黄页编辑:黄页分享怎么录制视频教程?有时候在生活中遇到了喜欢的视频、直播等,想在电脑上通过录屏的方式记录下来。高质量的录屏视频怎么实现?其实具体录屏的方…

加密解密,MySQL单行函数,数学函数字符串日期时间,流程控制,完整详细可收藏查询SQL

前些天发现了十分不错的人工智能学习网站,通俗易懂,风趣幽默,没有广告,分享给大家,大家可以自行看看。(点击跳转人工智能学习资料) 文章目录1、函数的理解2、数值函数2.1 基本函数2.2 角度与弧度…

无锡太湖学院计算机科学与技术宿舍,无锡太湖学院宿舍条件,宿舍环境图片(10篇)...

无锡太湖学院宿舍条件,宿舍环境图片(10篇)大学宿舍是一个神奇的地方,来自于天南地北的同学聚集在一个屋檐下,并将在一起度过宝贵的大学时光。人们常说,没有住过宿舍的大学是不完整的。当然不同的大学宿舍环境条件都不一样。高考升学网小编本文…

SELECT执行过程,MySQL聚合函数,多行分组函数,GROUP BY HAVING,详细完整可收藏

文章目录1、聚合函数介绍2、五个常用聚合函数3、GROUP BY4、HAVING5、SELECT的执行过程1、聚合函数介绍 聚合函数作用于一组数据,并对一组数据返回一个值。聚合函数不能嵌套调用。比如不能出现类似“AVG(SUM(字段名称))”形式的调用。 2、五个常用聚合函数 2.1 A…

嵌套套娃,MySQL子查询,单行与多行子查询,相关和不相关(关联)子查询,完整详细可收藏

文章目录1、需求分析与问题解决2、单行子查询3、多行子查询4、相关子查询5、抛一个思考题子查询指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从MySQL 4.1开始引入。SQL 中子查询的使用大大增强了 SELECT 查询的能力,因为很多时候查询需要从结…

键盘连接在计算机的,技巧:如何在计算机键盘上输入连字符和破折号?

文字/连字符在哪里,我该如何输入?例如,某些英语单词中有连字符,例如高层。当然,有时是否有连字符都没有关系,并且不影响其含义。但是,有时有必要。例如,单词在行尾的位置是不够的。您…

删库跑路?不可回滚?MySQL创建和管理表,修改清空表,MySQL8新特性DDL原子化,完整详细可收藏

文章目录1、基础知识2、创建和管理数据库3、创建表4、修改表5、重命名表6、 删除表7、清空表8、MySQL8新特性—DDL的原子化1、基础知识 1.1 一条数据存储的过程 存储数据是处理数据的第一步 。只有正确地把数据存储起来,我们才能进行有效的处理和分析。否则&#x…

不全?MySQL数据类型精讲,定点日期枚举文本字符串,json二进制,空间,选择建议,完整详细可收藏

文章目录1. MySQL中的数据类型2. 整数类型3. 浮点数类型4. 定点数类型5. 位类型:BIT6. 日期与时间类型7. 文本字符串类型8. ENUM类型9. SET类型10. 二进制字符串类型11. JSON 类型12. 空间类型13. 选择建议1. MySQL中的数据类型 常见数据类型的属性,如下…

约束,MySQL约束,非空默认值,主键外键唯一自增,完整详细可收藏

文章目录1. 约束(constraint)概述2. 非空约束3. 唯一性约束4. PRIMARY KEY 约束5. 自增列:AUTO_INCREMENT6. FOREIGN KEY 约束7. CHECK 约束8. DEFAULT约束9. 面试1. 约束(constraint)概述 1.1 为什么需要约束 数据完整性(Data Integrity)是…

如何测试Java类的线程安全性

我在最近的一次网络研讨会中谈到了这个问题,现在是时候以书面形式进行解释了。 线程安全是Java等语言/平台中类的重要品质,我们经常在线程之间共享对象。 缺乏线程安全性导致的问题很难调试,因为它们是零星的并且几乎不可能有意复制。 您如何…

争议?MySQL存储过程与函数,封装,体,完整详细可收藏

文章目录1. 存储过程概述2. 创建存储过程3. 调用存储过程4. 存储函数的使用5. 存储过程和函数的查看、修改、删除6. 关于存储过程使用的争议MySQL从5.0版本开始支持存储过程和函数。存储过程和函数能够将复杂的SQL逻辑封装在一起,应用程序无须关注存储过程和函数内部…

梦幻,MySQL视图,虚实表,完整详细可收藏

文章目录1. 数据库对象2. 视图概述3. 创建视图4. 查看视图5. 更新视图的数据6. 修改、删除视图7. 总结1. 数据库对象 2. 视图概述 2.1 为什么使用视图? 视图一方面可以帮我们使用表的一部分而不是所有的表,另一方面也可以针对不同的用户制定不同的查询视…

一条一条来,MySQL变量、流程控制与游标,完整详细可收藏

前些天发现了十分不错的人工智能学习网站,通俗易懂,风趣幽默,没有广告,分享给大家,大家可以自行看看。(点击跳转人工智能学习资料) 文章目录1. 变量2. 定义条件与处理程序3. 流程控制4. 游标MyS…

无服务器:SLAppForge Sigma入门

! Cmere。 寻找某事? 无服务器,是吗? 在上面。 进入海峡,在“ Sigma”标志处右转。 (嗯,还不要怪我们;至少我们认为这很容易!) 我们的梦想目标之一是与S…

自动,MySQL触发器,完整详细可收藏

前些天发现了十分不错的人工智能学习网站,通俗易懂,风趣幽默,没有广告,分享给大家,大家可以自行看看。(点击跳转人工智能学习资料) 文章目录1. 触发器概述2. 触发器的创建3. 查看、删除触发器4.…