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;

原文地址:https://www.cnblogs.com/BetterThanEver_Victor/p/8734665.html