zoukankan      html  css  js  c++  java
  • MySQL数据库01

    MySQL数据库 

    前言:

      随着时代的进步,大数据也逐渐走进大家的生活中,成为大家密不可分的一样东西。因此,作为程序员的我们,要学习并会使用数据库。

    什么是数据库?

      数据库就是一个文件系统,通过标准的SQL语句获取数据

    MySQL数据库又是什么呢?

      MySQL数据库是一个关系型数据库。 (关系型数据库:存放的是实体之间的关系)

    常见的关系型数据库: MySQL、Oracle、SQLServer、DB2、ByBase 等等.....

    数据库服务器从硬件和软件两方面来说:

      ①硬件:指的是一台配置很高的电脑

      ②软件:需要在这台电脑上安装数据库服务器

    MySQL的数据库服务器的存储方式:

      在数据库服务器的内部,通过数据库存储数据,通常情况下一个应用创建一个数据库。

      在数据库中,一般用表存储数据,在一个系统中,通常为每个实体创建一个表。

      在一个表中,往往会有很多条记录,一个实体的实例,会创建一个新的记录。

    接下来我们来介绍一下SQL语句:

      SQL:结构化查询语言(通俗点:访问数据库的语言)

      SQL的分类:①DDL:数据定义语言  ②DCL:数据控制语言

            ③DML:数据操纵语言  ④DQL:数据查询语言

    首先是学习数据库的操作: 创建数据库、查看数据库、修改数据库、删除数据库

    创建数据库:create database 数据库名称 [character set 字符集 collate 字符集校对规则];  // 【】中的内容可以省略

         

    查看数据库:

    ①查看数据库服务器内所有数据库:show databases;

    ②查看某个数据库的定义信息:show create database 数据库名称;

         

    修改数据库:alter database 数据库名称 character set 字符集 collate 校对规则;

         

    删除数据库:drop database 数据库名称;

        

    其他数据库操作:(这个就不具体展示了)

    切换数据库:use 数据库名称;

    查看当前数据库:select database<>;

      

    接下来是学习操作数据库表:    

    创建表:create table 表名称(字段名称 字段类型(长度) 约束, 字段名称 字段类型(长度) 约束, 字段名称...);

         

    我们先介绍一下里面所涉及的内容:

    字段类型:一个实体对应一个表,一个实体属性对应表的一个字段。

    接下来我会用JAVA的数据类型与SQL中的字段类型一一对应。

    JAVA:byte/short/int/long

    SQL: tinyint/smallint/int/bigint

    JAVA SQL
    float  float
    double double
    boolean bit
    char/String char/varchar
    Date date/time/datetime/timestamp
    File BLOB/TEXT

    datetime和timestamp区别:

    datetime:既有日期又有时间的日期类型,如果没有向这个字段中存值,数据库使用null存入到数据库中。

    timestamp:既有日期又有时间的日期类型,如果没有向这个字段中存值,数据库使用系统时间存入到数据库中。

    char代表是固定长度的字符或字符串

    varchar代表是可变长度的字符串

           

    单表约束:

    作用:保证数据的完整性

    单表约束分类:主键约束、唯一约束、非空约束

    主键:primary key  主键约束默认就是唯一的,非空的。

    唯一:unique

    非空:not null

        

    查看表:

    ①查看某个数据库下的所有表:show tables;

    ②查看某个表的结构信息:desc 表名;

    删除表:drop table 表名;

    修改表:

    添加列:alter table 表名 add 列名 类型(长度) 约束;

    修改列类型、长度和约束:alter table 表名 modify 列名 类型(长度) 约束;

           

    删除列:alter table 表名 drop 列名;

           

    修改列名称:alter table 表名 change 旧列名 新列名 类型(长度) 约束;

           

    修改表名:rename table 表名 to 新表名;

           

    修改表的字符集:alter table 表名 character set 字符集;

      

    对数据库表的记录进行操作:

    添加表的记录:

    插入某些列:insert into 表名 (列名1,列名2,列名3......) values(值1,值2,值3.........);

          

    插入所有列:insert into 表名 values(值1,值2,值3......);


        

    注意事项

    1. 值的类型与数据库表列的类型一致。

    2. 值的顺序与数据库中表列的顺序一致。

    3. 值的最大长度不能超过列设置最大长度。

    4. 值的类型是字符串或者是日期类型,使用单引号引起来。

        

    修改表的记录:update 表名 set 列名=值,列名=值 where 条件;

        

    修改某一列的所有值: update 表名 set 列名 = xxxx;

    修改特值列的值; update 表名 set 列名 = xxx where 列名 = xxx;

    修改多个列: update 表名 set 列名=xxx,列名=xxx where 列名 = xxx;

    [这里就不一一举例了,按照模板来即可。] 

    删除表的记录:delete form 表名 where 条件;

    注意事项:

    1. 删除表的记录,指的是删除表中的一行记录。

    2. 删除如果没有条件,默认是删除表中所有的记录。

    删除表中的记录两种做法:

    1.delete from user 【DML】; 一条记录一条记录删除,事务可以作用在DML语句上。

    2.truncate table user 【DDL】; 将表删除,然后重新创建一个结构一样的表,事务不能控制DDL。

           ps:关于事务,到MYSQL02时会讲。

    查看表的记录:

    基本查询:select * from 表名; // 查询所有,也可以添加条件,只查询个别。

    别名查询:select 列名 as 别名 from 表名;

        

    条件查询:

    where子句: >,<,>=,<=,<>,= <>:不等于 、ike:模糊查询、in:范围查询、条件:and,or,not 

    比较大小查询:

    范围查询:in (区间)

                

    模糊查询:

    模糊查询介绍:

    ①like 'C_';  // 必须是2个字,且C开头

    ②like 'C%';  // 只要以C开头即可

    ③like '%C%'; // 只要其中有C即可

    ④like '&C';  // 只要结尾有C即可

     排序查询:条件后面使用 order by 字段名称 asc升序【默认】 desc降序

    分组统计查询:

    聚合函数的使用: sum();、count();、max();、min();、avg();   // 这里就不举例了

    where的子句后面不能跟着聚合函数,如果现在使用带有聚合函数的条件过滤,需要使用 having关键字。

    分组查询:用group by 字段名称  【这个例子不标准】

     

    小结:

      以上就是本次MySQL数据库的基本使用介绍,后面我将会接着介绍多表以及事务。

                                        加油!

                                时间:2020-03-25 02:06:17

  • 相关阅读:
    iBatis.Net(2):基本概念与配置
    iBatis.Net(4):DataMapper API
    iBaits.Net(1):简介与安装
    在YII项目中使用ckeditor和ckfinder快速部署文本编辑器并实现图片上传
    iBatis.Net(6):Data Map(深入)
    基于.net mvc的校友录(开篇)
    Ubuntu下建立tftp服务+我安装过程出现的问题
    2013年了,今年我将毕业
    路由器系统的内存储布局
    基于.net mvc的校友录(一、前台需求设计)
  • 原文地址:https://www.cnblogs.com/Charles-H/p/Learning_MYSQL01.html
Copyright © 2011-2022 走看看