MySQL 整理笔记 张大哥

MySQL是一个数据管理系统

  数据库:   是表的集合,是一个大的分类

  表  :   是一个小的分类

  一些常用的mysql建立数据库的命令: 

    登录命令:  mysql:   mysql -u root -p 

    注:db_name 代表数据库的名字。

    1.显示服务器上所有已有的数据库:

         show databases ;

    2.在服务器中创建自己的数据库:

        create database;

        create database  character set utf8;创建的数据库支持中文

    3.如何切换到指定的数据库:

        use db_name;

    4.如何删除已有数据库:

        drop database db_name;

  如何在数据库中建立数据表?

    数据表是一个二维表格(行,列),一行代表一条数据,每一个列代表的是当前一条数据的字段。

    建表的基本语法:  create table tb_name(字段1 类型,字段2 类型);

    注:tb_name 代表数据表的名字。

    主键: 唯一的识别一条记录的字段,是不重复的

    自增: 某个字段不需要手动填写数据,而是通过系统分配的整数(每一条数据分配的值都是      前一条数据的增量)

    非空: 字段设置为非空属性时,填写数据时要求该字段为必填项

    默认值:向表中填写数据时,字段不写入数据时,会默认填充值 

    unique key    唯一的

    primary key    主键

    not null      不为空

    auto_increment     自增

    default 2       默认值为2

    comment ''    字段说明

  查看表内信息select * from 表名  

  插入数据命令

    方法1:   insert tb_name values()    --适用于全记录插入

         注:按表中字段顺序插入数据

    方法2:  insert tb_name (字段1,字段2,……) values(‘字段1的值’,‘字段2的值’,……);

          注:对指定的字段进行数据的插入操作,如果是字符类型的数据要用’’号包含要插入的数据

  修改字段命令:upadate tb_name set 字段1=值,字段2=值 where 条件

    1.把表中的要修改的字段,所有的指定字段都给修改了

    2.指定要修改的是哪行的字段,只修改指定行的字段

 

  delete语法: 删除表中的指定记录

    delete from tb_name where 条件

  查看全表信息:

    select * from tb_name

  投影:

    select 字段1,字段2,…… from tb_name

  在查询时,将字段别名: 

    select 字段名1 '名字1',字段名2'名字2',......;

  带筛选条件查询:    

    select 字段名1,字段名2,...... from tb_name where 字段='条件';

  模糊查询:

    %是通配符,可以代表多个字符  _只代表一个未知字符

    select 字段名1,字段名2,...... from tb_name where 字段 like '条件%';

    select 字段名1,字段名2,...... from tb_name where 字段 like '%条件%';

    select 字段名1,字段名2,...... from tb_name where 字段='条件_';

   两个条件都需满足时

    select 字段名1,字段名2,...... from tb_name where 字段 like '条件%' and 字段 = '条件';

   两个条件只需满足任意一个即

    select 字段名1,字段名2,...... from tb_name where 字段 like '条件%' or 字段 = '条件';  

   not like 满足的条件是 “不是…”:

     select 字段名1,字段名2,...... from tb_name where 字段 not like '条件%';

  聚合函数

   1.count 函数  

     统计查询记录的个数(只显示统计的结果,不显示具体的信息)。

     select count(*) from tb_name ;

   2.sum 函数   求和

     select sum(字段名) from tb_name ;

   3.avg 函数   求平均值

     select avg(字段名) from tb_name ;

   4.max 函数   最大值

     select max(字段名) from tb_name ;

   5.min 函数   最小值

     select min(字段名) from tb_name ;

  升序排序  (asc 可以省略)

     select * from tb_name order by 字段名 asc;

  降序排序

     select * from tb_name order by 字段名 desc ;  

    第一排序,第二排序

     当第一排序出现有部分行字段相同的情况时,第二排序开始执行

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

  group by 分组

    先把指定的字段里面相同的数据划分成一组,然后再进行显示

    注意:在分组的时候做其他字段的投影是没意义的

      select 字段名 from tb_name group by 字段名;      

    分组可以和聚合函数一起使用

      select 字段名,count(*) from tb_name group by 字段名;     

    having 分组后的筛选不分组的时候筛选用where

      select 字段名 from tb_name group by 字段名 having 条件;

    两表关联,一定有主从之分,从主表建立一个新的字段以便关联到从表,主表中新建的这个用于关联的字段称为外键

  如何建这个外键

    1.在主表中新建一个字段

    2.新建的这个字段应于从表的主键类型相同,并关联到从表的主键

  join 连接方式:

     主表 inner join 从表 on 主表.外键 = 从表.主键

    子查询

      select * from tb_name where 字段 = (select 字段名 from tb_name2 where 字段2='条件');

    子查询中in的用法(包含)

       select * from tb_name where 字段 in (select 字段名 from tb_name2 where 字段2='条件');

  limit限制的作用

    select * from tb_name limit 5;//显示前5条记录

    

原文地址:https://www.cnblogs.com/ZHANGDGGE/p/6386328.html