MySQL数据库学习笔记(一)

article/2025/10/15 12:08:03

1、什么是数据库?什么是数据库管理系统?什么是SQL?他们之间有什么关系?

学习源https://www.bilibili.com/video/BV1Vy4y1z7EX?p=25
链接:https://pan.baidu.com/s/1yB9DwzykigPvPYJ6wOMVBg
提取码:1234
复制这段内容后打开百度网盘手机App,操作更方便哦

1、数据库:Database,简称DB,按照一定格式存储数据的一些文件的组合。

顾名思义:存储文件的仓库,实际上就是一堆文件,这些文件中存储了具有特定格式的数据。

2、数据库管理系统:DataBaseMangement,简称DBMS。

​ 数据库管理系统是专门用来管理数据库中数据的,数据库管理系统可以对数据库当中的数据进行增删改查。

常见的数据库管理系统:

​ MySQL、Oracle、MS、SqlServer、DB2、sybase等。。。

3、SQL:结构化查询语言

​ 程序员需要学习SQL语句,程序员通过编写SQL语句,然后DBMS负责执行SQL语句,最终来完成数据库的增删改查操作。

​ SQL是一套标准,程序员主要学习的就是SQL语句,这个SQL在MySQL中可以使用,同时在Oracle、DB2中也可以使用。

4、三者之间的关系:

DBMS——执行——> SQL ——操作——> DB

​ 先安装数据库管理系统MySQL,然后学习SQL语句怎么写,编写SQL语句之后,DBMS对SQL语句进行执行,最终来完成数据库的数据管理。

2、安装MySQL(for Windows)

在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

在这里插入图片描述在这里插入图片描述在这里插入图片描述
端口号:端口号port是任何一个软件/应用都会有的,端口号是应用的惟一代表,端口号通常和IP地址在一块,IP地址用来定位计算机的,端口号port是用来定位计算机上的某个服务/应用的

在同一台计算机导航端口号不能重复,具有唯一性

MySQL数据库启动的时候,这个服务用的默认端口号是3306
字符编码方式:这是MySQL数据库的字符编码格式为utf8
在这里插入图片描述
在这里插入图片描述

超级管理员的用户名一定是root,不能修改,此处只修改密码;远程登录如果不选,则数据库只能在本机登录,选择上表示可以远程登陆
在这里插入图片描述在这里插入图片描述

在这里插入图片描述

3、MySQL数据库完美卸载

第一步,双击安装包卸载删除
在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述

第二部、删除目录

在这里插入图片描述在这里插入图片描述

4、看一下计算机上的服务,找一找MySQL的服务在哪里

计算机——>右键——>管理——>服务和应用程序——>服务——>MySQL服务

MySQL的服务,默认是自动启动,自动启动表示下一次重启操作系统的时候自动启动该服务

可以在服务上右键——>属性,然后可以选择启动方式
在这里插入图片描述

5、在Windows操作系统中,怎么用命令启动MySQL服务

语法:net start 服务名称

​ net stop 服务名称

管理员身份运行cmd

在这里插入图片描述在这里插入图片描述在这里插入图片描述

注:其他服务的启停都可以使用上面的命令

6、MySQL安装启动了,怎么登录MySQL数据库呢?

在这里插入图片描述在这里插入图片描述

7、MySQL常用命令

退出:exit

注意:命令输入结束后要以 “;” 结尾,不区分大小写

查看MySQL中有哪些数据库——show databases;

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.01 sec)

MySQL默认自带了4个数据库,怎么选择使用某个数据库呢——use 数据库名;

mysql> use test;
Database changed
mysql>

表示正在使用名为test的数据库

怎么创建数据库呢——create database 数据库名;

mysql> create database lianxi;
Query OK, 1 row affected (0.01 sec)mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| lianxi             |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)

查看数据库下面有哪些表——show tables;

mysql> use mysql
Database changed
mysql> show tables;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
。。。。。。。。
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+
24 rows in set (0.00 sec)

查看MySQL数据库的版本号——select version();

mysql> select version();
+-----------+
| version() |
+-----------+
| 5.5.28    |
+-----------+
1 row in set (0.00 sec)

查看当前使用的是哪个数据库——select database();

mysql> select database();
+------------+
| database() |
+------------+
| mysql      |
+------------+
1 row in set (0.00 sec)

注意:MySQL是不见“;”不执行,“;”表示结束。可以使用\c结束

mysql> show->->-> \c
mysql>

8、数据库中最基本的单元是表:table

