0
点赞
收藏
分享

微信扫一扫

从零自学MySQL(一)

数据库:

英文单词:DataBase,简称DB。

数据库管理系统:

DataBaseManagement,简称DBMS。

本地登入:

>mysql -uroot -p123456(显示编写密码)

>mysql -uroot -p(无密码登入)

1、sql常用命令:

1.1 查看sql中有哪些数据库:

  >show databases;

        从零自学MySQL(一)_数据

1.2 选择数据库:

        >use test;

       从零自学MySQL(一)_数据库_02

1.3 创建数据库:

>create database bjpowernode;

1.4 查看当前使用的是哪个数据库:

>select database();

2、sql语句的分类

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

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

             insert增;delete删;update改;主要是操作表中的data

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

             create新建;drop删除;alter修改;主要是对表的结构进行操作

TCL:事务控制语言(事务提交commit;事务回滚rollback)

DCL:数据控制语言(例如:授权grant、撤销权限revoke.......)

3、导入提前准备好的数据:

3.1 >source 路径(路径中不要有中文)

          dept部门表;emp员工表;salgrade工资等级表

3.2 查看表中的数据:

          select * from 表名;//统一执行这个sql语句。

           >select * from emp;//从emp表中查询所有数据。

        从零自学MySQL(一)_数据_03

        3.3 不看表中的数据,只看结构:desc 表名;

        >desc dept;

        从零自学MySQL(一)_字段_04

4、简单查询

4.1 查询一个字段:select 字段名 from 表名;

查询部门名字:

>select dname from dept;

从零自学MySQL(一)_字段_05

4.2 查询两个字段或多个字段:(是用逗号隔开)

查询部门编号和部门名:

>select deptno,dname from dept;

从零自学MySQL(一)_数据库_06

4.3查询所有字段:

>select * from dept;(不建议,效率低,可读性差)

      从零自学MySQL(一)_字段_07

4.4 给查询的列起别名:(as可以省略)

>select deptno,dname as deptname from dept;

从零自学MySQL(一)_数据_08

        要是起的别名有空格或是中文,用‘ ’括上。

>select deptno,dname as '名称' from dept;

从零自学MySQL(一)_字段_09

4.5 计算员工年薪:(sal*12)

>select ename,sal*12 from emp;              >select ename,sal*12 as '年薪' from emp;

从零自学MySQL(一)_字段_10                            从零自学MySQL(一)_数据_11

5 条件查询

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

语句格式:

select

字段1,字段2,字段......

from

表名

where

条件;

5.1 = 等于

查询薪资等于800的员工姓名和编号?

> select empno,ename from emp where sal = 800;

从零自学MySQL(一)_数据_12

查询SMITH的编号和薪资?

  >select empno,sal from emp where ename = 'SMITH'; //字符串使用单引号

从零自学MySQL(一)_字段_13

5.2 <>或!= 不等于

查询薪资不等于800的员工姓名和编号?

> select empno,ename from emp where sal != 800;

> select empno,ename from emp where sal <> 800; // 小于号和大于号组成的不等号

从零自学MySQL(一)_数据库_14


5.3  < 小于;>大于;>=;<=

查询薪资小于2000的员工姓名和编号?

> select empno,ename,sal from emp where sal < 2000;

从零自学MySQL(一)_字段_15

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

查询薪资在2450和3000之间的员工信息?包括2450和3000

 第一种方式:>= and <= (and是并且的意思。)

  select empno,ename,sal from emp where sal >= 2450 and sal <= 3000;

第二种方式:between...and...

select                                               从零自学MySQL(一)_数据库_16

   empno,ename,sal      

from  

   emp  ​​

where  ​​

   sal between 2450 and 3000;                             注意:

                                                                           使用between and的时候,必须遵循左小右大。

                                                                           between and是闭区间,包括两端的值。

5.5 查询哪些员工的津贴/补助为null?


> select empno,ename,sal,comm from emp where comm is null;

从零自学MySQL(一)_字段_17

注意:在数据库当中null不能使用等号进行衡量。需要使用is null

 因为数据库中的null代表什么也没有,它不是一个值,所以不能使用

 等号衡量。

5.6  and 并且

查询工作岗位是MANAGER并且工资大于2500的员工信息?

select  

  empno,ename,job,sal  

from  

  emp  

where  

  job = 'MANAGER' and sal > 2500;

从零自学MySQL(一)_数据库_18

或者 or


查询工作岗位是MANAGER和SALESMAN的员工?

 select  

  empno,ename,job

 from

  emp

 where  

  job = 'MANAGER' or job = 'SALESMAN';

从零自学MySQL(一)_数据_19

5.7 and和or同时出现

查询工资大于2500,并且部门编号为10或20部门的员工?


  and优先级比or高。

  以上语句会先执行and,然后执行or。 

 select  

    *

 from

     emp

 where

     sal > 2500 and (deptno = 10 or deptno = 20);


 and和or同时出现,and优先级较高。如果想让or先执行,需要加“小括号”

 以后在开发中,如果不确定优先级,就加小括号就行了。


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

 查询工作岗位是MANAGER和SALESMAN的员工?

  select empno,ename,job from emp where job = 'MANAGER' or job = 'SALESMAN';

  select empno,ename,job from emp where job in('MANAGER', 'SALESMAN');

​​​​​​从零自学MySQL(一)_数据库_20​​​

5.8 like  

 称为模糊查询,支持%或下划线匹配, %匹配任意多个字符, 下划线:任意一个字符。

 (%是一个特殊的符号,_ 也是一个特殊符号)

找出名字中含有M的?

> select ename from emp where ename like '%M%';

从零自学MySQL(一)_数据库_21


 找出名字以T结尾的?

  select ename from emp where ename like '%T';

 找出名字以K开始的?

  select ename from emp where ename like 'K%';

 找出第二个字每是A的?

  select ename from emp where ename like '_A%';

 找出第三个字母是R的?

  select ename from emp where ename like '__R%';

6、排序

6.1查询所有员工薪资,排序?  order by

select  

   ename,sal

from

   emp

order by

   sal; // 默认是升序!!

从零自学MySQL(一)_数据库_22

6.2 降序:

指定降序/升序:desc/asc

select  

 ename,sal

from

 emp

order by

 sal desc;

6.3 可以两个字段排序吗?或者说按照多个字段排序?

查询员工名字和薪资,要求按照薪资升序,如果薪资一样的话,再按照名字升序排列。

select  

   ename,sal

from

   emp

order by

   sal asc, ename asc; // sal在前,起主导,只有sal相等的时候,才会考虑启用ename排序。

从零自学MySQL(一)_数据库_23

举报

相关推荐

0 条评论