• MySQL_基本的SELECT语句


    目录

    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号部门的员工信息

    1. SELECT *
    2. FROM employees
    3. #过滤条件,声明在FROM结构的后面,WHERE子句紧随 FROM子句
    4. WHERE department_id = 90;
    5. ELECT 字段1,字段2
    6. FROM 表名
    7. WHERE 过滤条件

  • 相关阅读:
    vue路由组件传递参数四种方式(九)(布尔模式,命名视图,对象模式,函数模式)详细讲解使用
    VSCode中打开md文件的智能提示
    BC范式分解问题,有没有会的朋友
    JSON parse error Cannot deserialize value of type `java.util.Date` from String
    计算机组成原理(二)运算方法和运算器
    【TS】函数和函数类型
    Linux 5.19内核终于接纳了Zstd压缩固件更新
    使用PySpark计算AUC,KS与PSI
    反射工具类 guava Apache spring
    金九银十要来了,各大公司Java后端开发真题汇总 加油
  • 原文地址:https://blog.csdn.net/A6_107/article/details/126325384