什么是表,为什么用表存储数据呢?

数据库当中是以表格的形式存储数据的,因为比较直观

任何一张表都有行和列

姓名性别年龄列:字段
张三20行——记录
李四22行——记录
王五20行——记录

行(row):被称为数据/记录

列(column):被称为字段

每个字段都有字段名、数据类型、约束等属性;字段名可以是一个普通的名字,见明知意就行

约束:其中有个约束叫做唯一性约束,这种约束添加之后,该字段中的数据不能重复。

9、关于SQL语句的分类

DQL:数据查询语言(凡是带有select关键字的都是查询语句)

select。。。

DML:数据操作语言(凡是对表当中的数据进行增删改的都是DML)

​ 主要是操作表中的数据

insert——增    delete——删   updates——改

DDL:数据定义语言(凡是带有create、drop、alter的都是DDL)

​ create——创建、drop——删除、alter——修改

​ 主要操作的是表的结构,而不是表中的数据

TCL:是事务控制语言,包括:事务提交:commit;事务回滚:rollback

DCL:是数据控制语言,例如:授权grant、撤销权限revoke。。。。。

10、导入表格

使用source命令,将Windows中的表格拖到数据库中,路径中不能有中

mysql> use lianxi
Database changed
mysql> source F:\lianxi.sql
Query OK, 0 rows affected, 1 warning (0.00 sec)Query OK, 0 rows affected, 1 warning (0.00 sec)Query OK, 0 rows affected, 1 warning (0.00 sec)Query OK, 0 rows affected (0.01 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)

11、关于导入的几张表

mysql> show tables;
+------------------+
| Tables_in_lianxi |
+------------------+
| dept             |部门表
| emp              |员工表
| salgrade         |工资表
+------------------+
3 rows in set (0.00 sec)

怎么查看表中的数据呢?

select * from 表名;——查看某个表的所有内容

mysql> select * from dept;
+--------+------------+----------+
| DEPTNO | DNAME      | LOC      |
+--------+------------+----------+
|     10 | ACCOUNTING | NEW YORK |
|     20 | RESEARCH   | DALLAS   |
|     30 | SALES      | CHICAGO  |
|     40 | OPERATIONS | BOSTON   |
+--------+------------+----------+
4 rows in set (0.00 sec)

12、不看表的数据,只看表的结构——desc(describe) 表名;


mysql> desc emp;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| EMPNO    | int(4)      | NO   | PRI | NULL    |       |
| ENAME    | varchar(10) | YES  |     | NULL    |       |
| JOB      | varchar(9)  | YES  |     | NULL    |       |
| MGR      | int(4)      | YES  |     | NULL    |       |
| HIREDATE | date        | YES  |     | NULL    |       |
| SAL      | double(7,2) | YES  |     | NULL    |       |
| COMM     | double(7,2) | YES  |     | NULL    |       |
| DEPTNO   | int(2)      | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
8 rows in set (0.01 sec)

13、DQL简单查询

13.1、查询一个字段

​ select 字段名 from 表名;

​ 注意:select和from都是关键字,字段名和表名都是关键字

对于 SQL语句来说是通用的,所有的SQL语句以“;”结尾,另外SQL语句不区分大小写,都行。

查询部门名字

mysql> select dname from dept;
+------------+
| dname      |
+------------+
| ACCOUNTING |
| RESEARCH   |
| SALES      |
| OPERATIONS |
+------------+
4 rows in set (0.00 sec)

13.2、查询两个字段或多个字段,用逗号隔开

查询部门编号和部门名

select deptno,dname from dept;

mysql> select deptno,dname from dept;
+--------+------------+
| deptno | dname      |
+--------+------------+
|     10 | ACCOUNTING |
|     20 | RESEARCH   |
|     30 | SALES      |
|     40 | OPERATIONS |
+--------+------------+
4 rows in set (0.00 sec)

13.3、查询所有字段

1、把所有字段名都写上

2、使用* 这种方式的缺点:效率低,可读性差

13.4、给查询的列起别名

select deptno,dname as deptname from dept; 使用as关键字起别名,注意只是将显示结果的列名进行修改,原表内容不变。

select deptno,dname deptname from dept; 去掉as使用空格也可以

