zoukankan      html  css  js  c++  java
  • mysql基础操作

    全是毕业设计逼得~

    2020-04-09 23:14

    <-- MySQL 基本操作 -->

    //重点说明
    /对表名的操作均需要对其使用反引号``/

    <-- 数据库操作 -->

    使用数据库
        use mysql;
    
    创建数据库
        create database 数据库名;
        例如:创建auto数据库
            create database auto;
        
    显示所有数据库
        show databases;
    
    删除数据库
        drop database 数据库名;
        例如:删除auto数据库
            drop database auto;
    
    使用数据库
        use 数据库名;
    
    查询当前连接数据库
        select database();
    
    显示当前连接数据库所有表
        show tables;
    

    <-- 数据库表操作 -->

    创建表
        创建单个数据
            create table 表名(字段名 类型(长度));
                例如:创建auto数据库  
                    create table class(id int(20));
    
        创建多个数据
            create table 表名(字段名 类型(长度) ,字段名 类型(长度),......)
    
    (增)表内数据插入 //插入现有字段下单独的一行数据,不能对没有的字段进行设置
        insert into 表名(字段名1,字段名2,...,字段名n)values(值1,值2,...,值n),(值1,值2,...,值n);
    
        //在已有字段名下添加
        insert into 表名 value(值1,值2,...,值n),(值1,值2,...,值n);
    
        /*decimal(n,m)表示数值中共有n位数,其中整数n-m位,小数m位*/
    
    (删)删除表
        drop table 表名;
    
        删除当前表中指定数据
            delete from 表名 where 表达式;
            例如:删除当前表中id为3的数据
                delete from `neo-7n-0-002-gps` where id=3;
    
    (改)更改表中数据
        opdate 表名 set 字段=新值1,...新值n where 条件;
        例如:更改id为1的longitude值为104.564234
            update `neo-7n-0-002-gps` set longitude=104.564234 where id=1;
    
        在已有的数据库表中添加表中字段
            alter table 表名 add 字段名 类型(长度);
        
        修改字段(修改字段名、字段类型、长度)
            修改字段名:
                alter table 表名 change 旧字段名  新字段名
    
            修改字段类型
                alter table 表名 modify 字段名 字段类型(字段长度)
    
        删除字段
            alter table 表名 drop 字段名   
    
    (查)显示表信息
        desc 表名   /*或者*/    show cowlmns from 表名
        
        查询所有数据(基本语句格式(列))
            select 字段1,字段2,...,字段n from 表名;
            例如:查询id列
                select id from `neo-7n-0-002-gps`;
    
            如果查询当前表中所有数据(使用通配符*表示所有)
                select * from 表名;
        
        查询前几行数据
            select * from 表名 order by 字段名 limit 限制条件;
            例如:按照id查询neo-7n-0-002-gps表中前四个数据
                select * from `neo-7n-0-002-gps` order by id limit 0,4;   //0代表起始行但不包含起始行,4代表结束行,包含当前行
    
        /*增加说明*/
            where 用来筛选数据(条件查询)
                select * from 表名 where 表达式;
            where语句后面可以跟多个条件,从而显示查询的数据,多个条件之间使用and或者or连接
                select * from 表名 where 表达式1 and (表达式2 or 表达式3);
    
            group by 用来分类汇总
                后面跟着要汇总的字段,可以跟多个字段,中间以逗号分隔
                例如:
                    group by id表示按照id进行数据分类汇总
    
                //常用的汇总
                    count(*或者字段) 按照记录或者字段统计记录数   //count(*)包含所有的数据  count(字段)会忽略null的字段
                    例如:统计id的记录数
                        select id,count(*) as num from `neo-7n-0-002-gps` group by id;   //以指定别名num查询,通过id进行分组
    
                    sum(字段) 对字段进行求和
    
                    avg(字段) 对字段求均值
    
                    max(字段) 求字段中的最大值
    
                    min(字段) 求字段中的最小值
                
            having 用来筛选分类汇总结果 /*只能以指定别名操作*/
                一般和group by配合使用,表示在得到分类汇总的基础上,进一步筛选记录
                having后面只能是汇总的字段或者聚合的函数
    
                例如:通过id进行分组,对latitude指定别名lat,并在分类基础上筛选latitude大于30.124536的数据
                    select id,count(*),max(latitude) as lat from `neo-7n-0-002-gps` group by id having lat>30.124536;
    
            order by 用来排序(有升序和降序两种排列方式)
                desc 表示降序  asc表示升序(可省略,默认升序)
                    例如:按照id进行降序排列
                    select * from `neo-7n-0-002-gps` order by id desc;
    
                    //如果数据类型是int类型排序直接比较大小,如果是字符串,里面有数字或者字母,会按照字符串的顺序进行排序
    
                    order by需要在where后面,limit前面
                        如果后台指定多个排序字段,中间可以逗号分隔
                            select * from `neo-7n-0-002-gps` order by id desc,longitude desc;
    
            limit 用来取出指定的记录数
                取得一定范围的记录集,此函数通常用分页
                用法:
                    select * from 表名 limit 起始位置,长度;
                    //如果起始位置为0,那么第二个参数可以作为行或者长度
                    //如果第一个参数为非0,那么第二个参数代表长度
    
                    所以第二个参数综合可以作为长度
    
                    eg: select * from `neo-7n-0-002-gps` limit 2;   //如果只有一个数字,那么该数字表示长度
    
                    /*limit写在查询语句的最后*/
    
    /*指定别名查询*/
        select 字段名1 as "新的字段名1",字段名2 as "新的字段名2",...,字段名n as "新的字段名n" from 表名;
        //指定别名只是为了显示更加直观,并不改变标的字段名
    

    <-- like及in关键字 -->

    like 表示相似(类似于contain查询,即模糊查询) //多用于search搜索框

    语法:
        select * from 表名 where 字段 like "字符及通配符";  
    
            例如:
            select * from `neo-7n-0-002-gps` where id like "1"   //不加%:查询id为1的数据,等价于where id=1
            select * from `neo-7n-0-002-gps` where id like "1%"   //字符后加%:检索以1开头的数据
            select * from `neo-7n-0-002-gps` where id like "%1%"   //字符前后均加%:完全模糊检索,不管1的位置,标准模糊检索格式
    

    in 表示列表中是否包含此类信息 in() 此信息指in括号中的内容

    语法:
        select * from 表名 where 字段 in(字段值1,字段值2,...,字段值n);   //括号中若是字符串,应使用单引号括起来
    
        例如:
            select * from `neo-7n-0-002-gps` where id in(1,5,7);
        等价于
            select * from `neo-7n-0-002-gps` where id=1 or id=5 or id=7;
    

    <-- 多表查询及子查询 -->

    查询表中某一列

    select 字段1,字段2,...,字段n from 表名;
        完整语法:
            select 表名.列名1,表名.列名2,...,表名.列名n from 数据库名.表名;
        
    字段的别名,表也可以指定别名
    
        select 别名.列名 from 表名 别名;
        select * from 表名;
        等效于
        ==> select 表名.* from 表名;
        ==> select 别名.* from 表名 别名;
        ==> select 别名.列名1,别名.列名2,...,别名.列名n from 表名 别名;
    

    多表查询
    当当前表满足不了当前的需求,此时就需要进行多表查询

    语法:
        select 字段1,字段2,...,字段n from 表1,表2,...,表n where 表达式;
        例如:
        select 字段1,字段2 from 表1,表2 where 表1.字段n=表2.字段n;
        等效于:
        select 别名1.字段1,别名2.字段2 from 表名1 别名1,表名2 别名2 where 别名1.字段n=别名2.字段n;
        //select 别名1.*,别名2.* from 表名1 别名1,表名2 别名2 where 别名1.字段n=别名2.字段n;
    
        select 别名1.字段1,别名2.字段2 from 表名1 别名1 join 表名2 别名2 on 别名1.字段n=别名2.字段n;
        //select 别名1.*,别名2.* from 表名1 别名1 join 表名2 别名2 on 别名1.字段n=别名2.字段n;
    

    2020-04-10 10:11

    <-- MySQL字段(数据)类型 -->

    大致分为三类
    数值
    日期/时间
    字符串

    数值类型

    integer  smallint  decimal  numeric
    //近似数值的数据类型  
    float real double precision
    关键字 int dec
    

    日期类型
    为表示时间和日期的数据类型

    dete  日期值  年-月-日
    time  时间值或持续时间  时:分:秒
    detetime  混合日期和时间值  年-月-日 时:分:秒
    year  年份值  年(2020)
    timestamp  混合日期或时间值、时间戳  年-月-日 时:分:秒  /*基本用于js中时间计算,例如博文发表于xxx前*/
    

    字符串类型

    char  定长字符串  0-255
    varchar  变长字符串  0-65535
    text  长文本数据  0-65535
    longtext  极大文本数据  0-4294967295
    blob  二进制长文本数据  0-255
    longblob  二进制极大长文本数据  0-4294967295
    
    //其他类型
    binary  varbinary  set  eunm
    想把自己留给生活 想把生活留给你
  • 相关阅读:
    中煜软件,数据库删除凭证
    excel vba获取拼音
    windows server 2012 R2 远程桌面授权模式尚未配置
    用C语言实现窗口抖动
    java修饰符
    Java对象和类
    Java基本语法
    Java开发环境笔记
    我的第一个Java程序和Java简介
    笔记本如何设置插入USB鼠标自动禁用触摸板
  • 原文地址:https://www.cnblogs.com/auto-ajax/p/mysql-study.html
Copyright © 2011-2022 走看看