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

MySQL基础(一)SQL分类、导入、SELECT语句,运算符

目录

MySQL安装以及相关工具

SQL分类

导入数据 

最基本的SELECT语句

SELECT   FROM 

 列的别名

 去除重复行

着重号

查询常数

 描述表结构

 过滤数据(重要)

运算符

算数运算符

比较运算符 

符号运算符

 非符号运算符

逻辑运算符

 位运算符


MySQL安装以及相关工具

MySQL

安装时会对mysql进行相关设置,例如用户及其密码,具体参见MySQL 安装 | 菜鸟教程

如果我们要登录本机的 MySQL 数据库,只需要输入以下命令即可:

mysql -u root -p

按回车确认, 如果安装正确且 MySQL 正在运行, 会得到以下响应:

Enter password:

可视化工具这里推荐  SQLyog、navicat

现在左上角建立连接,连接到自己的mysql,再进行操作 

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等

导入数据 

命令行输入:

 source 路径.sql;

 当然也可以直接把sql文件拖到数据库文件夹下

也可以使用SQLyog、navicat等可视化工具导入

最基本的SELECT语句

SELECT   FROM 

意为查询

SELECT 字段1,字段2 、、、 FROM 表名;

例如,在jobs表中选择所有列:

SELECT * FROM jobs;

在jobs表中查询  min_salary 和 max_salary 列

SELECT min_salary,max_salary FROM jobs;

 列的别名

在查询操作中,可以给列取别名

有三种方式:

  1. 列名 别名
  2. 列名 as 别名
  3. 列名 ”别名“
SELECT min_salary mins,max_salary AS masx,job_id "id"
FROM jobs;

 

 

 去除重复行

当某些列有很多重复的内容(例如每个人的部门编号)

 而你只想看见不同的内容(一共有哪些部门),就需要去重

SELECT DISTINCT department_id 
FROM employees;

着重号

如果表名与mysql中的语句方法名冲突,就应该加着重号修饰    `xxx`

SELECT * FROM `order`

查询常数

在查询的语句中加入 常数,会自动填充此常数

SELECT 'lalala',department_id 
FROM employees;

 描述表结构

DESCRIBE employees;

包含了表的字段,数据类型,能否为空值等等信息 

 

 过滤数据(重要)

查询某些满足特定要求的数据,例如查询 部门编号为90的表数据

SELECT *
FROM employees
WHERE department_id=90

当然可以同时提交多个条件

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

值得注意的是,windows下的mysql对大小写不敏感,例如这里写 king  和KING ,查询结果都是一样的,在某些情况下这是一个缺点。

运算符

算数运算符

举例: 

 

  •  一个整数类型的值对整数进行加法和减法操作,结果还是一个整数;
  • 一个整数类型的值对浮点数进行加法和减法操作,结果是一个浮点数;
  • 加法和减法的优先级相同,进行先加后减操作与进行先减后加操作的结果是一样的;
  • 在Java中,+的左右两边如果有字符串,那么表示字符串的拼接。但是在MySQL中+只表示数值相加。如果遇到非数值类型,先尝试转成数值,如果转失败,就按0计算。(补充:MySQL中字符串拼接要使用字符串函数CONCAT()实现)

比较运算符 

符号运算符

下面展示了一些特殊情况 

 

  • 100=100,最普通的情况
  • 1=’1‘,sql存在隐式转换,转换为等号前面的数据类型
  • 1=’a',0='a',若转换不成功,默认为0
  • NULL不能用=比较,但是可以用<=>比较

 非符号运算符

  • is null , least (最小), greatest (最大)

 

  •  BETWEEN AND是包含两者的,即包含6000和8000

等价于

SELECT salary
FROM employees
WHERE salary >=6000 AND salary<=8000
  •  in , not in

 

等价于

SELECT department_id
FROM employees
WHERE department_id = 10 OR department_id = 20 OR department_id = 30
  • like 模糊查询

例如查询 first_name中以字母a开头的数据

这里经常搭配 % 使用,表达不确定的个数

_表示不确定的一个字符,例如查询 第二个字母为a 的数据

SELECT first_name
FROM employees
WHERE first_name LIKE '_a%'
  •  REGEXP

REGEXP运算符用来匹配字符串

(1)‘^’匹配以该字符后面的字符开头的字符串。
(2)‘$’匹配以该字符前面的字符结尾的字符串。
(3)‘.’匹配任何一个单字符。
(4)“[...]”匹配在方括号内的任何字符。例如,“[abc]”匹配“a”或“b”或“c”。为了命名字符的范围,使用一个‘-’。“[a-z]”匹配任何字母,而“[0-9]”匹配任何数字。
(5)‘*’匹配零个或多个在它前面的字符。例如,“x*”匹配任何数量的‘x’字符,“[0-9]*”匹配任何数量的数字,而“*”匹配任何数量的任何字符。

SELECT first_name
FROM employees
WHERE first_name REGEXP '^b'

逻辑运算符

 位运算符

这里需要将数据转换为二进制数据进行 位运算

用的比较少,不赘述

 

http://www.lryc.cn/news/24866.html

相关文章:

  • 反激与正激的区别
  • 王道操作系统课代表 - 考研计算机 第四章 文件管理 究极精华总结笔记
  • 前端开发规范,你真的了解吗?一起来学习一下前端开发规范,让你的代码高级起来!
  • Licode—基于webrtc的SFU/MCU实现
  • 开发运维工具推荐 --- 解决远程访问局域网服务的问题。开发调试推荐
  • 【华为OD机试 】单词倒序(C++ Java JS Python)
  • PLC 诊断故障的基本原理
  • QT打开外部程序并嵌入Qt子窗口的缺点
  • 如何系统地学习 C++ 语言?
  • 【数据结构】单链表
  • Windows 右键菜单扩展容器 [开源]
  • 爆文制造机!小红书热榜3个方向,告诉你选题诀窍!
  • 【Web安全社工篇】——水坑攻击
  • SpringBoot 整合 MongoDB 实现数据的增删改查!
  • VUE前端常问面试题
  • c++中map/unordered_map的不同遍历方式以及结构化绑定
  • Kafka系列之:Kraft模式
  • 动态规划:leetcode 139.单词拆分、多重背包问题
  • Stable Diffusion原理详解
  • webpack高级配置
  • jQuery 事件
  • 【批处理脚本】-2.3-解析地址命令arp
  • 改进 YOLO V5 的密集行人检测算法研究(论文研读)——目标检测
  • Python - Opencv应用实例之CT图像检测边缘和内部缺陷
  • 管理逻辑备数据库(Logical Standby Database)
  • 【C++】构造函数(初始化列表)、explicit、 Static成员、友元、内部类、匿名对象
  • (六十)再来看看几个最常见和最基本的索引使用规则
  • 机器学习与目标检测作业(数组相加:形状需要满足哪些条件)
  • CentOS救援模式(Rescue Mode)及紧急模式(Emergency Mode)
  • 从面试官角度告诉你高级性能测试工程师面试必问的十大问题