mysql> select deptno,dname as deptname from dept;
+--------+------------+
| deptno | deptname   |
+--------+------------+
|     10 | ACCOUNTING |
|     20 | RESEARCH   |
|     30 | SALES      |
|     40 | OPERATIONS |
+--------+------------+
4 rows in set (0.00 sec)mysql> select deptno,dname  deptname from dept;
+--------+------------+
| deptno | deptname   |
+--------+------------+
|     10 | ACCOUNTING |
|     20 | RESEARCH   |
|     30 | SALES      |
|     40 | OPERATIONS |
+--------+------------+
4 rows in set (0.00 sec)

起别名的时候,别名里有空格需要使用‘单引号’括起来

注意:在所有数据库中,字符串统一使用‘单引号 ’括起来,单引号是标准。

mysql> select deptno,dname  'dept name' from dept;
+--------+------------+
| deptno | dept name  |
+--------+------------+
|     10 | ACCOUNTING |
|     20 | RESEARCH   |
|     30 | SALES      |
|     40 | OPERATIONS |
+--------+------------+
4 rows in set (0.00 sec)

13.5、计算员工年薪 ——sal*12

mysql> select ename,sal from emp;
+--------+---------+
| ename  | sal     |
+--------+---------+
| SMITH  |  800.00 |
| ALLEN  | 1600.00 |
| WARD   | 1250.00 |
| JONES  | 2975.00 |
| MARTIN | 1250.00 |
| BLAKE  | 2850.00 |
| CLARK  | 2450.00 |
| SCOTT  | 3000.00 |
| KING   | 5000.00 |
| TURNER | 1500.00 |
| ADAMS  | 1100.00 |
| JAMES  |  950.00 |
| FORD   | 3000.00 |
| MILLER | 1300.00 |
+--------+---------+
14 rows in set (0.00 sec)mysql> select ename,sal*12 from emp;//结论:字段可以使用数学表达式
+--------+----------+
| ename  | sal*12   |
+--------+----------+
| SMITH  |  9600.00 |
| ALLEN  | 19200.00 |
| WARD   | 15000.00 |
| JONES  | 35700.00 |
| MARTIN | 15000.00 |
| BLAKE  | 34200.00 |
| CLARK  | 29400.00 |
| SCOTT  | 36000.00 |
| KING   | 60000.00 |
| TURNER | 18000.00 |
| ADAMS  | 13200.00 |
| JAMES  | 11400.00 |
| FORD   | 36000.00 |
| MILLER | 15600.00 |
+--------+----------+
14 rows in set (0.00 sec)
mysql> select ename,sal*12 as '年薪' from emp;//别名是中文用单引号括起来
+--------+----------+
| ename  | 年薪      |
+--------+----------+
| SMITH  |  9600.00 |
| ALLEN  | 19200.00 |
| WARD   | 15000.00 |
| JONES  | 35700.00 |
| MARTIN | 15000.00 |
| BLAKE  | 34200.00 |
| CLARK  | 29400.00 |
| SCOTT  | 36000.00 |
| KING   | 60000.00 |
| TURNER | 18000.00 |
| ADAMS  | 13200.00 |
| JAMES  | 11400.00 |
| FORD   | 36000.00 |
| MILLER | 15600.00 |
+--------+----------+
14 rows in set (0.00 sec)mysql>

14、条件查询

14.1、什么是条件查询?

不是将表中所有数据都查出来,是查询出来符合条件的

语法格式:select 字段1,字段2,。。。from 表名 where 条件;

14.2、都有哪些条件

= 等于

//查询工资等于800的员工工号和姓名
mysql> select empno,ename from emp where sal = 800;
+-------+-------+
| empno | ename |
+-------+-------+
|  7369 | SMITH |
+-------+-------+
1 row in set (0.00 sec)//"="可以接字符串,用单引号括起来
mysql> select empno,ename from emp where ename = 'SMITH';
+-------+-------+
| empno | ename |
+-------+-------+
|  7369 | SMITH |
+-------+-------+
1 row in set (0.00 sec)

<>或!= 不等于

//查询工资不等于800的员工工号和姓名
mysql> select empno,ename from emp where sal <> 800;
mysql> select empno,ename from emp where sal != 800;
+-------+--------+
| empno | ename  |
+-------+--------+
|  7499 | ALLEN  |
|  7521 | WARD   |
|  7566 | JONES  |
|  7654 | MARTIN |
|  7698 | BLAKE  |
|  7782 | CLARK  |
|  7788 | SCOTT  |
|  7839 | KING   |
|  7844 | TURNER |
|  7876 | ADAMS  |
|  7900 | JAMES  |
|  7902 | FORD   |
|  7934 | MILLER |
+-------+--------+
13 rows in set (0.00 sec)

< 小于

