MySql01

1 数据库

在这里插入图片描述

1.1 概述

  • 数据存储

    • 文件管理阶段
      • 优点 : 数据可以长期保存,可以存储大量的数据,使用简单。
      • 缺点 : 数据一致性差,数据查找修改不方便,数据冗余度可能比较大。
    • 数据库管理阶段
      • 优点 : 数据组织结构化降低了冗余度,提高了增删改查的效率,容易扩展,方便程序调用处理
      • 缺点 : 需要使用sql 或者其他特定的语句,相对比较专业
  • 数据库应用领域

    数据库的应用领域几乎涉及到了需要数据管理的方方面面,金融机构、游戏网站、购物网站、论坛网站 … …都需要数据库进行数据存储管理。

1.2 基本概念

  • 数据库 Database

    按照数据特定的结构,存储管理数据的仓库。

  • 数据库管理系统 DBMS

    一套独立可运行的管理数据库的软件,用于维护磁盘上的数据;维护性好,性能好,可扩展性强。

    在这里插入图片描述

  • 关系型数据库和非关系型数据库

    • 关系型数据库

      采用关系模型(行列构成的二维表)来组织操作呈现数据的数据库,也称为SQL数据库。

      比如: MySQL、MariaDB、Oracle、SQL Server 等。

    • 非关系型数据库

      没有固定的表结构和关系模型,数据通常以键值对的形式存储,也被称为NoSQL数据库。

      比如:MongoDB、Redis等。

1.3 关于MariaDB

MariaDB是关系型数据库,由MySQL的原创开发者在MySQL被甲骨文公司收购后创建的。

MariaDB的目标是成为MySQL的替代品,因此它与MySQL具有很高的兼容性。

  • 特点

    • 开源

    • 跨平台(Windows、Linux、Mac)

    • 提供众多语言的API:C、C++、Python、Java、Perl、PHP、Ruby等

    • 运行速度快

  • 安装

    详见 MariaDB安装文档

1.4 数据库管理系统常见概念

DBMS - 库 - 表 - 表记录

1)关系说明

在DBMS数据库管理系统中,可以根据不同的项目创建多个库,在每个库中可以根据项目需求创建不同的数据表,数据表中存放的是具体的数据。

在这里插入图片描述

2)库 database

是表的集合,一个库中可以存放若干张表,通常库服务于项目。

3)表 table

是数据的集合,具有一组相同属性的数据存放在同一张表中。

行(row):称为是 记录,表中每一条数据

列(column):称为是 字段,每一条记录的属性

在这里插入图片描述

1.5 SQL语言

1)数据库角色

数据库是一个独立运行的软件,并且是以 服务端 的形式体现的,我们要操作数据库则需要以客户端的角度与服务端建立连接并进行相关的操作。

2)SQL语言

我们连接上数据库后,向其发送 SQL 语句,数据库理解该SQL语句的含义并执行相关操作并回馈结果。

  • 什么是SQL语言

    结构化查询语言(Structured Query Language),是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库。

  • SQL语言特点

    • SQL语言基本上独立于数据库本身
    • 各种不同的数据库对SQL语言的支持与标准存在着细微的不同
    • 每条命令最好以 ; 结尾
    • SQL语句不区分大小写,但是好的书写习惯:关键字大写,非关键字小写
3)SQL分类
  • DDL:数据定义语言,是操作数据库对象的语言。数据库对象(库,表,视图,索引,序列)

  • DML:数据操作语言,是操作表中数据的语言。对表中数据操作的语言(增INSERT,删DELETE,改UPDATE)

  • DQL:数据查询语言,是查询表中数据的语言。SELECT语句(学习的重点和难点)

  • DCL:数据控制语言,管理数据库的语言(权限分配等,DBA关心的)

  • TCL:事务控制语言,事务控制语言。

1.6 数据库的连接方式

1)常用的客户端
  • 命令行( Windows+R ->cmd )
  • 图形化界面 (HS,Navicat, SQLYog, DBeaver)
  • JDBC
  • 集成开发环境(IDE)
    在这里插入图片描述
2)IDEA连接MariaDB数据库

第1步:点击idea窗口右侧 Database,在 Data Source 中选择 MySQL

在这里插入图片描述

第2步:填写连接名称Name 或 描述Comment,输入用户名和密码都为root,首次连接需要下载驱动,点击 Download

在这里插入图片描述

第3步:输入SQL语句,选中后,可以点击左上方 绿色箭头 执行SQL语句

