MySQL_基本的SELECT语句

举报
程序员飞鸟 发表于 2022/08/22 19:49:53 2022/08/22
【摘要】 目录SQL概念:SQL分类:SQL语言的规则与规范:SELECT的基本语句我是ZGB,Java领域新星创作者,阿里云专家博主,华为云·云享专家博主,热衷技术分享,欢迎与我交流技术。SQL概念:结构化查询语言(Structured Query Language,SQL)是关系数据库的标准语言,也是一个通用的,功能极强的关系数据库语言。其功能不仅仅是查询,而是包括数据库模式创建,数据库数据的插入...

目录

SQL概念:

SQL分类:

SQL语言的规则与规范:

SELECT的基本语句


我是ZGB,Java领域新星创作者,阿里云专家博主,华为云·云享专家博主,热衷技术分享,欢迎与我交流技术。

SQL概念:

结构化查询语言(Structured Query Language,SQL)是关系数据库的标准语言,也是一个通用的,功能极强的关系数据库语言。其功能不仅仅是查询,而是包括数据库模式创建,数据库数据的插入与修改,数据库安全性完整性定义与控制等一系列功能。

SQL分类:

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 等

SQL语言的规则与规范:

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

SQL大小写规范:winOS不区分大小写,LinuxOS区分大小写

  1. 数据库名、表名、表的别名、变量名是严格区分大小写的
  2. 关键字、函数名、列名(或字段名)、列的别名(字段的别名) 是忽略大小写的。

在窗口命令行演示如何创建库和创建表以及查询数据库和表 ,当然后期我们使用Navicat可视化工具方便。

SELECT的基本语句

查询所有的数据库

show databases(查询所有数据库);


创建数据库

create database 数据库名;


使用自己的数据库

use 数据库名; #打开abc数据库


查看某个库的所有表格

show tables from 数据库名; #此时查看abc库下的表格,发现没有表


创建新的表格

create table 表名称( 字段名 数据类型,

                                字段名 数据类型 );

创建表成功~此时表是空的,用查看语句看结果。


查看一个表的数据

select * from 数据库表名称; # *代表查询所有列或字段:

查看发现是一张空表,需要插入数据


插入数据,这就涉及增删改查其中之一。

INSERT INTO 表名 VALUES(插入内容);

插入成功~,查看一下

当我们上面熟练了,我们对数据库SQL的基本语句有一定了解。那我们就开始对基本的SELECT语句学习。

字符串、日期时间类型的变量需要使用一对''表示

INSERT INTO emp VALUES(1002,'Tom');

导入现有的数据表、表的数据。

source d:\atguigudb.sql; # source 文件的全路径名

最基本的SELECT语句: SELECT 字段1,字段2,... FROM 表名

SELECT 1 + 1,3 * 2 FROM DUAL; #dual:伪表

记着这张表,后面演示都需要用到:


列的别名

as:可以省略,列的别名可以使用一对""引起来,不要使用''。

SELECT employee_id emp_id,last_name AS lname,department_id "部门id" FROM employees; #列名后面就是别名,可以用as,也可以省略,别名使用用双引号

去除重复行的关键字:DISTINCT

SELECT DISTINCT department_id FROM employees;

空值参与运算,空值就是null,null不等同于0


3. 空值参与运算:结果一定也为空。

SELECT employee_id,salary "月工资",salary * (1 + commission_pct) * 12 "年工资",commission_pct FROM employees;   #年工资和奖金都是空值,因为1+空值为null,没法得出年工资


实际问题的解决方案:引入IFNULL

SELECT employee_id,salary "月工资",salary * (1 + IFNULL(commission_pct,0)) * 12 "年工资",commission_pct FROM `employees`; #年工资可以算出来


着重号 ``,有时候表名与关键字相同,着重号可以避免

显示表结构

DESC `order`; #显示了表中字段的详细信息


过滤数据:where

查询90号部门的员工信息

SELECT * 
FROM employees
#过滤条件,声明在FROM结构的后面,WHERE子句紧随 FROM子句
WHERE department_id = 90;

ELECT 字段1,字段2
FROM 表名
WHERE 过滤条件


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。