查询薪资小于2000的员工姓名编号
mysql> select empno,ename,sal from emp where sal < 2000;
+-------+--------+---------+
| empno | ename  | sal     |
+-------+--------+---------+
|  7369 | SMITH  |  800.00 |
|  7499 | ALLEN  | 1600.00 |
|  7521 | WARD   | 1250.00 |
|  7654 | MARTIN | 1250.00 |
|  7844 | TURNER | 1500.00 |
|  7876 | ADAMS  | 1100.00 |
|  7900 | JAMES  |  950.00 |
|  7934 | MILLER | 1300.00 |
+-------+--------+---------+
8 rows in set (0.00 sec)

<= 小于等于

//查询薪资小于等于3000的员工姓名编号
mysql> select empno,ename,sal from emp where sal <= 3000;
+-------+--------+---------+
| empno | ename  | sal     |
+-------+--------+---------+
|  7369 | SMITH  |  800.00 |
|  7499 | ALLEN  | 1600.00 |
|  7521 | WARD   | 1250.00 |
|  7566 | JONES  | 2975.00 |
|  7654 | MARTIN | 1250.00 |
|  7698 | BLAKE  | 2850.00 |
|  7782 | CLARK  | 2450.00 |
|  7788 | SCOTT  | 3000.00 |
|  7844 | TURNER | 1500.00 |
|  7876 | ADAMS  | 1100.00 |
|  7900 | JAMES  |  950.00 |
|  7902 | FORD   | 3000.00 |
|  7934 | MILLER | 1300.00 |
+-------+--------+---------+
13 rows in set (0.00 sec)

'>'大于

//查询薪资大于3000的员工姓名编号
mysql> select empno,ename,sal from emp where sal > 3000;
+-------+-------+---------+
| empno | ename | sal     |
+-------+-------+---------+
|  7839 | KING  | 5000.00 |
+-------+-------+---------+
1 row in set (0.00 sec)

‘>=’ 大于等于

//查询薪资大于等于3000的员工姓名编号
mysql> select empno,ename,sal from emp where sal >= 3000;
+-------+-------+---------+
| empno | ename | sal     |
+-------+-------+---------+
|  7788 | SCOTT | 3000.00 |
|  7839 | KING  | 5000.00 |
|  7902 | FORD  | 3000.00 |
+-------+-------+---------+
3 rows in set (0.00 sec)

between … and …. 两个值之间, 等同于 >= and <=

//查询薪资在2450和3000之间的员工姓名编号,包括2450和3000
mysql> select empno,ename,sal from emp where sal >= 2450 and sal <=3000;//and表示并且
+-------+-------+---------+
| empno | ename | sal     |
+-------+-------+---------+
|  7566 | JONES | 2975.00 |
|  7698 | BLAKE | 2850.00 |
|  7782 | CLARK | 2450.00 |
|  7788 | SCOTT | 3000.00 |
|  7902 | FORD  | 3000.00 |
+-------+-------+---------+
5 rows in set (0.00 sec)
mysql> select empno,ename,sal from emp where sal between 2540 and 3000;
+-------+-------+---------+
| empno | ename | sal     |
+-------+-------+---------+
|  7566 | JONES | 2975.00 |
|  7698 | BLAKE | 2850.00 |
|  7788 | SCOTT | 3000.00 |
|  7902 | FORD  | 3000.00 |
+-------+-------+---------+
4 rows in set (0.00 sec)
//注意:使用between and 的时候,必须遵循左小右大的原则,是闭区间,包括两端的值

is null 为 null(is not null 不为空)

查询那些员工的津贴为null
mysql> select empno,ename,sal,comm from emp where comm is null;
+-------+--------+---------+------+
| empno | ename  | sal     | comm |
+-------+--------+---------+------+
|  7369 | SMITH  |  800.00 | NULL |
|  7566 | JONES  | 2975.00 | NULL |
|  7698 | BLAKE  | 2850.00 | NULL |
|  7782 | CLARK  | 2450.00 | NULL |
|  7788 | SCOTT  | 3000.00 | NULL |
|  7839 | KING   | 5000.00 | NULL |
|  7876 | ADAMS  | 1100.00 | NULL |
|  7900 | JAMES  |  950.00 | NULL |
|  7902 | FORD   | 3000.00 | NULL |
|  7934 | MILLER | 1300.00 | NULL |
+-------+--------+---------+------+
10 rows in set (0.00 sec)
//注意:在数据库中null不能使用=进行衡量,需要使用is null,因为数据库中的null表示什么也没有,它不是一个值,所以不能使用=衡量查询那些员工的津贴不为null
mysql> select empno,ename,sal,comm from emp where comm is not null;
+-------+--------+---------+---------+
| empno | ename  | sal     | comm    |
+-------+--------+---------+---------+
|  7499 | ALLEN  | 1600.00 |  300.00 |
|  7521 | WARD   | 1250.00 |  500.00 |
|  7654 | MARTIN | 1250.00 | 1400.00 |
|  7844 | TURNER | 1500.00 |    0.00 |
+-------+--------+---------+---------+
4 rows in set (0.00 sec)

