• MySQL基础学习


     

    服务开启与停止

    net start mysql

    net stop mysql

    服务端登录和退出

    mysql (–h lodalhost –P 3306) –u root –p123456

    退出 exit

    或者ctrl+c

    MySQL的常见命令

     1.查看当前所有的数据库

            show databases;

      2.打开指定的库

            use 库名

      3.查看当前库的所有表

            show tables;

       4.查看其它库的所有表

            show tables from 库名;

       5.创建表

            create table 表名(

     

                   列名 列类型,

                   列名 列类型,

                   。。。

            );

    mysql>create table info(

        -> id int,

    -> name varchar(20));

    mysql> insert into info (id,name) values(1,'jack');

    mysql> select * from info;

    mysql> delete from info where id=1;

    mysql> select version();

       6.查看表结构

            desc 表名;

       7.查看当前库 select database();

    查看版本
    方式一:登录到mysql服务端 select version(); 方式二:没有登录到mysql服务端 mysql --version 或 mysql --V

     MySQL的语法规范

            1.不区分大小写,但建议关键字大写,表名、列名小写,不区分单双引号

            2.每条命令最好用分号结尾

            3.每条命令根据需要,可以进行缩进 或换行

            4.注释

                   单行注释:#注释文字

                   单行注释:-- 注释文字

                   多行注释:/* 注释文字  */

    SQL的语言分类

            DQLData Query Language):数据查询语言

                   select

            DML(Data Manipulate Language):数据操作语言

                   insert updatedelete

            DDLData Define Languge):数据定义语言

                   createdropalter

            TCLTransaction Control Language):事务控制语言

                   commitrollback

    DQL语言的学习                 

                   基础查询               

                   条件查询              

                   排序查询                             

                   常见函数                    

                   分组函数                    

                   分组查询                                     

                   连接查询                                    

                   子查询                        

                   分页查询                    

                   union联合查询

    基础查询

            语法:

            SELECT 要查询的东西

            FROM 表名】;

     

            类似于Java :System.out.println(要打印的东西);

            特点:

            ①通过select查询完的结果 ,是一个虚拟的表格,不是真实存在

            ② 要查询的东西 可以有多个可以是常量值、可以是表达式、可以是字段、可以是函数

    着重号可以区分关键字和字段·············

    别名可以便于理解;查询字段重名时可以区分

    起别名  as   select 100%98 as 结果;

    方式二: select last_name ln;用空格来起别名

    别名如果两个单词可以用双引号引起来或者单引号

    去重mysql> select distinct department_id from employees;

    +号的作用,运算符

    员工名和姓连接成一个字段

    select null+10;  一方为null,结果为null

    拼接函数concat()

    mysql> select concat(last_name,' ',first_name) as name from employees;

    IFNULL(字段,如果为空返回值)

    mysql> select ifnull(commission_pct,0) as rate,commission_pct from employees;  空的话返回0,否则返回原值

     

    进阶2:条件查询
            条件查询:根据条件过滤原始表的数据,查询到想要的数据
            语法:
            select 
                   要查询的字段|表达式|常量值|函数
            from 
                   表
            where 
                   条件 ;
     
            分类:
            一、条件表达式
                   示例:salary>10000
                   条件运算符:
                   > < >= <= = != <>
            
            二、逻辑表达式
            示例:salary>10000 && salary<20000
            
            逻辑运算符:
     
                   and(&&):两个条件如果同时成立,结果为true,否则为false
                   or(||):两个条件只要有一个成立,结果为true,否则为false
                   not(!):如果条件成立,则not后为false,否则为true
    mysql> select  last_name, department_id from employees where department_id!=90;
    mysql> select  last_name, salary,commission_pct from employees where salary>=10000 and salary<=20000;
    mysql> select  last_name, salary,commission_pct from employees where not(salary>=10000 and salary<=20000);
     

        三、模糊查询

        示例:last_name like 'a%'

    between and    ,    in   ,    is null

    mysql> select * from employees where last_name like '%a%';

    一般和通配符一起用 %任意多个字符包含0个,_下划线表示一个字符

    mysql> select * from employees where last_name like '__n_a%';,

    mysql> select * from employees where last_name like '__\__%';转义,第二个字符为_

    mysql> select * from employees where last_name like '__^__%' escape ‘^’;指定转义符号

    between and 必须左小右大

     

    in关系词

    mysql> select last_name,job_id from employees where job_id in ('IT_PROT','AD_VP','AD_PRES0');

    in 列表要一致或者兼容,不能带通配符的

     is null  判断一个字段是否为空

    is not  null

     <=>安全等于,可以判断普通的等于也可以判断是否为null

    缺点是可读性差

     

    算年薪,用到了奖金率

     

    mysql> select last_name,department_id,salary*12*(1+ifnull(commission_pct,0)) from employees;

     进阶3:排序查询      

           

            语法:

            select

                   要查询的东西

            from

                  

            where

                   条件

            order by 排序的字段|表达式|函数|别名 【asc|desc

    order by字句一般放在查询语句最后面,limit字句除外

    mysql> select * from employees order by salary desc;

    mysql> select * from employees where department_id>=90 order by salary desc;

    mysql>select last_name,department_id,salary*12*(1+ifnull(commission_pct,0)) S from employees order by S desc;

    mysql> select length(last_name) len,last_name,salary from employees order by len desc;

    先按工资排序,再按员工编号排序

    mysql> select * from employees order by salary desc,employee_id asc;

    进阶3:排序查询      

           

            语法:

            select

                   要查询的东西

            from

                  

            where

                   条件

            order by 排序的字段|表达式|函数|别名 【asc|desc

    order by字句一般放在查询语句最后面,limit字句除外

    mysql> select * from employees order by salary desc;

    mysql> select * from employees where department_id>=90 order by salary desc;

    mysql>select last_name,department_id,salary*12*(1+ifnull(commission_pct,0)) S from employees order by S desc;

    mysql> select length(last_name) len,last_name,salary from employees order by len desc;

    先按工资排序,再按员工编号排序

    mysql> select * from employees order by salary desc,employee_id asc;

  • 相关阅读:
    k8s 节点的 NodeAffinity 使用
    template 与 host , item trigger的关系
    mysql 性能优化思路
    nginx 配sorry page
    修改tomcat JVM 大小 jdk--目录修改
    (转)MySQL慢查询分析优化 + MySQL调优
    注册表操作 Microsoft.Win32.Registry与RegistryKey类
    C#(99):WCF之.NET Remoting通讯
    CallContext线程数据缓存-调用上下文
    C#(99):JSON与对象的序列化与反序列化
  • 原文地址:https://www.cnblogs.com/BetterThanEver_Victor/p/8734665.html
Copyright © 2020-2023  润新知