zoukankan      html  css  js  c++  java
  • 我的mysql的学习记录

    ---恢复内容开始---

    MySQL

    概念:是表的集合,是一个大的分类

    安装

    安装文件下载路径:(老宁博客)

    http://www.cnblogs.com/SmartNing/p/5178616.html 

    1、配置视频

    第一步:下载绿色软件包,不用安装,放在指定目录下(假如放在C盘的server目录下)。

    1、把mysql-5.5.22.rar解压到Cserver目录,如果要解压到其它目录则需要修改(修改ini文件)

       C:servermysql-5.5.22my.ini中的

    basedir="c:/server/mysql-5.5.22/"(文件存放路径)

    datadir="c:/server/mysql-5.5.22/data/"

    为相应的路径。

    数据库实例的账号密码:root ,888

    然后到cmd下创建mysql的服务

    创建mysql5的服务:

     cd c:servermysql-5.5.22in

     mysqld --install MySQL5 --defaults-file=c:servermysql-5.5.22my.ini

    注意:如果服务目录创建错误,则需要先删除服务,

    命令为:sc delete mysql5 //这里的mysql是你要删除的服务名

    删除后需重新启动机器,然后在重新进到doc下创建mysql服务

     

    MySQL的基本数据类型

    1.10进制数字。 int(整数)  numeric(小数)

    -’表示负值

     . 小数点 浮点数的分割符

    例:numeric(10,2)中 10为个字符,2为小数点后2位。

    2.16进制数字

    3.字符串    char  固定数目的值

                   varchat   值得数目不固定但有上限

    4.日期和时间    date()

                         datetime()

     例如:2001-12-12、12:12:12

    5.null :NULL是一个特殊值,它表示没有任何值,它与“0”、空字符串都不是一回事。

    常用的mysql命令

    首先进到mysql目录:C:servermysql-5.5.22in

    登录:mysql -u root -p 888

    1、显示服务器上所有已有数据库:show databases

    2、在服务器中创建数据库语法:

    create databases db_name character set utf8 collate utf8_general_ci     

    2、如何切换到指定的数据库:use db_name

    3、删除数据库:drop database db_name

    4、建表语句: CREATE TABLE `news`.`topic`(`id` INT NOT NULL AUTO_INCREMENT,`topicName` VARCHAR(50) NOT NULL, PRIMARY KEY (`id`)

    ) CHARSET=utf8; 

    注: utf8(国际通用的编码形式)

    5、插入数据: insert tb_name values();   表示按顺序依次插入数据

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

    注:数值型不用加引号

    6、修改字段命令:

         upadate tb_name set 字段1=值,字段2=值 where 条件

    6、查询:

    显示所有信息:

    例:SELECT * FROM ming.adress_list;

    投影字段:

    例;SELECT name,position FROM ming.adress_list;

    将字段别名:

    例:SELECT name '名字', tel '电话' FROM ming.adress_list;

    筛选条件查询:

    例:SELECT * FROM ming.adress_list where name='梁朝伟';

    %通配符的模糊查询:

    例:SELECT * FROM ming.adress_list where tel like '136%';

    SELECT * FROM ming.adress_list where tel like '%234';

    And的用法:

    例:SELECT * FROM ming.adress_list where tel like '136%' and name like '梁%';

    Or的用法:

    例:SELECT * FROM ming.adress_list where tel like '136%' or name like '张%';

    Not的用法:

    例:SELECT * FROM ming.adress_list where tel not like '136%';

    (3) 聚合函数:

            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 ;

    排序order by;

    例:SELECT * FROM ming.adress_list order by id asc;

     

    SELECT * FROM ming.adress_list order by id desc;

    SELECT * FROM ming.adress_list order by age id desc;

    Asc:升序;desc:降序;

                                   

    (3)分组查询:group by+ 关键字

           查询项为聚合函数和分组列,分组列可以有多个。

           带使用过滤条件的查询:”对分组后结果进行筛选 使用having 语句

           同时满足2个调价(既,又)

           group by(a,b)having count(*)>1

    (4)连接查询:

           inner join :取得两个表中存在连接匹配关系的记录。

                    使用方法: SELECT ... INNER JOIN ... ON 语句如下

                                 SELECT article.aid,article.title,user.username FROM article INNER JOIN user ON article.uid = user.uid

                                                                                                        ↑                         ↑               ↑               ↑

                                                                                                      主表                     从表       主表.外键     从表.主键

           等于where 语句  SELECT article.aid,article.title,user.username FROM article,user WHERE article.uid = user.uid

    子查询:一个查询中出现两次查询;

    例:select * from adress_list where 主键 = 或者in(select  waijian from users where 条件);

    用子查询作为投影使用;

    例题:现查询所有同学的Sno、Cno和rank列。Between …. And …  在某个范围区间内。

    select sno,cno,(select rank from grade where score.DEGREE between low and upp) '等级' from score;

    limit语句:select * from table limit m,n

          其中m是从0开始,表示第一条记录,n是指从第m+1条开始,取n条。

          select * from tablename limit 2,4 

     

                  注意:如果子查询中使用limit时,不能使用not in,in可以用<>不等于;

     

                  例题:查询score中选学一门以上课程的同学中分数为非最高分成绩的记录。

     

                  select sno,count(*) from score where sno <>(select sno from score order by degree desc limit 1) group by sno having count(*)>1;

     

                  注意:mysql语句中两个日期的相减等于年数,也就是整个生日-另外一个生日=年数;

     

                  例:2017-12-27 —— 2016-1-23 = 1;

     

                  例题:查询和学号为108的同学同年出生的所有学生的Sno、Sname和Sbirthday列。

     

                  Select sno,sname,sbirthday from student where sbirthday-(select sbirthday from student where sno='108')=0;

     

    用子查询作为投影使用;

    例题:现查询所有同学的Sno、Cno和rank列。Between …. And …  在某个范围区间内。

    select sno,cno,(select rank from grade where score.DEGREE between low and upp) '等级' from score;

     

    distinct:去掉重复的结果。

  • 相关阅读:
    [ASP.NET AJAX]Function对象及Type类的方法介绍
    经常用到的Banner服务器控件的开发
    [ASP.NET AJAX]类似.NET框架的JavaScript扩展
    [EnterpriseLibrary]SqlConnection.ConnectionString相关关键字
    [设计模式] Singleton Pattern
    [XNA GAME]今天开始我想和XNA Game交朋友
    把SQL数据库部署到远程数据库服务器中
    [CommunityServer]AJAX客户端说明,XMLHttpRequest对象
    [EnterpriseLibrary].NET程序中配置文件(.config)操作
    [今天我当家]糖醋排骨
  • 原文地址:https://www.cnblogs.com/yushixin/p/6386976.html
Copyright © 2011-2022 走看看