MySQL简介与基本的select语句

news2024/12/26 1:00:54

1.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等。

:因为查询语句使用的非常频繁,使用很多人把查询语句单独分为一类:DQL(数据查询语言)

        还有单独将COMMIT、ROLLBACK 取出来称为TCL(事务控制语言)

2.SQL 语言的规则与规范

(1)基本规则

  •   SQL可以写在一行或者多行。为了提高可读性,各子句分行写,必要时使用缩进。
  •   每条命令以 ; 或 \g 或 \G 结束
  •   关键字不能被缩写也不能分行

(2)关于标点符号

  •  必须保证所有的()、单引号、双引号是成对结束的
  •  必须使用英文状态下的半角输入方式
  •  字符串型和日期时间类型的数据可以使用单引号(' ')表示
  •   列的别名,尽量使用双引号(" "),而且不建议省略as 

(3)SQL大小写规范

  •  MySQL 在 Windows 环境下是大小写不敏感的
  •   MySQL 在 Linux 环境下是大小写敏感的

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

                关键字、函数名、列名(或字段名)、列的别名(字段的别名) 是忽略大小写的。

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

                数据库名、表名、表别名、字段名、字段别名等都小写

                 SQL 关键字、函数名、绑定变量等都大写

(4)注释

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

单行注释:#注释文字(MySQL特有的方式)

单行注释:-- 注释文字(--后面必须包含一个空格。)

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

(5)命名规则

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

(6)导入现有的数据表的数据

方式一 :在命令行窗口登录MySQL通过命令行来实现

//登录mysql
mysql -u root -p

//登录之后使用source指令导入
mysql> source 文件的全路径

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

选择文件,点击执行即可。

3.SELECT语句

(1)SELECT...

SELECT 1; #没有任何子句

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

(2)SELECT...FTOM

语法:

SELECT   标识选择哪些列

FROM     标识从哪个表中选择

选择全部列:

SELECT *(*代表所有) FROM   表名;

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

在生产环境下,不推荐你直接使用 SELECT * 进行查询。而是选择指定的字段来进行查询。

选择特定的列:

SELECT department_id, location_id

FROM   departments;

MySQL中的SQL语句是不区分大小写的,因此SELECT和select的作用是相同的,但是,许多开发人 员习惯将关键字大写、数据列和表名小写,读者也应该养成一个良好的编程习惯,这样写出来的代 码更容易阅读和维护。

(3)SELECT ... FROM ... WHEREE

语法:

SELECT 字段1,字段2

FROM 表名

WHERE 过滤条件

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

WHERE子句紧随 FROM子句

例:

SELECT employee_id, last_name, job_id, department_id

FROM   employees

WHERE department_id = 90 ;

(4)列的别名(AS)

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

例:

SELECT * FROM users

SELECT id,username AS un , `password` AS pw FROM users

(5)去除重复行(DISTINCT)

默认情况下,查询会返回全部行,包括重复行。

SELECT department_id FROM   employees;

 在SELECT语句中使用关键字DISTINCT去除重复行

SELECT DISTINCT department_id FROM  employees;

例 :去除表中username的重复字段

SELECT DISTINCT username , `password` FROM users

如果想数据带id,可以使用分组(自动去重)的方法进行实现

SELECT  * FROM users GROUP BY  username

 注:DISTINCT 其实是对后面所有列名的组合进行去重。

(6)空值参与运算

所有运算符或列值遇到null值,运算的结果都为null

SELECT employee_id,salary,commission_pct,

12 * salary * (1 + commission_pct) "annual_sal"

FROM employees;

这里你一定要注意,在 MySQL 里面, 空值不等于空字符串。一个空字符串的长度是 0,而一个空值的长度是空。而且,在 MySQL 里面,空值是占用空间的。

(7)着重号

SELECT * FROM `ORDER`;

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

4.显示表结构

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

DESCRIBE employees;

或

DESC employees;

其中,各个字段的含义分别解释如下:

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

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

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

相关文章

CSS3 的其他特性(了解)

目录 1.CSS3滤镜filter: 2.CSS3 calc函数 3.CSS3 过度(重点) 4.进度条案例 5.侠义的HTML5 CSS3 1.CSS3滤镜filter: filter CSS属性及那个模糊或颜色偏移等图形效果应用于元素。 filter: 函数(); 例如:…

端子排电压继电器 动作时间短 35mm卡槽安装 JY-7GA/2 80-320VAC

JY-7GA/2端子排电压继电器品牌:JOSEF约瑟名称:端子排电压继电器型号:JY-7GA/2电压整定范围:60200VAC/90300VDC功率消耗:<3W触点容量:250V5A返回系数:过压0.920.96/欠压1.041.08 系列型号: JY-7GA/DK/220端子排电压继电器; JY-7GB/DK/220端…

sqoop将hive中的数据导入MySQL不能正常显示中文——已解决

问题: 原因: 结果查看 问题: 在做练习利用sqoop工具将hive中的表导入到MySQL之后,在MySQL查看中文部分不能正常显示 输入sqoop执行语句 sqoop export -connect "jdbc:mysql://HadoopMaster:3306/hive_to_mysql?useUnicode…

要不要提前去实习?

大家好,我是帅地。 秋招结束,很多人在纠结要不要提前去公司实习,最近也有一些帅友问了这个问题 说说我去年在腾讯实习的经历给你做个参考吧。 入职前的学习 20年初那会,还是蛮激动,之前我从来没有去打过工&#xff…

