数百专家合力推荐,2021不能错过的MySQL入门基础

什么是数据库

在Java中,我们使用JVM来实现跨平台,那么计算机中存储的数据应该如何跨平台呢?
数据库就是为了解决操作系统之间跨平台而诞生的,它是一定数据格式的数据集合,它解决了不同操作系统,数据格式间的兼容问题.
目前数据库可以分为关系型数据库非关系型数据库,关系型数据库查询数据得到对象,而非关系型数据库保存的是键值对,通过键值对来查询数据,得到数组.
对于关系型数据库来说,数据和列是一一对应的,是存在映射的,是以表作为基本单位;
而对于非关系型数据库,是存储键值对,它有关系型数据库的方便,也能大量处理数据,目前比较火的是Redis和mongoDB.
在这里插入图片描述
下图中的红标是目前数据库学习必须掌握的部分,但是本文仅仅讲述MySQL部分;
在这里插入图片描述
MySQL是关系型数据库,它的轻量级和开源本质让它成为很多中小型网站的数据库;
数据库中表是存储数据的,里面可以细分为记录,记录又是由字段组成,字段又可以分为段名,字段值,字段类型等,所以说字段是存储数据的基本单位.
表是一种数据化的文件,它有列,行,主键的概念,列又被叫做字段,行则是上文中所说的记录,每个字段可以分为字段名称,字段数据类型,字段约束,字段长度.
在这里插入图片描述
视图,这是一个概念,可以理解为它是一张虚表,并不存在,是基于select语句查询生成的结果集,用于简化重复的select操作;
函数是功能的实现,我们可以自定义函数,调用套路通过使用select函数名来调用,它只有一个返回值;
存储过程是数据库存储的过程,它可以返回多个值,也可以没有返回值;
索引:它是为了增加查询速度而建立的;
在这里插入图片描述
在这里插入图片描述

数据类型

MySQL中数据类型是为了限制数据的类型,常见的数据类型如下图所示,当然我们经常使用的也只有整型,浮点型,字符型,日期类型等.

数值型

在这里插入图片描述

时间类型

在这里插入图片描述

字符串类型

在这里插入图片描述

char和varchar区别在于前者是占用固定的存储空间,而后者是占用不固定的存储空间,哪怕是声明大小后,varchar依然是根据其需要占用的空间而占用;

SQL分类

数据查询语言DQL,代表人员select;
数据操作语言DML,代表人员insert,delete,update;
数据定义语言DDL,代表人员create,drop,alter;
事务控制语言TCL,代表人员commit,rollback;
数据控制语言DCl,代表人员grant,revoke;

使用root用户,创建一个test_01数据库,
CREATE DATABASE test_01; 
并创建test01用户,
CREATE USER 'test01'@'localhost' IDENTIFIED BY 'test01';
赋予test01用户对test_01数据库拥有所有权
GRANT ALL PRIVILEGES ON test_01.* TO 'test01'@'localhost' IDENTIFIED BY 'test01';
FLUSH PRIVILEGES;
创建一个 xiaoming用户,让小明拥有最大权限(和root一样)
CREATE USER 'xiaoming'@'localhost' IDENTIFIED BY 'xiaoming';
GRANT ALL PRIVILEGES ON *.* TO 'xiaoming'@'localhost' IDENTIFIED BY 'xiaoming';
删除xiaoming用户
DROP USER 'xiaoming'@'localhost';
登录test01用户,在test_01数据库下创建t_student表,表中有 id,name,sex,course,score
   其中 id是 int 
    name 是 varchar
   sex 是 char
   course 是 varchar
   score 是 decimal

USE test_01;
CREATE TABLE t_student(
	`id` INT COMMENT '学号',
	`name` VARCHAR(100) COMMENT '姓名',
	`sex` CHAR(100) COMMENT '性别',
	`course` VARCHAR(100) COMMENT '科目',
	`score` DECIMAL(4,2) COMMENT '分数'
)ENGINE = INNODB DEFAULT CHARSET = utf8;

    向t_student表中插入3条数据
    1 张三 男 javaSE 992 李四 女 javaWEB 98
    3 王五 男 javEE 99.5
    
INSERT INTO t_student () VALUES(1,'张三','男','JavaSE',99);
INSERT INTO t_student () VALUES(2,'李四','女','JavaWeb',98);
INSERT INTO t_student () VALUES(3,'王五','男','JavaEE',99.5);

创建test数据库
CREATE DATABASE test0;
删除test数据库
DROP DATABASE test0;

创建 学生表(student)
表中有
    id int
    name varchar(30)
USE test;
CREATE TABLE student(
	`id` INT COMMENT '学号',
	`name` VARCHAR(30) COMMENT '姓名'
)ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT '学生表';
删除student表
DROP TABLE student;
把 course为javaEE的分数 更改为100

-- 前面建表的时候 score 设置不兼容100分 现在改过来
ALTER TABLE t_student MODIFY COLUMN score DECIMAL(5,2);
UPDATE t_student SET score = 100 WHERE course = 'JavaEE';

把 张三的性别更改为 女

UPDATE t_student SET sex = '女' WHERE `name` = '张三'; 

把 王五删除

DELETE FROM t_student WHERE `name` = '王五';

1 创建一个 test_01 数据库,并创建 test_01表
CREATE DATABASE IF NOT EXISTS test_01 DEFAULT CHARSET utf8;
    表中有 id , name , phone 请合理使用数据类型
    CREATE TABLE test_01(
	`id` INT COMMENT '编号',
	`name` VARCHAR(20) COMMENT '姓名',
	`phone` INT COMMENT '电话' 
)ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT '测试表'; 
    向表中添加数据
    ALTER TABLE test_01 MODIFY COLUMN phone TEXT;

        1 张三 13113113111
        INSERT INTO test_01() VALUES(1,'张三',13935735927);
        2 李四 13213213222
        3 王五 13313313333
INSERT INTO test_01() VALUES(2,'李四',13935735927);
INSERT INTO test_01() VALUES(3,'王五',15414654513);
    把 id为2 的 电话更改为 13413413444
    UPDATE test_01 SET phone = 15930145987 WHERE id = 2;
    删除 id为3的记录
    DELETE FROM test_01 WHERE id = 3;
    查询剩余所有记录
    SELECT * FROM test_01;
    删除test_01表和数据库
DROP TABLE test_01;
DROP DATABASE test_01;

把t_student表删除
DROP TABLE t_student;
把test_01数据库删除
DROP DATABASE test_01;
把 test01用户删除(登录root用户)
DROP USER 'test01'@'localhost'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卑微-程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值