当前位置: 首页 > article >正文

基本的SELECT语句

1.SQL概述

SQL(Structured Query Language)是一种用于管理和操作关系数据库的编程语言。它是一种标准化的语言,用于执行各种数据库操作,包括创建、查询、插入、更新和删除数据等。

SQL语言具有简单、易学、高效的特点,可以用于处理大量的数据和复杂的查询。它包含了一系列的命令和语句,可以通过这些命令和语句来操作数据库。

SQL语言的主要功能包括:

  1. 数据定义语言(DDL):用于创建和管理数据库对象,如创建表、修改表结构、删除表等。

  2. 数据查询语言(DQL):用于查询和检索数据库中的数据,如SELECT语句。

  3. 数据操纵语言(DML):用于操作数据库中的数据,如插入数据、更新数据、删除数据等。

  4. 数据控制语言(DCL):用于授权和管理数据库的用户访问权限,如GRANT和REVOKE语句。

SQL语言的应用广泛,几乎所有的关系数据库系统都支持SQL语言。它被广泛用于开发应用程序、数据分析、数据管理等领域。

2.SQL语言的规则与规范 

2.1基本规则

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

2.2SQL大小写规范

> MySQL 在Windows环境下是大小写是不敏感的。

> MySQL 在Linux环境下是大小写是敏感的。

   数据库名,表名,表的别名,变量名是严格区分大小写的。

   关键字,函数名,列名,列的别名是忽略大小写的。

> 推荐采用统一的书写规范:

   数据库名,表名,表的别名,字段名等都小写。

   关键字,函数名,绑定变量等都是大写。

2.3注释 

单行注释:#注释文字

单行注释:-- 注释文字(--后必须有一个空格)

多行注释:/* 注释文字 */

2.4命名规则 

数据库命名规则是一种规范,用于指导开发人员命名数据库、表、列等数据库对象的名称。以下是一些常见的数据库命名规则:

  1. 使用有意义的、描述性的名称:名称应该能够准确地描述数据库对象的用途和功能,以便其他人能够清楚地理解它们。

  2. 使用小写字母:大多数数据库管理系统(DBMS)区分大小写,因此使用小写字母可以避免不必要的混淆和错误。

  3. 使用下划线或者驼峰命名法:下划线命名法将单词用下划线连接,例如 employee_details;驼峰命名法将单词的首字母大写,例如 employeeDetails。可以根据团队的偏好选择一种。

  4. 避免使用特殊字符和关键字:特殊字符和关键字(如空格、逗号、句点等)可能会导致错误,应该避免在数据库对象的名称中使用它们。

  5. 使用一致的命名约定:在整个数据库中使用一致的命名约定,可以提高代码的可读性和维护性,并减少混乱和错误。

  6. 遵循数据库命名规范:某些DBMS可能有特定的命名规范,如Oracle的命名规范。开发人员应该了解并遵循相应的规范。

  7. 不要使用缩写和简写:尽量避免使用缩写和简写,除非它们被广泛认可并且不会引起混淆。

综上所述,数据库命名规则旨在提高代码的可读性、可维护性和一致性,并减少错误和混淆。

3.导入现有的数据表,表的数据 

3.1方式一:source   文件的全路径名

mysql> source d:\mysqldb.sql

3.2方式二: 基于具体的图形化界面的工具导入数据。

SQLyog和Navicat都是流行的数据库管理工具,它们提供了图形化界面来导入数据。

在SQLyog中,你可以通过以下步骤导入数据:

  1. 打开SQLyog并连接到你的数据库。
  2. 在左侧的导航栏中选择你要导入数据的数据库。
  3. 在顶部菜单中选择"Tools"(工具)然后选择"Import Data from Disk"(从磁盘导入数据)。
  4. 在弹出窗口中选择你要导入的文件类型,如CSV、SQL等。
  5. 浏览并选择要导入的文件。
  6. 根据需要在导入选项中进行设置,如选择导入到哪个表、定义字段分隔符等。
  7. 点击"Import"(导入)按钮开始导入数据。

在Navicat中,你可以按照以下步骤导入数据:

  1. 打开Navicat并连接到你的数据库。
  2. 在左侧的导航栏中选择你要导入数据的数据库。
  3. 右键点击数据库并选择"Import Wizard"(导入向导)。
  4. 在弹出窗口中选择你要导入的文件类型,如CSV、SQL等。
  5. 浏览并选择要导入的文件。
  6. 根据需要在导入选项中进行设置,如选择导入到哪个表、定义字段分隔符等。
  7. 点击"Next"(下一步)按钮开始导入数据。
  8. 完成向导的剩余步骤(如字段映射、表设置等),然后点击"Finish"(完成)按钮。

