一,安装mysql

MySQL :: Download MySQL Installer

二,配置环境

path下添加自己安装路径 H:\installback\mysql\MySQL Server 5.7\bin

三,基础命令

启动服务:net start mysql
关闭服务:net stop mysql
连接数据库:mysql -h localhost -P 3306 -u root -p
                      回车输入密码即可。

四,MySQL的常见命令 

show databases;
    2.打开指定的库: use 库名
    3.查看当前库的所有表  show tables;
    4.查看其它库的所有表  show tables from 库名;
    5.创建表   create table 表名(
                                        列名 列类型,
                                        。。。
                                    );
    6.查看表结构   desc 表名;
    7.查看服务器的版本
            方式一:登录到mysql服务端
                    select version();
            方式二:没有登录到mysql服务端
                    mysql --version
                    或
                    mysql --V

五,规范

1.不区分大小写,但建议关键字大写,表名、列名小写
2.每条命令最好用分号结尾
3.每条命令根据需要,可以进行缩进 或换行
4.注释
        单行注释:#注释文字
        单行注释:-- 注释文字
        多行注释:/* 注释文字  */

六 SQL的语言分类

DQL(Data Query Language):数据查询语言
        select 
DML(Data Manipulate Language):数据操作语言
        insert 、update、delete
DDL(Data Define Languge):数据定义语言
        create、drop、alter
TCL(Transaction Control Language):事务控制语言
        commit、rollback

七,DQL语言的学习

1,基础查询:select * from table

            去重:select DISTINCT 字段 from table

            查非:slect * from table where 字段 <> '值' 

2,条件查询:select (字段|表达式|常量值|函数) from table where 条件

3,常见条件表达式,逻辑表达式,逻辑运算符,模糊查询:

        条件表达式示例:salary>10000
        条件运算符: > < >= <= = != <>

逻辑表达式示例:salary>10000 && salary<20000

                                select * ,salary*12*(1+ifnull(commission_pct,0)) 年薪 from employees order                                         by 年薪 desc.

逻辑运算符:

        and(&&):两个条件如果同时成立,结果为true,否则为false
        or(||):两个条件只要有一个成立,结果为true,否则为false
        not(!):如果条件成立,则not后为false,否则为true
        between 100 and 200

模糊查询示例:last_name like 'a%'

        统配符:%任意多个字符,_任意单个字符

4,排序: order by 字段(asc(升) | desc(降))

5,常见函数

          一、单行函数

   1、字符函数
        concat拼接(select ('a','b','c') as 结果)null和任何数值拼接都为null 》  ifnull
        substr截取子串select concat(upper(substr (last_name,1,1))                                 ,'_',lower(substr(lastname,2)) out_put from employees;
        upper转换成大写
        lower转换成小写
        trim去前后指定的空格和字符
        ltrim去左边空格
        rtrim去右边空格select trim('a'  form 'aaabbbaaa' ) as out_put
        replace替换select replace ('abcdefg','ab','DD') as out_put;  => DDcdefg 
        lpad左填充 select lpad('abc',5,'*') as out_put;  =>abc**
        rpad右填充
        instr返回子串第一次出现的索引 select instr('abcde','de') as out_put  => 4
        length 获取字节个数 select length('last_name') 字节长度 ,last_name,salary from                                                         empoyees order by 字节长度 desc
        
    2、数学函数
        round 四舍五入 round(1.56)   => 2        round(1.567,2)  => 1.57
        rand 随机数
        floor向下取整
        ceil向上取整
        mod取余
        truncate截断 truncate(1.69999,1)  =>1.6
    3、日期函数
        now当前系统日期+时间
        curdate当前系统日期
        curtime当前系统时间
        str_to_date 将字符转换成日期 str_to_date('4-3 1992','%c-%d %Y')
        date_format将日期转换成字符date_fromat(now(), '%y年%m月%d日') as out_put
    4、流程控制函数
        if 处理双分支 select ifnull(conum,0) from table(如果为null返回0,否则返回原值)

查看mysql实例状态的命令_mysql


        case语句 处理多分支


            情况1:处理等值判断


            情况2:处理条件判断


        

查看mysql实例状态的命令_学习_02

        

        

查看mysql实例状态的命令_字段_03


    5、其他函数


        version版本


        database当前库


        user当前连接用户      




 二、分组函数

sum 求和
        max 最大值
        min 最小值
        avg 平均值
        count 计数
    
        特点:
        1、以上五个分组函数都忽略null值,除了count(*)
        2、sum和avg一般用于处理数值型
            max、min、count可以处理任何数据类型
        3、都可以搭配distinct使用,用于统计去重后的结果
        4、count的参数可以支持:
            字段、*、常量值,一般放1
    
           建议使用 count(*)

六 ,分组查询

    语法:

            select 查询的字段,分组函数
            from 表
            group by 分组的字段

        

查看mysql实例状态的命令_mysql_04


         

查看mysql实例状态的命令_字段_05


        

查看mysql实例状态的命令_mysql_06


        

查看mysql实例状态的命令_查看mysql实例状态的命令_07


        

查看mysql实例状态的命令_字段_08

    特点:
            1、可以按单个字段分组
            2、和分组函数一同查询的字段最好是分组后的字段
            3、分组筛选
                                      针对的表                    位置                            关键字
            分组前筛选:    原始表                        group by的前面          where
            分组后筛选:    分组后的结果集         group by的后面           having
    
            4、可以按多个字段分组,字段之间用逗号隔开
            5、可以支持排序
            6、having后可以支持别名

七,多表查询

1,多表:

      select 字段,...from 表1

            【inner|left outer|right outer|cross】join 表2 on  连接条件

            【inner|left outer|right outer|cross】join 表3 on  连接条件

            【where 筛选条件】

            【group by 分组字段】

            【having 分组后的筛选条件】

            【order by 排序的字段或表达式】

        

查看mysql实例状态的命令_字段_09


        

查看mysql实例状态的命令_字段_10

 

查看mysql实例状态的命令_字段_11

 

2,自连接:

SELECT e.last_name,m.last_name
                             FROM employees e
                             JOIN employees m ON e.`manager_id`=m.`employee_id`; SELECT e.last_name,m.last_name
                             FROM employees e,employees m 
                             WHERE e.`manager_id`=m.`employee_id`;

        排序:        select * from table order by a desc,b asc(先按照a排,再按照b排)

八,子查询:

        一条查询语句中又嵌套了另一条完整的select语句,其中被嵌套的select语句,称为子查询或          内查询在外面的查询语句,称为主查询或外查询

        

查看mysql实例状态的命令_字段_12

 

查看mysql实例状态的命令_数据库_13


select dep_id from deps where loc_id in(1400,1700)

查看mysql实例状态的命令_查看mysql实例状态的命令_14


查看mysql实例状态的命令_学习_15


查看mysql实例状态的命令_查看mysql实例状态的命令_16

九,分页查询

        公式:select * from  表 limit (page-1)*sizePerPage,sizePerPage

        

查看mysql实例状态的命令_数据库_17

 

十,联合查询

引入:
    union 联合、合并

语法:

    select 字段|常量|表达式|函数 【from 表】 【where 条件】 union 【all】
    select 字段|常量|表达式|函数 【from 表】 【where 条件】 union 【all】
    select 字段|常量|表达式|函数 【from 表】 【where 条件】 union  【all】
    .....
    select 字段|常量|表达式|函数 【from 表】 【where 条件】

特点:

    1、多条查询语句的查询的列数必须是一致的

    2、多条查询语句的查询的列的类型几乎相同

    3、union代表去重,union all代表不去重

查看mysql实例状态的命令_数据库_18