Mysql:从0到1,掌握Mysql数据库(详细版)

本文概述

本文从0到1的讲述了mysql是什么,怎样创建、查看、修改、删除数据库,怎样对数据库中表进行创建、查看、修改、删除表的操作。

一、数据库的简介

1.什么是数据库

数据仓库。访问必须只能用SQL语句来访问。数据库也是一个文件的系统。

2.数据库的作用

存储数据的作用。开发任何的应用,都有数据库。

3.关系型的数据库

数据库中保存的都是实体与实体之间的关系。

4.常见的数据库

    • Java开发,必用的两个数据库Oracle和MySQL
      • Oracle数据库(甲骨文)       大型的数据库,收费的。
      • MySQL数据库 小型的数据库,免费开源的。被Oracle收购了(在6.x版本下开始收费了)
      • SQLServer          微软的数据库
      • DB2                      IBM公司产品,大型的数据库,收费的。
      • SyBASE                退出了历史的舞台。PowerDigener(数据库的设计的工具)

总结:

一个数据库的服务器中包含多个数据库(蓝框),一个数据库中有多张表(红框),一个表中包含多个字段(绿框)(字段和JavaBean的     属性是对应),表中存放是数据(黄框),一行数据和一个JavaBean实体对象是对应的。

打开Mysql终端进行语句操作(使用mysql -u root -p进入),

如果下载了图形化界面navicat,也可以通过查询进行操作:

二、操作mysql数据库的语言(SQL)

2.1 SQL语言

Structured Query Language, 结构化查询语言

1.SQL非过程性的语言
    • 过程性的语言:依赖上一条或者上几条语句执行(python、java等语言,下一行的执行依赖上一行的结果)。
    • 非过程性的语言:一条语言,就对应一个返回的结果(不管一个sql语句多长,最终返回一个结果)。
2.SQL语言是基础

        在Oracle使用自己的语言,PL/SQL只能在Oracle来说使用。

2.2 SQL的分类

1.DDL      数据定义语言
    • 创建数据库 创建表 创建视图 创建索引 修改数据库 删除数据库 修改表 删除表
    • create ‐‐ 创建 alter ‐‐ 修改 drop ‐‐ 删除
2.DML     数据操作语言

* 操作数据        插入数据(insert) 修改数据(update) 删除数据(delete)

3.DCL      数据控制语言
    • if else while
4.DQL     数据查询语言
    • 从表中查询数据(select)

三、数据库的操作(CURD)

3.1创建数据库(重点)

1.创建数据库的语法

    • 基本的语法:create database 数据库名称;
    • 正宗的语法:create database 数据库名称 character set 编码 collate 校对规则;

2.校对规则(了解):决定当前数据库的属性。

示例:
创建一个名称为mydb1的数据库。

create database mydb1;
创建一个使用utf8字符集的mydb2数据库。

create database mydb2 character set 'utf8';
创建一个使用utf8字符集,并带校对规则的mydb3数据库。

create database mydb3 character set 'utf8' collate 'utf8_bin';

3.2查看数据库(重点)

1.show databases;                       ‐‐ 查看所有的数据库

2.use 数据库名称;                      ‐‐ 使用数据库

3.show create database 数据库名称;       ‐‐ 查询数据库的创建的信息

4.select database();                   ‐‐ 查询当前正在使用的数据库

3.3 删除数据库(重点)

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

3.4 修改数据库

语法:alter database 数据库名称 character set 'gbk' collate '校对规则';

示例:

查看当前数据库服务器中的所有数据库

show databases;
查看前面创建的mydb2数据库的定义信息

show create database mydb2;
删除前面创建的mydb1数据库

