MySQL简单查询

起别名

目的:为了简化列名称单词过长 使用AS 或者使用空格

例如: SELECT emptName AS ename FROM table;

            SELECT emptName  ename  FROM  table;

      查询全表:

            SELECT * FROM table;

      查询特定的列:

             SELECT column FROM table;

      查询,除去重复记录  DISTINCT:

           SELECT DISTINCT * FROM table;

     条件查询 WHERE   :

            WHERE子句后跟条件

            运算符:&& (AND),|| (OR),! (NOT),BETWEEN...AND,IN,LIKE,IS NULL,IS NOT NULL,

                            >,<, <=, >=, !=, <>

      排序查询 ORDER BY:

             SELECT * FROM table ORDER BY id DESC   ; #降序 descendant

             SELECT * FROM table ORDER BY id ASC; #升序 ascendant

            注意:字符串排序按照Unicode来排序;如果排序规则默认为空,默认升序排列ASC.

       模糊条件查询 LIKE:

            %:表示任意多个字符     _:表示任意单个字符

            例:查询姓名中包含 e 的员工有哪些

            SELECT * FROM table WHERE name LIKE '%e%'

            查询姓名第二个字母是 e 的员工有哪些

            SELECT * FROM table WHERE name LIKE '_e%'

        分页查询 LIMIT:

            查询结果集一页展示不完可以用分页展示

            要有两个已知条件 :分页大小(size),页码(page);

            start 每页开始查询的值, start=(page-1)*size;

            格式:   SELECT * FROM table LIMIT  start,size;

            例:     SELECT * FROM table LIMIT 0,10; #查询第一页的十条记录

            注意:start和size必须是数值型,否则会报错

       分组查询 GROUP BY:

           按性别分组,求数序平均分:SELECT sex ,AVG(math) FROM table GROUP BYsex;

        聚合函数   

            将一列数据作为一个整体进行纵向计算

            count :个数 ;max:最大值 ;min:最小值 ;sum: 总和;avg:平均值。

            聚合函数排除null 1.IFNULL函数 2.选择不为空的列计算 

            例:1.SELECT count (IFNULL(math)) FROM table;

                    2.count(id)

        查询的时候执行运算

            练习:查询出所有员工的姓名及其年薪

            SELECT ename,salary*12 FROM emp;

        子查询

            加上条件:两表之间的关联。

            例:查询研发部的员工有哪些。(部门表:dept;员工表:emp)

                1.查询研发部部门的编号  2.查询该编号下的所有员工

                SELECT * FROM emp WHERE deptId=(SELECT dId FROM dept WHERE             dName='研发部');

                以上查询无法查找到没有部门的员工,无法查找到没有员工的部门

                解决:1.内连接 2.外连接  3.全连接(MySQL不支持)

                1.

                SELECT eName,dName  FROM emp INNER JOINdept ON deptId=dId;

                (返回两个表的交集部分)

                2.

                左外连接

                SELECT eName ,dName FROM emp LEFT (OUTER  可省略 )JOIN DEPT                 ON deptId=dId

                左(外)连接,左表的记录将会全部表示出来,而右表只会显示符合搜索条件的记录。                  右表记录不足的地方均为NULL。

                右外连接

                SELECT eName ,dName FROM emp  RIGHT(OUTER  可省略 )JOIN  dept   ON                 deptId=dId;

                与左(外)连接相反

                3.

                FULL JOIN 

                显示左侧右侧所有的记录,(左连接)UNION ALL(右外连接)

                把左连接和右连接的结果联合起来。

                UNION ALL:联合后不合并相同记录;UNION 联合后合并相同记录。

            

          删除数据

              DELETE FROM table WHERE 条件;

              如果不加条件删除表中所有数据。要删除所有数据使用 TRUNCATE TABLE 表名;

              不推荐使用 delete 删除表,因为一条一条删除影响效率。

          删除字段名  :

                alter table 表名 drop 列类型;

   

    修改表信息

    UPDATE table SET colums1= value1,colums2= value2.. WHERE 条件;

     修改字段名  :alter table 表名 modify 字段 列类型;

    添加数据

            INSERT INTO table (columns)VALUSE (, , , , );

            列表和值一一对应

            如果表明后不写列名,默认给所有列添加值     INSERT INTO table VALUSE (, , , , );

            除了数字列其他都要带上引号

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 5.多表查询 多表查询 目的:从多张表获取数据 前提:进行连接的多张表中有共同的列 等连接 通过两个表具有相同意义...
    乔震阅读 1,562评论 0 0
  • 引出 •请思考如下问题? –查询所有员工的每个月工资总和,平均工资? –查询工资最高和最低的工资是多少? –查询公...
    C_cole阅读 7,413评论 0 3
  • mysql数据库中 :database : 文件夹table : 数据表(数据文件) 进入mysqlmysql -...
    赋闲阅读 650评论 0 0
  • ORACLE自学教程 --create tabletestone ( id number, --序号usernam...
    落叶寂聊阅读 1,262评论 0 0
  • 效率不会自动提升 要想明确自己的工作,并做到效率最高,我们必须做好三件事。 首先,决定如何处理,自己的事务和随后需...
    小兔子棉花糖阅读 764评论 0 0

友情链接更多精彩内容