美文网首页常用工具
Mysql常用简单语句

Mysql常用简单语句

作者: 张小Di | 来源:发表于2019-04-19 23:56 被阅读0次

    基本操作

    //查看数据库
    show databases;
    //创建数据库
    create database A;
    //使用数据库
    use A;
    //删除数据库
    drop database A;
    

    遇到问题:使用administrator执行cmd,创建数据库时出现ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'a'提示,因为需要使用mysql的默认用户名root登陆

    //-u:数据库用户名,localhost表示本地
    //-h:服务器名,root是默认用户名
    //-p:密码
    mysql -h localhost -u root -p
    

    表的操作

    //查看数据库中所有表
    show tables
    //创建表
    create table student
    (
    列 数据类型,
    ·······
    列 数据类型
    );
    //删除表
    drop table 表名
    //显示表的结构
    describe 表名
    //查询表的具体结构
    show create table 表名;
    
    基本数据类型:

    数值类型

    1. 整型
      tinyint:1字节,范围(-128~127)
      smallint:2字节,范围(-32768-32767)
      mediumint(m):3字节 范围(-8388608~8388607)
      int(m) :4字节 范围(-2147483648~2147483647)
      bigint(m) :8字节 范围(+-9.22*10的18次方
      取值范围如果加了unsigned,则最大值翻倍,如tinyint unsigned的取值范围为(0~256)。

    2. 浮点型
      float(m,d):单精度浮点型,8位精度(4字节),m总个数,d小数位
      double(m,d):双精度浮点型,16位精度(8字节),m总个数,d小数位

    3. 定点数
      浮点型在数据库中存放的是近似值,而定点类型在数据库中存放的是精确值。 decimal(m,d) 参数m<65 是总个数,d<30且 d<m 是小数位。

    字符串类型
    char(n):固定长度,最多255个字符
    varchar(n):固定长度,最多65535个字符

    char和varchar差异

    1. char(n) 若存入字符数小于n,则以空格补于其后,查询之时再将空格去掉。所以char类型存储的字符串末尾不能有空格,varchar不限于此。
    2. char(n) 固定长度,char(4)不管是存入几个字符,都将占用4个字节,varchar是存入的实际字符数+1个字节(n<=255)或2个字节(n>255),
      所以varchar(4),存入3个字符将占用4个字节。
    3. char类型的字符串检索速度要比varchar类型的快。

    时间日期类型
    date:日期 '2008-12-2'
    time:时间 '12:25:36'
    datetime :日期时间 '2008-12-2 22:06:44'
    timestamp:自动存储记录修改时间

    //插入数据
    insert  into 表名(字段1,字段2) values(值1,值2),(值1,值2);
    //更新数据
    update 表名 set 字段1=值1 (where 条件表达式);
    //查询信息
    select * from 表名 (where 条件表达式) (group by 列名 ASC/DESC) (order by 列名 ASC/DESC)(having 分组条件)(limit 限制条数);
    //删除信息
    delete  from 表名 (where 条件表达式);
    //删除全部数据
    truncate 表名;
    

    truncate与delete删除表信息区别:
    1.truncate只能删除全部信息,delect可以添加条件语句
    2.truncate删除时没有记录,delete则会有日志记录
    3.使用truncate删除数据后,再添加数据时,自动增加字段的默认值会从1开始,delete则N+1

    //修改表名
    rename table A to A1;
    alter table A rename A1;
    //添加列
    alter table student add (column) 列名 数据类型;
    //修改列名称及定义
    alter table student change (column) 列名1 列名2 数据类型;
    //删除列
    alter table student drop (column) 列名;
    //别名使用,as
     select 列名1 as 列名2 from 表名;
    
    子查询
    select * from 表名 where 列名=
    [all|some|any|not]
    select 列名  from 表名 where 条件表达式;
    
    表的连接

    内连接:(inner)join A on B,相当于等值关系,取得是两表的交集
    左连接:left join A on B ,以左边的表为基础,因此存在右边表对应内容为NULL的情况
    右连接:right join A on B,以右边的表为基础,因此存在左边表对应内容为NULL的情况

    左连接,右连接使用场景:
    如,部门表,员工表(非强绑定关系)
    如果使用左连接,则可能会存在部门中没有员工的情况
    如果使用右连接,则可能会存在员工不属于任一部门的情况

    having与where的区别

    where针对表中的列来查询数据(只能是表中字段),目的:过滤特定行
    having针对查询结果中的列来筛选数据(可以不是表中的字段),目的:过滤特定组

    group by

    根据指定数据列的成员对查询结果进行分组统计
    在group by子句前使用where子句
    在gruop by子句后使用having

    聚合函数

    sum:求和
    max:最大值
    min:最小值
    avg:平均数
    count:统计记录数

    参考文档:
    MYSQL中数据类型介绍
    group by 和 order by 的区别 + 理解过程

    相关文章

      网友评论

        本文标题:Mysql常用简单语句

        本文链接:https://www.haomeiwen.com/subject/kchhgqtx.html