drop database mydb1;

    四、表结构操作(CURD)--对库中表的操作

    选中某个库:

    4.1创建表

    (不知道字段使用什么类型,可以看下方4.2数据库的数据类型,选择合适的类型)

    (约束见下方4.3单表约束)

    1. create table 表名称(

                     字段1 类型(长度)  约束,

                     字段2 类型(长度)  约束,

                     字段3 类型(长度)  约束

               );

    2.注意:

      • 创建表的时候,后面用小括号,后面分号。
      • 编写字段,字段与字段之间使用逗号,最后一个子段不能使用逗号。
      • 如果声明字符串数据的类型,长度是必须指定的。
      • 如果不指定数据的长度,有默认值的。int类型的默认长度是11
      • 约束:主键约束(非空且唯一),外键约束,非空约束,唯一约束。
    练习:创建一张表结构
    create table employee(
    
            id int,
    
            name varchar(30),
    
            gender char(5),
        
            birthday date,
    
            entry_date date,
    
            job varchar(50),
    
            salary double,
    
            resume text
    
    );

    3.执行SQL语句

      • 查询当前正在使用的数据库  select database();
      • 选择你要使用的数据库       use studb;
      • 执行创建表的SQL语句。

    4.使用desc employee;查询表的信息(Default:有无默认值)

    Null为NO说明此字段不为空

    4.2 数据库的数据类型(5类)

    1.字符串型(重点)

    VARCHAR(用比较多):长度是可变的。例子:name varchar(8),存入数据hello,存入进去之后,name字段长度自动变成了5。

    CHAR:长度是不可变的。例子:name char(8),存入数据hello,用空格来补全剩余的位置

    2.大数据类型(不常用)

     BLOB:字节(我们读不懂的,音频文件,图片等,背后是二进制)

    TEXT:字符(文本的内容)(我们看得懂的内容,数字、文字等);

    3. 数值型(重点)

    TINYINT 、SMALLINT、INT、BIGINT(对应long)、FLOAT(单精度)、DOUBLE

    4.逻辑性(布尔类型)

    BIT:在Java中是true或者false ;在数据库bit类型(1或者0)

    5.日期型(重点)
    DATE             :只包含日期(年月日)
    
    TIME              :只包含时间(时分秒)
    
    DATETIME          :包含日期和时间。如果插入数据的时候,字符值为空,字段的值就是空了。
    
    TIMESTAMP        :包含日期和时间。如果插入数据的时候,设置字段的值为空,默认获取当前的系统的时候,  把时间保存到字段中。

    4.3 单表的约束

    1.约束的好处:保证数据的完整性。

    2.主键约束(重要)代表记录的唯一标识。

      • 关键字:primary key 通过该关键字声明某一列为主键。
      • 唯一                      值就不能相同
      • 非空                      值也不能为空
      • 被引用                    和外键一起来使用

    3.唯一约束

      • 声明字段值是唯一的。使用关键字 unique

    4.非空约束

      • 声明字段的值是不能空的。not null

    4.4 删除和查看表

    1.删除表语法:drop table 表名;
    
    2.查看标签
    
    desc 表名;             ‐‐ 查询表的信息
    
    show tables;                 -‐ 查看当前数据库中所有的标签
    
    show create table 表名;   ‐‐ 查看表的创建的信息

    4.5修改表(重点)

    1.语法
      • alter table 表名 add 新列名 类型(长度) 约束;                                ‐‐ 添加列
      • alter table 表名 drop 列名;                                                            ‐‐ 删除列
      • alter table 表名 modify 列名 类型(长度) 约束;                             ‐‐ 修改列的类型或者约束
      • alter table 表名 change 旧列名 新列名 类型(长度) 约束;            ‐‐ 修改列名
      • rename table 表名 to 新表名;                                                        ‐‐ 修改表的名称
      • alter table 表 名 character set utf8;                                                ‐‐ 修改表的字符集
    示例:
    在上面员工表的基本上增加一个image列。
    
    alter table employee add image varchar(50);
    
    修改job列,使其长度为60。
    
    alter table employee modify job varchar(60);
    
    删除gender列。
    
    alter table employee drop gender;
    
    表名改为user。
    
    rename table employee to user;
    
    修改表的字符集为utf8
    
    alter table user character set utf8;
    
    列名name修改为username
    
    alter table user change name username varchar(30);
    对表中数据的操作见我的专栏mysql下:

    Mysql数据库中数据的操作(CRUD)(详细版)https://mp.csdn.net/mp_blog/creation/editor/146213148

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值