MySQL day2

本文详细介绍了SQL的四个主要类别:DQL(数据查询语言)、DML(数据操作语言)、DDL(数据定义语言)和TCL(事务控制语言),以及如何使用它们进行数据导入、查看表结构、查询、条件筛选和排序。
摘要由CSDN通过智能技术生成
5.关于SQL的分类:

SQL 语句有很多,最好进行分门别类,这样更容易记忆。

        分别为:

                DQL

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

                select.......

                DML:

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

i                nsert 增 delete 删 update 改

                这个主要是操作表中的数据data。

                DDL

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

                DDL主要操作的是表的结构。不是表中的数据。

                create 新建 drop 删除 alter 修改

                这个增删改和DML不同,这个主要是对表结构进行操作

                TCL

                事务控制语言。

                包括:事务提交:commit; 事务回滚:rollback;

                DCL

                数据控制语言。如授权 grant、撤销权限 revoke.....

6.导入提前准备好的数据:

        1. 怎么将sql文件中的数据导入呢

mysql> source +文件的绝对路径 注意:路径中不要有中文!!

        2. 怎么查看表中的数据呢

mysql> select * from 表名;//统一执行这个SQL语句.

7.不看表中的数据只看表的结构的命令:

                desc 表名;

8. 简单查询语句DQL
  1. 查询一个字段?

    1. select 字段名 from 表名;

    2. 注意:

      1. select和from都是关键字.

      2. 字段名和表名都是标识符.

      3. SQL语句是不区分大小写的.

  2. 查询多个字段:

    1. 使用逗号隔开:select 字段1,字段2 from 表名;

  1. 查询所有字段:

    1. 可以把每个字段都写上:select a,b ,c,d....from 表名

    2. 可以使用:select * from 表名 不支持:效率低,可读性差.

  2. 如何给查询到字段起别名?:

    1. 使用as 关键字起别名

      select 字段1 as 别名 from 表名

    2. 将as省略用空格代替也是可以的

      select 字段1 别名 from 表名

    3. 起别名里面有空格怎么办?

      将该别名用单引号括起来.

    4. 别名是中文,用单引号括起来

    5. 字段可以使用数学表达式!

9.条件查询:
  1. 什么是条件查询:不是将表中所有数据都查出来。而是将符合条件的查询出来。

  2. 语法格式:
        ``select
          ``字段1,字段2,字段3....
        ``from 
          ``表名
        ``where
          ``条件;
        eg: select ename,empno from emp where sal<1500;
        eg:  select ename,empno from emp where sal<1500 and sal>700 ;
        eg:  select ename from emp where sal between 1000 and 1990;要注意 第一个值要比第二个值小!否则查不到任何数据!between and 是左闭右闭区间 包=包括了两边的值!
        eg:  select ename,sal,comm from emp where comm is null;
        eg:select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where job='manager'
    and sal>2500;
        eg: select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where job='manager'
     or job='salesman';or相当于”和“
        eg: select ename,sal from emp where sal in (800,9999);
        注意:in不是一个区间。in后面跟的是具体的值。找出800和9999的对应数据!
  3. 都有哪些条件?

    1. 等于=、不等于 <>或者!=、大于>、小于<、大于等于>=、小于等于<=

    2. between ....and.... 两个值之间 ,等同于>=and <= 是否为null: is null or is not null

    注意:数据库中的null不能用等号衡量!

    3. and 并且 or 或者

    注意:当and和or要同时使用时,要注意优先级,and的优先级要高于or 如果要先执行or部分语句,像将其用括号括起来!优先级不确定的时候可以让你想先执行的语句用小括号括起来即可。

    4. in 包含,相当于多个or(not in表示不在这个范围内)

    5. not 表示取反,主要在is 或 in中

    6. like :称为模糊查询,支持%或下划线匹配

    %匹配任意多个字符

        下划线:任意一个字符。(%是一个特殊的符号,_也是一个特殊的符号,查找名字中的这些特殊字符时,要加上转移字符 \ )

        找出名字以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%';
10. 排序
查询所有员工薪资,排序?
  ``select 
    ``ename,sal
  ``from
    ``emp
  ``order by
    ``sal; // 默认是升序!!!
怎么降序? 
  ``指定降序:
  ``select 
    ``ename,sal
  ``from
    ``emp
  ``order by
    ``sal desc;
    
指定升序?
    select 
        ename,sal
    from
        emp
    order by
        sal asc;
 查询员工名字和薪资,要求按照薪资升序,如果薪资一样的话,再按照名字升序排列。
    select 
        ename,sal
    from
        emp
    order by
        sal asc, ename asc; // sal在前,起主导,只有sal相等的时候,才会考虑启用ename排序
 找出工资在1250到3000之间的员工信息,要求按照薪资降序排列。
  select ename,sal from emp where sal>=1250 and sal<=3000 order by sal desc;
        以上语句的执行顺序必须掌握:
            第一步:from
            第二步:where
            第三步:select
            第四步:order by(排序总是在最后执行!)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值