这些工具为用户提供了一个更直观和方便的方式来导入数据,无需编写复杂的导入脚本。

4.基本的SELECT语句 

SELECT...

SELECT 1; #没有任何子句

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

4.1SELECT...FROM 

> 语法:

SELECT    标识选择哪些列

FROM       标识从哪个表中选择

SELECT employee_id,first_name,email
FROM employees;

4.2 列的别名

#列的别名
#as:全称:alias(别名),可以省略
#列的别名可以使用""引起来

SELECT employee_id emp_id,last_name AS lname,department_id "部门id",salary*11 annual
FROM employees;

4.3去除重复行 

#去除重复行
#查询员工表中一共有哪些部门id呢?
SELECT department_id 
FROM employees;
#distinct 去重
SELECT  DISTINCT department_id
FROM employees; 
#没有实际意义
SELECT DISTINCT department_id,salary
FROM employees;

4.4空值参与运算


#空值参与运算
#空值:null
#null不等同于0,'','null'
SELECT*FROM employees;
#空值参与运算结果也为null
SELECT employee_id,salary "月工资",salary * (1+commission_pct) *12 "年工资"
FROM employees;
#实际问题的解决方法:引入ifnull
SELECT employee_id,salary "月工资",salary * (1+IFNULL(commission_pct,0)) *12 "年工资"
FROM employees;

4.5着重号 ``
 

  • 是 SQL 中的保留关键字。
    • 如果有一个表名为order,在查询这个表时就需要使用着重号来避免语法错误。正确的查询语句可以是SELECT * FROM order;。如果不使用着重号,MySQL 会将order理解为排序相关的关键字,而不是表名,从而导致查询出错。
  • 对象名称包含特殊字符或空格的情况
    • 假设创建了一个表名为my table(包含空格),在引用这个表名时,必须使用着重号,如SELECT * FROM my table;。否则,MySQL 无法正确解析这个表名。同样,如果表名中包含其他特殊字符,如-#等,也需要使用着重号。
SELECT*FROM `order`;

 5.显示表结构

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

DESCRIBE  employees;

DESC  employees;

6.过滤数据 


#查询90号部门的员工信息
#过滤条件 where department_id=90;where声明在from后面
 

SELECT*
FROM employees
WHERE department_id=90;
SELECT*
FROM employees
WHERE last_name='king';

 


http://www.kler.cn/a/406465.html

相关文章:

  • 算法日记 32 day 动态规划(完全背包)
  • 企业网页设计的安全与数据保护
  • 经典算法:查找与排序
  • Nginx 配置教程:仅重定向根路径(网站首页)
  • Vue 3 自定义插件开发
  • 【电路笔记 TMS320F28335DSP】时钟+看门狗+相关寄存器(功能模块使能、时钟频率配置、看门狗配置)
  • 在 Ubuntu 系统上安装 npm 环境以及 nvm(Node Version Manager)
  • 车企如何实现安全图纸外发管理
  • 单片机学习笔记 5. 数码管静态显示
  • Diving into the STM32 HAL-----DAC笔记
  • 设计模式:6、装饰模式(包装器)
  • 如何修复WordPress卡在维护模式
  • 适配屏幕px、rem单位换算, 将 pxToRem 函数设置为一个全局工具如:在 utils.js 文件、SCSS/Mixin 定义
  • 外卖系统开发实战:从架构设计到代码实现
  • Docker 容器自动启动设置
  • XCode Build时遇到 .entitlements could not be opened 的问题
  • 在 IDEA 中关闭 Spark 的日志输出 已解决
  • JVM(五、垃圾回收器)
  • 初级数据结构——树
  • Element-UI中el-input输入手机号时,如何限制只能输入数字
  • django基于Django的二手电子设备交易平台设计与开发
  • 服务机器人三甲坎德拉:用智能化开启售后服务新篇章
  • 使用OpenAI进行自动化报告和数据解读
  • 【spark】远程debug spark任务(含有pyspark)
  • 接口测试和单元测试
  • ChatClient:探索与AI模型通信的Fluent API