and 并且

查询工作岗位是manager并且工资大于2500的员工信息
mysql> select empno,ename,sal,job,comm from emp where job = 'MANAGER' and sal > 2500;
+-------+-------+---------+---------+------+
| empno | ename | sal     | job     | comm |
+-------+-------+---------+---------+------+
|  7566 | JONES | 2975.00 | MANAGER | NULL |
|  7698 | BLAKE | 2850.00 | MANAGER | NULL |
+-------+-------+---------+---------+------+
2 rows in set (0.00 sec)

or 或者

查询工作岗位是manager或salesman的员工
mysql> select empno,ename,sal,job,comm from emp where job = 'MANAGER' or job = 'salesman';
+-------+--------+---------+----------+---------+
| empno | ename  | sal     | job      | comm    |
+-------+--------+---------+----------+---------+
|  7499 | ALLEN  | 1600.00 | SALESMAN |  300.00 |
|  7521 | WARD   | 1250.00 | SALESMAN |  500.00 |
|  7566 | JONES  | 2975.00 | MANAGER  |    NULL |
|  7654 | MARTIN | 1250.00 | SALESMAN | 1400.00 |
|  7698 | BLAKE  | 2850.00 | MANAGER  |    NULL |
|  7782 | CLARK  | 2450.00 | MANAGER  |    NULL |
|  7844 | TURNER | 1500.00 | SALESMAN |    0.00 |
+-------+--------+---------+----------+---------+
7 rows in set (0.00 sec)

and和or同时出现的话,有优先级问题吗?

查询工资大于2500,并且部门编号为10或20部门的员工?
mysql> select *from emp where sal > 2500 and deptno = 10 or deptno = 20;
+-------+-------+-----------+------+------------+---------+------+--------+
| EMPNO | ENAME | JOB       | MGR  | HIREDATE   | SAL     | COMM | DEPTNO |
+-------+-------+-----------+------+------------+---------+------+--------+
|  7369 | SMITH | CLERK     | 7902 | 1980-12-17 |  800.00 | NULL |     20 |
|  7566 | JONES | MANAGER   | 7839 | 1981-04-02 | 2975.00 | NULL |     20 |
|  7788 | SCOTT | ANALYST   | 7566 | 1987-04-19 | 3000.00 | NULL |     20 |
|  7839 | KING  | PRESIDENT | NULL | 1981-11-17 | 5000.00 | NULL |     10 |
|  7876 | ADAMS | CLERK     | 7788 | 1987-05-23 | 1100.00 | NULL |     20 |
|  7902 | FORD  | ANALYST   | 7566 | 1981-12-03 | 3000.00 | NULL |     20 |
+-------+-------+-----------+------+------------+---------+------+--------+
6 rows in set (0.00 sec)
//分析以上语句的问题?and优先级比or高。以上语句会先执行and,然后执行or。
以上这个语句表示什么含义?找出工资大于2500并且部门编号为10的员工,或者20部门所有员工找出来。mysql> select * from emp where sal > 2500 and (deptno = 10 or deptno = 20);
+-------+-------+-----------+------+------------+---------+------+--------+
| EMPNO | ENAME | JOB       | MGR  | HIREDATE   | SAL     | COMM | DEPTNO |
+-------+-------+-----------+------+------------+---------+------+--------+
|  7566 | JONES | MANAGER   | 7839 | 1981-04-02 | 2975.00 | NULL |     20 |
|  7788 | SCOTT | ANALYST   | 7566 | 1987-04-19 | 3000.00 | NULL |     20 |
|  7839 | KING  | PRESIDENT | NULL | 1981-11-17 | 5000.00 | NULL |     10 |
|  7902 | FORD  | ANALYST   | 7566 | 1981-12-03 | 3000.00 | NULL |     20 |
+-------+-------+-----------+------+------------+---------+------+--------+
4 rows in set (0.00 sec)		
//and和or同时出现,and优先级较高。如果想让or先执行,需要加“小括号”,如果不确定优先级,就加小括号就行了。

