mysql数据库入门学习

来源:互联网 发布:苹果cms采集规则教程 编辑:程序博客网 时间:2024/06/03 17:40

一、数据库概述

   数据库(DataBaseDB):指长期保存在计算机的存储设备上,按照一定规则组织起来,可以被各种用户或应用共享,可以存储、维护和管理数据的集合。

     MySQL是一种开放的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。其因速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。

二、操作数据库

    创建数据库Create database study character set gbk;

    查看当前数据库服务器中的所有数据库:Show databases;

 查看前面创建的study 数据库的定义信息:Show  create  database study;

    修改数据库study 的字符集修改为utf8:alter database study character set utf8;

 删除前面创建的study数据库:Drop database study 

 查看当前使用的数据库:Select database();

    切换数据库:Use mydb

三、操作数据库表(以study表为例)

  1.创建数据库表

   语法:

      create table 表名(

         字段1 字段类型,

         字段2 字段类型,

          ...

         字段n 字段类型

      );

 常用数据类型:

    int:整型  double:浮点型,例如double(5,2)表示最多5位,其中必须有2位小数,即最大值为999.99

    char:固定长度字符串类型;varchar:可变长度字符串类型;text:字符串类型;

    date:日期类型,格式为:yyyy-MM-dd; time:时间类型,格式为:hh:mm:ss

    timestamp:时间戳类型 yyyy-MM-dd hh:mm:ss  会自动赋值 datetime:日期时间类型yyyy-MM-dd hh:mm:ss


     CREATE TABLE student(
                        stuId  INT(12),
                        stuName VARCHAR(12),
                        sex  VARCHAR(12),
                        major  VARCHAR(12)
               );

  2.插入数据:Insert into student(stuId,stuName,sex,major)  value(201701002,"王静","女","应用物理学");

   3.删除数据:delete from student where stuId=201701002;

    4.修改数据:update student set stuName="王晶"where stuId=201701002;

  5.查询数据select * from student where stuId=201701005;

        查询数据语法:SELECT列名FROM表名WHERE --> GROUP BY -->HAVING--> ORDER BY

   WHERE子句中可以使用如下运算符及关键字:

        =!=<><<=>>=BETWEEN…AND;IN(set)IS NULL ANDORNOT

   a.模糊查询:模糊查询需要使用关键字LIKE

           通配符:

                   _ :任意一个字母

                  %:任意0~n个字母

    eg:  select * from student where stuName like"田%"; 查询田姓所有学生

        b:去除重复记录:两行或两行以上记录中系列的上的数据都相同,使用关键字:DISTINCT

          eg:select distinct sex from student;去除查询结果列中的重复项

         注:1. IFNULL(sal,0); 将NULL转为0,以便进行运算    2.  As:给列名添加别名     3. Order  BY  列名  升/降;ASC:升序    DESC:降序   4.limit:用来限定查询结果的起始行,以及总行数(起始行从0开始)。

四、聚合函数:聚合函数是用来做纵向运算的函数

COUNT():统计指定列不为NULL的记录行数;

     eg:select count(sex) from student;   查询性别不为NULL的学生数目

MAX():计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;  

MIN():计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;

SUM():计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0

AVG():计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0

  注:当需要分组查询时需要使用group by 子句,凡和聚合函数同时出现的列名,则一定要写在group by之后。

  havingwhere的区别

   having是在分组后对数据进行过滤where是在分组前对数据进行过滤。如果某行记录没有满足WHERE子句的条件,那么这行记录不会参加分组;而HAVING是对分组后数据的约束。

五、连接查询:

   连接查询就是求出多个表的乘积,但是连接查询会产生笛卡尔积,这样的结果并不是我们想要的。可以通过条件进行过滤。通常要查询的多个表之间都存在关联关系,那么就通过关联关系去除笛卡尔积。

   1.使用主外键关系做为条件来去除无用信息 (连接语句就是内连接,但它不是SQL标准中的查询方式,可以理解为方言)

    eg: select * from a,b where a.column = b.column;

  2.内连接(查询结果必须满足条件)

   eg: select * from a join b on a.column = b.column;

  3.左连接:左连接是以左表为主,右表中满足条件的显示出来,不满足条件的显示NULL

 eg: select * from a left join b on a.column = b.column;

  4.右连接:右连接是以右表为主,左表中满足条件的显示出来,不满足条件的显示NULL

 eg: select * from a right join b on a.column = b.column;

 5.自然连接:自然连接无需你去给出主外键等式,将连接的表中名称和类型完全一致的列作为条件,它会自动找到这一等式。

   eg: select * from a natural join b;

六、子查询:一个select语句中包含另一个完整的select语句

  子查询就是嵌套查询,即SELECT中包含SELECT,如果一条语句中存在两个,或两个以上SELECT,那么就是子查询语句了。

           子查询出现的位置:

                    where后,作为条为被查询的一条件的一部分;

        from后,作表;

  当子查询出现在where后作为条件时,还可以使用如下关键字:any、all

      eg:SELECT * FROM emp WHERE sal > (SELECT sal FROM emp WHERE ename='JONES')

       





 

  

  

  

  

        






        


    



  

  

  


















        

       

     



 

原创粉丝点击