zoukankan      html  css  js  c++  java
  • 学习笔记—MySQL基础

    数据库的介绍

    mysql数据库介绍

      开放源码的轻量级关系型数据库管理系统,体积小、速度快、操作便捷。

    数据库的启动和连接

    mysql数据库启动

      在终端输入以下命令,启动mysql服务器

    service mysql start

      输入命令,查询mysql服务器状态

    service mysql status

      出现如下提示表示mysql服务器以启动成功

    mysql数据库连接

      输入账户和密码连接数据库

     

      表示启动成功。

     mysql数据库断开连接

      输入exit,如果显示Bye表示断开成功。

    数据库的操作

    显示数据库

    show databases;

    创建数据库

    create database 库名 default character set utf8;

    删除数据库

    drop database 库名;

    使用数据库

    use 库名;

      表示以成功切换到study数据库。

    数据表的操作

    显示数据表

    show tables;

    创建数据表

    ## 创建表语句
         create tables 表名(字段名 类型 约束,字段名 类型 约束,......);
         ## 注意:mysql是没有序列的,但是可以在创建表的时候直接指定主键是自赠的。
        在字段后使用 auto_increment 表示自增。
    
    ## MySQL常见字段类型
        数值类型:
            int(长度)表示整数类型的数据
            float/double表示浮点数
        字符类型:
            varchar(长度)动态分配存储长度
            char(长度)分配固定长度
        日期类型:
            date:格式为yyyy-mm-dd
            datetime:格式为yyyy-MM-dd hh:mm:ss 占用8个字节
            timestamp:特点:会自动进行时区的转换,占用4个字节
            time:时间
            year:年份
        其他类型:
            TEXT:字符数据
            BLOB:二进制数据
    
    ## 约束
      主键约束:
        在创建表时,在字段后使用 primary key 即可
        在创建表语句的最后面使用 constraint 约束名 pirmary key(主键字段名)
      非空约束:
        在创建表的时候直接在字段后使用 nut null 即可
        注意:
          mysql的非空约束中空字符是可以存储进去的。
      检查约束:
        在mysql中是没有检查约束的,但是使用check关键字又不会报错。
        解决:
          使用代码逻辑进行无效的数据过滤。
          使用 mysql 的存储过程。
      唯一约束:
        在字段名后直接使用 unique 即可
        在创建表语句的最后面使用 constraint 约束名 unique(字段名)
      外键约束:
        在字段名后直接使用 references 父表名(父表主键名)
        在创建表语句的最后面使用 constraint 外键约束名 foreign key(字段名) references 父表名(父表主键名)
    
    ## 在表外部添加约束
      ## 主键约束
      alter table 表名 add constraint 约束名 pirmary key(主键字段名);
      ## 唯一约束
      alter table 表名 add constraint 约束名 unique key(字段名);
      ## 非空约束
      alter table 表名 modify 字段名 类型 not null;
      ## 外键约束
      alter table 表名 constraint 外键约束名 foreign key(字段名) references 父表名(父表主键名)on delete set null on update cascase;

    修改数据表

    添加字段:
        alter table 表名 add 字段名 类型 约束;
    删除字段:
        alter table 表名 drop 字段名;
    修改字段类型:
        alter table 表名 modify 字段名 新的类型;
    修改字段名:
        alter table 表名 change 字段名 新的字段名 类型;
    修改表名:
        alter table 表名 rename as 新的表名;

    删除数据表

    drop table 表名;

    查看表创建语句

    show create table 表名;

    表数据的操作

    查询数据

    ## 单表查询
        ## 查询全部
            select * from 表名;
        ## 别名
            直接在字段后使用即可
            select 字段,字段 别名,字段 from 表名;
        ## 连接符
            使用concat(字段名,“连接的字符”)
        ## 去除重复
            使用 distinct 关键字即可
        ## 排序
            order by 字段名
        ## where字句
            select * from 表名 where 判断条件;
        ## 分组
            group by 字段名
            注意:
                    分组可以和字段一起使用
        ## having
            分组后筛选
    ## 多表查询
    select * from 表名1 别名1,表名2 别名2 where 别名1.字段名 判断条件 别名2.字段名;
    
    select * from 表名1 别名1 inner join 表名2 字段名2 on 别名1.字段名 判断条件 别名2.字段名;
    ## 子查询
    select * from 表名 where 字段名 in (select 字段名 from 表名 where 查询条件);

    增加数据

    insert into 表名 values(值1,值2,值3,...);    全字段插入
    insert into 表名(主键字段名,字段,字段,...) values(值1,值2,值3,...);    部分字段插入

    删除数据

    delete from 表名 where 条件;

    修改数据

    update 表名 set 字段名=值,字段名=值,... where 条件;

    分页查询

    select * from 表名 limit x,y;
    x:从第几条数据开始查询
    y:每页显示多少条数据
    
    ## 每页显示n条,查询第m页的信息
    select * from 表名 limit m*n-n,n;

     数据库的备份

     导出

    ## 导出整个数据库
    mysqldump -u root -p 数据库名>/目录/文件名.sql;
    ## 只导出一个表
    mysqldump -u root -p 数据库名 表名>/目录/文件名.sql;

    导入

    ## 方法一 连接数据库之后输入
    mysql>source /目录/文件名.sql;
    ## 方法二 连接数据库之前输入
    mysql -u root -p 数据库名<文件名.sql;
  • 相关阅读:
    Shiro入门
    Springmvc 文件上传和json处理
    SpringMVC入门
    Mybatis关联关系
    Mybatis整合Ehcache或Redis实现二级缓存
    mybatis与spring集成
    mybatis动态sql以及分页
    MyBatis入门
    使用java代码操作Redis
    【转】 制作Android Demo GIF:程序演示效果GIF图录制
  • 原文地址:https://www.cnblogs.com/shangyang/p/10584926.html
Copyright © 2011-2022 走看看