in 包含,相当于多个 or (not in 不在这个范围中)

查询工作岗位是MANAGER和SALESMAN的员工?
mysql> select empno,ename,job from emp where job = 'MANAGER' or job = 'SALESMAN';
+-------+--------+----------+
| empno | ename  | job      |
+-------+--------+----------+
|  7499 | ALLEN  | SALESMAN |
|  7521 | WARD   | SALESMAN |
|  7566 | JONES  | MANAGER  |
|  7654 | MARTIN | SALESMAN |
|  7698 | BLAKE  | MANAGER  |
|  7782 | CLARK  | MANAGER  |
|  7844 | TURNER | SALESMAN |
+-------+--------+----------+
7 rows in set (0.00 sec)mysql> select empno,ename,job from emp where job in('MANAGER', 'SALESMAN');
+-------+--------+----------+
| empno | ename  | job      |
+-------+--------+----------+
|  7499 | ALLEN  | SALESMAN |
|  7521 | WARD   | SALESMAN |
|  7566 | JONES  | MANAGER  |
|  7654 | MARTIN | SALESMAN |
|  7698 | BLAKE  | MANAGER  |
|  7782 | CLARK  | MANAGER  |
|  7844 | TURNER | SALESMAN |
+-------+--------+----------+
7 rows in set (0.00 sec)
//注意:in不是一个区间。in后面跟的是具体的值。mysql> select ename,sal from emp where sal = 800 or sal = 5000;
+-------+---------+
| ename | sal     |
+-------+---------+
| SMITH |  800.00 |
| KING  | 5000.00 |
+-------+---------+
2 rows in set (0.00 sec)mysql> select ename,sal from emp where sal in(800, 5000);
+-------+---------+
| ename | sal     |
+-------+---------+
| SMITH |  800.00 |
| KING  | 5000.00 |
+-------+---------+
2 rows in set (0.00 sec)//这个不是表示800到5000都找出来。表示800 和5000// not in 表示不在这几个值当中的数据。mysql> select ename,sal from emp where sal not in(800, 5000, 3000);
+--------+---------+
| ename  | sal     |
+--------+---------+
| ALLEN  | 1600.00 |
| WARD   | 1250.00 |
| JONES  | 2975.00 |
| MARTIN | 1250.00 |
| BLAKE  | 2850.00 |
| CLARK  | 2450.00 |
| TURNER | 1500.00 |
| ADAMS  | 1100.00 |
| JAMES  |  950.00 |
| MILLER | 1300.00 |
+--------+---------+
10 rows in set (0.00 sec)

like
称为模糊查询,支持%或下划线匹配
%匹配任意多个字符
下划线:任意一个字符。
(%是一个特殊的符号,_ 也是一个特殊符号)

找出名字中含有O的?
mysql>  select ename from emp where ename like '%O%';
+-------+
| ename |
+-------+
| JONES |
| SCOTT |
| FORD  |
+-------+
3 rows in set (0.00 sec)
找出名字以T结尾的?
mysql> select ename from emp where ename like '%T';
+-------+
| ename |
+-------+
| SCOTT |
+-------+
1 row in set (0.00 sec)
找出名字以K开始的?
mysql> select ename from emp where ename like 'K%';
+-------+
| ename |
+-------+
| KING  |
+-------+
1 row in set (0.00 sec)
找出第二个字每是A的?
mysql> select ename from emp where ename like '_A%';
+--------+
| ename  |
+--------+
| WARD   |
| MARTIN |
| JAMES  |
+--------+
3 rows in set (0.00 sec)
找出第三个字母是R的?
mysql> select ename from emp where ename like '__R%';
+--------+
| ename  |
+--------+
| WARD   |
| MARTIN |
| TURNER |
| FORD   |
+--------+
4 rows in set (0.00 sec)注意:如果查找的内容中本来就含有下划线,需要使用“\”转义符,如:
mysql> select name from t_student where name like '%\_%';// \转义字符。
  select ename from emp where ename like '%O%';
