Part1 mysql基础学习(一)

一,安装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的常见命令 

    1.查看当前所有的数据库: 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,否则返回原值)


        case语句 处理多分支
            情况1:处理等值判断
            情况2:处理条件判断
        
        

        
    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 分组的字段

        
         
        
        
        

    特点:
            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 排序的字段或表达式】
        
        

 

 

2,自连接:

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

        eg2:         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语句,称为子查询或          内查询在外面的查询语句,称为主查询或外查询
        

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


九,分页查询

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

 

十,联合查询

引入:
    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代表不去重

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值