如何用Xcode安装ipa

Xcode安装ipa iOS APP上架App Store其中一个步骤就是要把ipa文件上传到App Store!​ 下面进行步骤介绍!​ 利用Appuploader这个软件,可以在Windows、Linux或Mac系统中申请ios和上传IPA到App Store Connect。​ 非常的方便,没有…

08-01 分布式系统理论

分布式一致性和CAP理论 C(一致性):在分布式环境中,一致性是指数据在多个副本之间能否保持一致的特性A(可用性):系统提供的服务必须一直处于可用的状态,对于用户的每一个操作请求总是…

butter滤波器

文章目录 什么是巴特沃斯滤波器?滤波器的阶数的含义matlab中的butterscipy.signal butter 中有哪些参数,各参数分别是什么含义? 本节围绕以下问题展开 butter 是什么?滤波器的阶数是什么意思?matlab中的butter参数含义…

00后工资太低想转行?选择云计算如何

00后已经成为目前从业最年轻的群体,有活力也需求明确,搞钱已经成为上班最核心的目的。但也有一波比较迷茫的00后,比如原专业学得不好,没有对口就业、工作内容不喜欢、工资太低养不活自己等等。而工资太低也是大部分00后想转行的主…

Linux 服务器设置 jar包开机自启动

一、新建jar包启动sh文件 新建startup.sh脚本文件,启动项目jar包 nohup java -jar test.jar >/dev/null 2>&1 & 二、设置自动启动命令 1.进入rc.d目录 执行cd /etc/rc.d 命令,进入rc.d目录 如图所示(示例)&…

如何将参考文献格式改成目标期刊要求的格式?

最近在改投期刊,所以要对参考文献的格式进行修改,记录一下修改过程中遇到的问题和解决方法,希望对小伙伴们有所帮助! (1)问题:不知道目标期刊的参考文献格式是什么怎么办? (2)解决:下载目标期刊…

论文解读:DeepZ:一种用于Z-DNA预测的深度学习方法

标题 DeepZ: A Deep Learning Approach for Z-DNA Prediction. DOI 10.1007/978-1-0716-3084-6_15 期刊 Methods in molecular biology 作者 Nazar Beknazarov; Maria Poptsova 出版日期 2023-01-01 Github:https://github.com/Nazar1997/Sparse-vector 网址 https://doi…

一篇文章了解 Java IO 流

一:IO 流的概述 1. 什么是 IO 流? 存储和读取数据的解决方法 I:input O:output 流:像水流一样传输数据 2. IO 流的作用? 用于读写数据(本地文件,网络) 3. IO 流按…

linux系统 数组 的运用

这里写目录标题 数组数组的定义数组的定义方式输出数组的方式数组包括的数据类型数组的删除与追加数组的删除数组的追加 数组切片与替换切片替换 冒泡排序 数组 数组的定义 数组是存放相同类型数据的集合,在内存中开辟了连续的空间,通常配合循环使用 …

爬虫逆向——某建筑市场监管平台的滑块验证码分析

目录 网址链接: 正文: 一、思路分析 二、图片处理 三、完整代码 网址链接: aHR0cHM6Ly9nY3htLmh1bmFuanMuZ292LmNuL2RhdGFzZXJ2aWNlLmh0bWw (bs64解密可见) 正文: 注:分步的代码为示例…

C语言中数据结构——带头双向循环链表

🐶博主主页:ᰔᩚ. 一怀明月ꦿ ❤️‍🔥专栏系列:线性代数,C初学者入门训练,题解C,C的使用文章,「初学」C,数据结构 🔥座右铭:“不要等到什么都没…

如何删除打印机任务?三种快速删除打印机任务的方法

打印机用户可能会经常遇到添加错的打印任务,或是一不小心重复选择过多的打印任务,环保人人有责,杜绝纸张浪费,驱动人生就为大家带来快速删除打印任务的方法。 方法一:使用Windows自带的清理功能 在Windows操作系统中…

谷歌全线反击!PaLM 2部分性能已经超越GPT-4

ChatGPT横空出世,所有人都能够明确感知到AI的惊人潜力,瞬间改变了整个AI行业的节奏,不紧不慢的谷歌也开始紧张了。 ChatGPT舆论热潮仍未消退,红色警报又拉响 北京时间5月11日凌晨1点,Google I/O 2023开发者大会上发布…

C++ | 深拷贝和浅拷贝

C 深拷贝和浅拷贝 当类的函数成员存在__指针成员__时会产生深拷贝和浅拷贝和问题。 在进行对象拷贝时会使用默认拷贝构造函数,默认进行浅拷贝,即只会拷贝指针的值,新拷贝的指针与原来的指针指向同一内存; 浅拷贝带来的问题是&…

stm32裸机开发下利用MultiTimer多任务时间片询

stm32裸机开发下利用MultiTimer多任务时间片询 📌MultiTimerGithub地址:https://github.com/0x1abin/MultiTimer ✨这是一个类似Arduino平台上的Ticker库,如需阅读懂源码,起码需要有链表知识的储备,如果仅仅只是拿来使…

docker学习笔记(二)

目录 启动Docker ​编辑 建立 Docker 用户 ​编辑 测试 Docker 是否正常工作 卸载Docker Docker镜像加速器配置 配置镜像 检查加速器是否生效 如何在Linux中的.json文件下保存并退出 如果我是使用vi操作进来的,我该如何保存并退出呢? 如何在Li…