+-------+
| ename |
+-------+
| JONES |
| SCOTT |
| FORD  |
+-------+
3 rows in set (0.00 sec)
找出名字以T结尾的?
mysql> select ename from emp where ename like '%T';
+-------+
| ename |
+-------+
| SCOTT |
+-------+
1 row in set (0.00 sec)
找出名字以K开始的?
mysql> select ename from emp where ename like 'K%';
+-------+
| ename |
+-------+
| KING  |
+-------+
1 row in set (0.00 sec)
找出第二个字每是A的?
mysql> select ename from emp where ename like '_A%';
+--------+
| ename  |
+--------+
| WARD   |
| MARTIN |
| JAMES  |
+--------+
3 rows in set (0.00 sec)
找出第三个字母是R的?
mysql> select ename from emp where ename like '__R%';
+--------+
| ename  |
+--------+
| WARD   |
| MARTIN |
| TURNER |
| FORD   |
+--------+
4 rows in set (0.00 sec)注意:如果查找的内容中本来就含有下划线,需要使用“\”转义符,如:
mysql> select name from t_student where name like '%\_%';// \转义字符。

http://chatgpt.dhexx.cn/article/SckpiKTB.shtml

相关文章

网络地图服务种类、防火墙出站入站规则、ArcGIS Enterprise部署

网络地图服务&#xff08;地理信息服务&#xff09;种类 网络地图服务种类多种多样&#xff1a; 1、按照厂商分&#xff1a;0SM地图服务、天地图地图服务、谷歌地图服务、百度地图服务、高德地图服务。。。。。。。 2、按照OGC标准分&#xff1a;WMS服务、WMTS服务、WFS服务…

JDBC PreparedStatement,工具类封装,悲观锁【JDBC实例 --- 模拟用户登录】

JDBC学习 内容导航 注册驱动的第二种方式执行静态代码块的几种情况 使用配置文件来存放信息模拟用户登录在sql语句中如何使用动态的变量 SQL注入【随意的用户名&#xff0c;考究的密码登录成功】解决sql注入问题PreparedStatement的使用使用Statement场景 使用PreparedStatemen…

大数据-玩转数据-MaxCompute SQL

一、说明 本文为您介绍MaxCompute SQL常见使用场景&#xff0c;让您快速掌握SQL的写法。 二、准备数据集 本文以emp表和dept表为示例数据集。您可以自行在MaxCompute项目上创建表并上传数据。数据导入请参见概述。 下载emp表数据文件和dept表数据文件。 创建emp表。 CREATE…

全网首发!如何停止莫名其妙的软件下载?终于被我找到了!

文章目录 导读问题发现问题定位问题解决&#xff08;粗暴&#xff09;下面是2021.4.2更新内容同归于尽解决法丢弃尊严解决法 导读 如果是金山忠实用户&#xff0c;似乎并不怎么发现这个问题。但是作为一个常年裸奔以最大化电脑效率的穷小子&#xff0c;经常看到自己好好的Chro…

CSS基础学习——盒子模型

目录 1. 盒子模型1.1 看透网页布局的本质1.2 盒子模型&#xff08;Box Model&#xff09;组成1.3 边框&#xff08;border)1.3.1 边框简写1.3.2 边框分开写法1.3.3 课堂练习 1.4 表格的细线边框1.5 边框会影响盒子实际大小1.6 内边距&#xff08;padding&#xff09;1.6.1 padd…

HTML基础课程笔记

01-基础班内容 学习目标&#xff1a; 基础班主要学习PC端网站布局 最终网站&#xff1a;品优购静态网站 目的&#xff1a;精通网页布局&#xff0c;也是我们前端人员的必备技能。为后面学习JavaScript打下坚实基础。 学习路线&#xff1a; HTML5基础&#xff1a;课时比例为2…

用了 Intellij idea 这些插件和高效配置后,写代码快得飞起来,再也不用 996 加班了

0. 背景 作为一个 Java 程序员&#xff0c;我相信&#xff0c;绝大多数同学日常都是用 idea 来写代码。 Idea 作为宇宙第一 Java IDE&#xff0c;提供了丰富、强大的功能&#xff0c;可以让你写 Java 代码快得飞起来。 遗憾的是&#xff0c;很多人都不知道怎么开启 idea 隐藏…

java基础学习笔记

大纲 Java 初始JavaSE java异常机制 java基础语法 字符串和可变字符串 程序流控制 包装类揭秘 Java基础入门阶段 函数和数组 java日期类 面向对象思想 集合的体系分析和使用 类的继承 java文件处理 接口和多态 IO流详细分析 内部类和Object根类 多线程 e…

根据经纬度调用Google地图显示对应位置

思路&#xff1a;将经纬度值作为参数传递给latlon.htm文件里对应的参数值。例子如下&#xff1a; 解法一&#xff1a; 1、共有两页面&#xff08;Default.aspx和latlon.htm&#xff09; 2、工程&#xff1a; 3、Default页面代码&#xff1a; <% Page Language"C#"…