在这里插入图片描述

2 DDL数据定义语言

对数据库对象进行操作的语言,涉及到的关键字CREATE、ALTER、DROP等

2.1 数据库管理

1)DDL指令
  1. 查看已有库

    SHOW DATABASES;
    
  2. 创建库

    CREATE DATABASE 数据库名 [CHARSET=字符集];
    
    eg1. 创建数据库mydb
    CREATE DATABASE mydb;
    
    eg2. 创建数据库mydb1,指定字符集为UTF8
    CREATE DATABASE mydb1 CHARSET=UTF8;
    
    eg3. 创建数据库mydb2,指定字符集为GBK
    CREATE DATABASE mydb2 CHARSET=GBK;
    

    注意:数据库中标识符命名规则

    1. 数字、字母、下划线,但不要使用数字开头
    2. 尽量不要使用特殊字符和mysql关键字
    3. 多个单词使用下划线连接,尽量见名知意
  3. 查看创建数据库时的信息

    SHOW CREATE DATABASE 数据库名;
    
    eg. SHOW CREATE DATABASE mydb;
    
  4. 切换库

    USE 库名;
    
    eg. 切换到数据库mydb
    USE mydb;
    
  5. 删除库

    DROP DATABASE 库名;
    
    eg. 删除mydb库
    DROP DATABASE mydb;
    
2)课堂练习
  1. 创建 db1和db2 数据库 字符集分别为utf8和gbk
  2. 查询所有数据库检查是否创建成功
  3. 检查两个数据库的字符集是否正确(查看创建时的SQL)
  4. 先使用db2 再使用 db1
  5. 删除这两个数据库
#1. 创建 db1和db2 数据库 字符集分别为utf8和gbk
create database db1 CHARSET=UTF8;
create database db2 CHARSET=GBK;
#2. 查询所有数据库检查是否创建成功
show databases;
#3. 检查两个数据库的字符集是否正确(查看创建时的SQL)
show create database db1;
show create database db2;
#4. 先使用db2 再使用 db1
use db2;
use db1;
#5. 删除这两个数据库
drop database db1;
drop database db2;

2.2 数据表管理

1)DDL指令
  1. 创建表

    CREATE TABLE 表名(
    	字段名1 类型[(长度)] [DEFALUT 默认值] [约束],
        字段名2 类型,
        ...
    )[CHARSET=字符集]
    

    eg.

    # 1.创建库mydb,并切换到该库
    CREATE DATABASE mydb;			# 创建数据库mydb
    USE mydb;						# 切换到mydb,后面创建表都是创建到这个库中
    
    # 2.创建一张表user,保存用户信息(用户名,密码,昵称,年龄)
    CREATE TABLE user(
    	id INT,					# 整型
        username VARCHAR(32),   # 字符类型,长度为最大字符数,即不能超过32个字符
        password VARCHAR(32),   # 字符类型,字符长度最大不能超过32个
        nickname VARCHAR(32),
        age INT                 # 整型
    )
    
  2. 查看当前库中所有数据表

    SHOW TABLES;
    
  3. 查看表结构

    DESC 表名;
    
    eg. 查看user表的表结构
    DESC user;
    
  4. 查看数据表创建信息

    SHOW CREATE TABLE 表名;
    
    eg. 查看user表的创建信息[字符编码]
    SHOW CREATE TABLE user;
    
  5. 修改表名

    RENAME TABLE 原表名 TO 新表名;
    
    eg. 将user表重命名为 userinfo 表
    RENAME TABLE user TO userinfo
    
  6. 删除表

    DROP TABLE 表名;
    
    eg. 删除user表
    DROP TABLE user;
    
2)课堂练习
  1. 创建数据库mydb3 字符集utf8 并使用
  2. 创建t_hero英雄表, 有名字和年龄字段
  3. 修改表名为hero
  4. 查看表hero的信息
  5. 查询表hero结构
  6. 删除表hero
  7. 删除数据库mydb3
#1. 创建数据库mydb3 字符集utf8 并使用
create database mydb3 charset=utf8;
use mydb3;
#2. 创建t_hero英雄表, 有名字和年龄字段
create table t_hero(
	name varchar(32),
	age int
);
#3. 修改表名为hero
rename table t_hero to hero;
show tables;
#4. 查看表hero的信息
show create table hero;
#5. 查询表hero结构
desc hero;
#6. 删除表hero
drop table hero;
#7. 删除数据库mydb3
drop database mydb3;

  • 30
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值