MYSQL基本知识 01

一、数据库的登录与基本使用

1、当你想要登录你的MYSQL数据库时,你可以在cmd中输入以下语句登录MYSQL

        mysql  -u用户名  -p密码

一般来说,我们都有的用户名是root,密码是123456,(当然你也可以进行修改或者添加数据库)

结果如下:

 

显示上面的窗口也就说明我们登录进了MYSQL数据库,但是它给了提示,直接输入密码可能不安全,那我们可以在-p之后直接回车,然后再输入密码,这样输入的密码都会显示“ * ”,从而保护你滴小隐私。(注意,上面的语句不分大小写)

2、一些必备的基本语句

show databases ;                   显示当前数据库

show table;                             显示当前数据库的表

create database  A;                创建一个叫A的数据库

use  A  ;                                  切换到数据库A

select *from a ;                      显示a表的所有内容

desc  a ;                                显示表a的结构 

source  path ;                        导入path路径的表到数据库中,或者批量执行path路径的语句

select version();               查看数据库版本号

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

以下是运行结果们:

        

 

 

 

         需要注意的是,MYSQL语句必须以英文的分号结尾才可以执行,否则结果如下: 

         它就会一直等你输入那个分号。

二、DQL简单查询语句

        1、基础查询

               (1)查询一个字段时:select 字段名  from  表名;

               

                (2)查询多个字段时只需在字段间加逗号:select 字段名1,字段名2  from  表名;

                (3)查询所有字段直接select *即可。

                (4)给查询的列起别名:select  字段名  as  别名  from  表名;

                

                注意:需要明确的是:通过select语句进行的查询所展示的结果并不是对表修改后显示的结果,即select语句只负责查询,不修改表中任何数据。

                        此外,在起别名的时候,如果想使用中文或者空格时,最高用单引号将其括起。

        2、条件查询

        就跟C++、java、python的条件语句一样,条件查询是指通过某些限定条件对所有数据进行筛选,最终得出需要的数据。

        基本语句:

                select   字段名   from    表名    where    条件

        一些基本的条件有:

=等于
!=或者<>

不等于

> 或者 < 或者 >= 或者 <=大于、小于、大于等于、小于等于
between  A and  B在A和B之间
is  null或者is not  null为空或者不为空
and或者or或者in或者not in和、或、包含、不包含(and优先级最高)
not取非
like

模糊查询,支持%和下划线匹配,%可以匹配任意个字符,一个下划线仅匹配一个字符

                  这里我展示一些不太熟悉的:

                        

        3、模糊查询

              就是上面说的like,可以使用%或者_匹配。

        4、字段排序 

         select   字段名1,字段名2   from  表名   order  by   字段名1

        上面这句话的意思是按照字段名1进行升序排列,MYSQL默认是升序排列,也就是asc,如果想要降序排列,可以在最后加上desc。

        另外我们也可以对多个字段进行排序:

        select   字段名1,字段名2   from  表名   order  by   字段名1,字段名2  desc;

        上面这句话指的是,按照字段名1升序、字段名2降序排列(字段名1一样的情况下按照字段2 排列)。

        另外还需要提到一种排列方式,根据字段位置排序:

        select   字段名1,字段名2    from  表名  order by 2;

        指的是按照第二列排序。

        5、数据处理函数

Lower

转换小写

Upper

转换大写

substr

取子串(substr(s,start,end))

length

取长度

trim

去空格

str_to_date

将字符串转换为日期

date_format

格式化日期

format

设置千分位

round

四舍五入

rand()

生成随机数(0~1)

ifnull

可以将null转换成一个具体的值

Case…when..then..else..end

当when时候,then怎么办,否则else,怎么办,end

        (1)单行处理函数:它的特点是,一个输入对应一个输出。

        用法:

select  lower(字段名1) as   字段名1   from   表

        效果如图:

        

        这里需要注意的一点是,我们经常在函数后面加上as,为这个操作起别名,否则显示出来的就是刚刚函数的名字。

         还有就是空处理函数ifnull,只要有null参与数学运算,结果都为null,为了避免这种情况发生就要先使用该函数进行处理,如果处理的位置为null,那么当做0处理。

(2)多行处理函数(分组函数):它的特点是,多个输入对应一个输出。使用前必须进行分组,如果不分组,那么默认整张表为1组(分组概念在下面)

Count

计数

sum

求和

avg

平均值

max

最大值

min

最小值

        注意:分组函数不可以直接使用在where子句中,而是应该使用group  by;所有的分组函数可以组合一起使用。、

  6、分组查询

        语句格式:select  字段名1,字段名2  from    表名   group   by    字段名2

        语法意思就是将那一组数组按照字段名2分组。并且我们可以在group by  之后加上having语句进行再筛选。

        (注:单表查询顺序:from->where->group by->having->select->order by;)

        

7、distinct语句

        使用distinct语句可以去除重复记录,使用方式是:

        select   distinct   字段名   from   表  

        上面的语句的意思是除去字段名中重复的部分,如果对身份证号id做出去重,那么则是筛选掉重复的人员数据。

        也可以后面接多个字段,那么它的意思变成了,将这些字段全部一样的部分去掉,比如我们对name和家庭住址同时使用distinct,那么就会将这两个都重复的数据去掉了,这样防止因重复而去除错误数据的可能。

8、内连接

        下面我们将进行多表查询,这部分是重点。内连接是从结果表中删除与其他被
连接表中没有匹配行的所有行。

        (1)等值连接

                这部分很简单,就是将相等的部分进行连接。

                select 

                        A.a , B.b

                from

                        A  a , B b

                where

                        A.a = B.b      这是SQL92写法,不使用

                select

                        A.a , B.b

                from

                        A a

                join

                        B b

                on

                        A.a = B.b        一般使用该SQL99

                where

                        限制条件

        我们只讲解SQL99的语法部分。

        我们一般分别选取A表的a列和B表的b列,所以select后接那两句,然后我们从A表中选a,在加入(join)B表的b,筛选条件是  A.a = B.b。

        (2)非等值连接

        大概就是on后面的语句不是那种“=”,就叫不等值。

                select

                        A.a , B.b

                from

                        A a

                join

                        B b

                on

                        A.a between  1  and  2;     

        方法和等值连接几乎一样,区别就是=和!=。

        

        (3)自连接

        所谓自连接,就是将当我们需要一张表的两个部分时,需要将这张表的两个部分进行连接。所以就要将当前这张表A和本身A连接。

      

        9、外连接

        和内连接的区别:内连接的表都是主体,相互之间没有主次之分。而外连接通过join指定left和right,指定左右连接,从而确定主次,主表内容即使没有查到也会全部显示。

        (注:内外连接其实需要在join的左边加上inner和outter,但是都是可以省略的,加上可以让可读性更强)

        

        10、多表连接

        多表连接就是两个以上的表进行连接,实现方式很简单,只是在join  on后面再加join  on。

   

                                                未完待续.......................

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

少๑渊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值