zoukankan      html  css  js  c++  java
  • mysql 学习总结

     

       1、 进入数据库     mysql  -u 用户名 -p 密码

       2、 导出数据库      mysqldump  -u 用户名 -p 密码 数据库名(表名)> 路径 备份.sql

       3、 导入数据库      mysql  -u 用户名 -p 密码 数据库名< 路径 备份.sql

           或者进入mysql,使用source  路径 备份 此方法可以单独导入表

       4、 显示所有数据库   show databases;

       5、 使用数据库       use 数据库名;

       6、 显示所有表       show  tables;

       7、 创建数据库       create database 数据库名;

       8、 创建表            create table 表名(变量名 变量类型(大小)约束条件,变量名  变量类型(变量大小)约束条件,primary key(主键) );

       9、 描述表             describe 表名;

       10、向表中输入数据    insert into 表名 values(                );

       11、select 列 from 表 order by 列  desc/asc

           select count(*)  from 表名                         统计表中记录总数

           descending   降序排列的意思

           ascending  升序排列

       12、删除表内容

           delete  from 表名 

           truncate  table 表名

       13、更新表内容

           update table 表名 set='  '  where 条件

       14、改变表结构

           alter table 表名 add  id  int(10)  【列名 数据类型】  增加列

           alter table 表名 drop  id    【列名】                  删除列

           alter table 表名 modify  id  int(6);                     修改列

       15、改变表名

           rename  table 表名1 to 表名2

       16、查看数据库、表创建信息

           show  create  database 数据库名 

           show  create  table  表名 

        17、过滤表中重复的信息

            select distinct 列名 from 表名

          

    进阶篇

       1、将选出内容新建表

          create table 表名2(可定义列名以及类型) as select 列名,列名 from 表名2;

          将选出结果插入某表

          insert 表1 select 列名1,列名2,… From 表 2

          

       2、select语句

          select [all/distinct] 列名 from 表名 [where 搜索条件] [group by 组表达式] [having 条件][order by 列名][ASC|DESC]

          选择指定前几条

          select  *  from  table(表名)  limit  m , n
     m为第几行开始,n为取几条

          选择在指定范围内记录

          select  *  from  table(表名)  where 列名 between  value1 and value2

          选择在指定内容的记录

          select  *  from  table(表名)  where  in / not in  列(value1,value2 …)

          选择指定类似内容

          select  *  from  table(表名)  where  列名 like / not like  'string '

        

         

    通配符

    含义

    %

    任意多个字符

    _

    单个字符

    [ ]

    指定范围内的单个字符

    [ ^ ]

    不在指定范围内的单个字符

          选择为空的记录

          select  *  from  table(表名)  where  列名 NULL/ not NULL    

          选择结果统计

          select  列名1 , count(列名2)  from  table(表名)  group by 列名2   having 条件

          

    函数名

    功能

    count

    求组中项数,返回整数

    sum

    求和,返回表达式中所有值的和

    avg

    求平均值,返回表达式中所有值的平均值

    max

    求最大值,返回表达式中所有值的最大值

    min

    求最小值,返回表达式中所有值的最小值

    abs

    求绝对值,返回数值表达式的绝对值

    ascii

    求ASCII码,返回字符型数据的ASCII码

    rand

    产生随机数,返回一个位于0-1之间的随机数

        

    | student | CREATE TABLE `student` (

      `studno` int(5) NOT NULL auto_increment,

      `studname` char(10) NOT NULL,

      `studcourse` char(50) NOT NULL,

      `studscore` float default '0',

      PRIMARY KEY  (`studno`)

    ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=gbk |

    mysql> select * from student;

    +--------+----------+------------+-----------+-----+

    | studno | studname | studcourse | studscore | sex |

    +--------+----------+------------+-----------+-----+

    |      1 | 祖如辉   | 数据库原理 |        90 | 男  |

    |      2 | 马斯洛   | 数据库原理 |        80 | 男  |

    |      3 | 莉莉     | 数据库原理 |        94 | 女  |

    |      4 | 加红基   | 数据库原理 |        99 | 男  |

    |      5 | 马三立   | 数据库原理 |        69 | 男  |

    |      6 | 郭冬临   | 数据库原理 |        65 | 男  |

    |      7 | 想加你   | 数据库原理 |        55 | 女  |

    |      8 | 华正白   | 数据库原理 |        95 | 男  |

    |      9 | 黎明     | 数据库原理 |        49 | 男  |

    |     10 | 徐晓娟   | 数据库原理 |        79 | 女  |

    +--------+----------+------------+-----------+-----+

    10 rows in set (0.00 sec)

    mysql> select * from class;

    +--------+------------------+-----------+

    | studno | class            | gradecode |

    +--------+------------------+-----------+

    |      1 | 计算机网络工程   |         3 |

    |      2 | 计算机网络工程   |         1 |

    |      3 | 计算机网络工程   |         1 |

    |      4 | 计算机科学与技术 |         3 |

    |      5 | 计算机科学与技术 |         3 |

    |      6 | 计算机科学与技术 |         1 |

    |      7 | 计算机科学与技术 |         4 |

    |      8 | 计算机科学与技术 |         2 |

    |      9 | 计算机科学与技术 |         2 |

    |     10 | 计算机软件工程   |         2 |

    +--------+------------------+-----------+

    10 rows in set (0.00 sec)

    选出 数据库原理及格的女学生信息(包含学号,姓名,课程,成绩)。

    mysql> Select * from student where having (select  from  studscore   student where  sex='女' )>60;

    创建表视图

    create view 视图名 as select 列名 from 表名

    创建索引

    create unique index 索引列 on 表名(列名)

    内联接也叫自然联接,它是组合两个表的常用方法。内联接将两个表中的列进行比较,将两个表中满足联接条件的行组合起来,作为结果。内联接有两种形式的语法: (注:多个表也可)

    语法一:

    SELECT 列名SELECT 列名 FROM 表1 [INNER] JOIN 表2  ON 表1.列 = 表2.列

    语法二:

    SELECT 列名FROM 表1,表2  WHERE 表1.列 = 表2.列

    在内联接中,只有在两个表中匹配的行才能在结果集中出现。而在外联接中可以只限制一个表,而对另外一个表不加限制(即不加限制的表的所有行都出现在结果集中)。

    外联接只能连接两个表

    外联接分为左外联接、右外联接。

    语法如下:SELECT 列名

    FROM 表1 <LEFT|RIGHT > [OUTER] JOIN 表2  ON 表1.列 = 表2.列

    联接操作不仅可以在不同的表上进行,而且可以在同一张表内进行自身联接,即将同一个表的不同行联接起来。自联接可以看作一张表的两个副本之间的联接。在自联接中,必须为表指定两个别名,使之在逻辑上成为两张表。

    是一种特殊类型的内联接

    l  为表名指定别名的方式:

    • 在表名后面直接给出别名:表名 别名
    • 在表名和别名之间添加AS关键字:表名 AS 别名

    l  MySQL的表别名中不能有特殊字符(如空格)

    l  除了在内联接时必须使用表别名之外,表别名也可用在其他的SQL语句中,以简化SQL语句,提高语句的可读性。

    l  交叉联接也叫非限制联接,它将两个表不加任何约束的组合起来。在数学上,就是两个表的笛卡尔积。交叉联接后得到的行数是两个被联接表的行数的乘积。

    l  语法如下:SELECT 列名 FROM 表1 CROSS JOIN表2

    SELECT 列名 FROM 表1 ,表2

     

  • 相关阅读:
    第二期冲刺会议3
    第二期站立会议2
    意见汇总及改进方案
    第二期站立会议1
    第一期站立会议7
    第一期站立会议6
    第一期站立会议5
    第一期站立会议4
    第一期站立会议3
    第一期站立会议2
  • 原文地址:https://www.cnblogs.com/LWK5100/p/14231414.html
Copyright © 2011-2022 走看看