Asp.Net MVC(控制器、控制器动作和动作结果) - Part.3

来自 张子阳&#xff1a;http://www.cnblogs.com/JimmyZhang/archive/2009/01/03/1367644.html 这篇教程探索了ASP.NET MVC控制器&#xff08;controller&#xff09;、控制器动作&#xff08;controller action&#xff09;和动作结果&#xff08;action results&#xff09;…

1-IDEA从设置到插件你只用看这一篇

IDEA简介 1.1 为什么要取消工作空间&#xff1f; 答&#xff1a; 简单来说&#xff0c;IDEA不需要设置工作空间&#xff0c;因为每一个Project都具备一个工作空间&#xff01;&#xff01;对于每一个IDEA的项目工程&#xff08;Project&#xff09;而言&#xff0c;它的每一 个…

CSS学习135~164(盒子模型+PS基本操作+案例)

1 盒子模型 1.1 看透网页布局的本质 网页布局过程: 先准备好相关的网页元素,网页元素基本都是盒子Box。利用CSS设置好盒子样式,然后摆放到相应位置。往盒子里面装内容。 网页布局的核心本质&#xff1a;就是利用CSS摆盒子。 1.2 盒子模型&#xff08;Box Model&#xff09…

网址导航7654推广

hao123网址导航 有效结算规则 1、一个真实的用户&#xff0c;通过浏览器访问主页&#xff0c;且有后续点击行为则为有效&#xff1b; 2、每个用户每天访问多次只记一次有效&#xff1b; 3、网吧和局域网环境下推广无效&#xff1b; 专属推广&#xff1a;http://hao123.7654.co…

U大师安装系统后,Chrome主页被7654导航劫持解决方法

用U大师重装系统后&#xff0c;觉得全新的系统是完美的&#xff0c;可是打开Chrome后&#xff0c;总是打开7654导航主页&#xff0c;觉得不完美了&#xff0c;后来就找到一个可以解决这个问题的办法&#xff0c;步骤如下&#xff1a; 1、打开浏览器 2、把7654导航主页关了&…

删除可恶的7654.com,7654导航篡改首页恢复,如何解决浏览器被7654劫持

删除可恶的7654.com,7654导航篡改首页恢复,如何解决浏览器被7654劫持,7654导航 怎么删除 删除可恶的7654.com&#xff0c;浪费了一上午才把它搞定了&#xff0c;需要三步&#xff0c;彻底清除,有疑问请加我微信gene-se 1.拷贝下面的文件&#xff0c;保存为bat文件&#xff0c;…

Python —— Numpy详细教程

NumPy - 简介 NumPy 是一个 Python 包。 它代表 “Numeric Python”。 它是一个由多维数组对象和用于处理数组的例程集合组成的库。 Numeric&#xff0c;即 NumPy 的前身&#xff0c;是由 Jim Hugunin 开发的。 也开发了另一个包 Numarray &#xff0c;它拥有一些额外的功能。…

最全的NumPy教程

译者&#xff1a;飞龙 译文&#xff1a;https://www.jianshu.com/p/57e3c0a92f3a 原文&#xff1a;https://www.tutorialspoint.com/numpy/index.htm NumPy - 简介 NumPy 是一个 Python 包。它代表 “Numeric Python”。它是一个由多维数组对象和用于处理数组的例程集合组成的库…

numpy教程:数组操作

http://blog.csdn.net/pipisorry/article/details/39496831 Array manipulation routines numpy数组基本操作&#xff0c;包括copy, shape, 转换&#xff08;类型转换&#xff09;, type, 重塑等等。这些操作应该都可以使用numpy.fun(array)或者array.fun()来调用。 Basic o…

numpy 学习

# numpy 学习 1.了解numpy 特性 2.掌握numpy的使用方法 numpy 官网地址 https://numpy.org/ NumPy简介 NumPy&#xff08;NumericalPython&#xff09;是Python数据分析必不可少的第三方库&#xff0c;NumPy的出现一定程度上解决了Python运算性能不佳的问题&#xff0c;同时…

numpy学习

1.Numpy的核心array对象以及创建array的方法 Numpy的核心数据结构&#xff0c;就叫做array就是数组&#xff0c;array对象可以是一维数组&#xff0c;也可以是多维数组&#xff1b;Python的List也可以实现相同的功能&#xff0c;但是array比List的优点在于性能好、包含数组元数…