数据库01--sql

137 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第7天

数据库

介绍

数据的仓库(集散地)--database

为什么要使用数据库呢?

  • 实现数据持久化(将数据从内存转移到能够长久保存数据的存储介质的过程)
  • 主要是可以实现数据的管理

数据库的分类

  1. 关系型数据库(SQL)
  • 理论基础:关系代数和集合论

  • 具体表象:用二维来保存数据(学生表)

    • 行:一条记录(一个学生的信息)
    • 列:一个字段(学生的某个属性,例如:学号,出生日期,姓名)
    • 主键列:能够唯一标识一条记录的列(例如:学生学号)
  • 编程语言:SQL(结构化查询语言)

    • DDL (数据定义语言)
    • DML(数据操作语言)
    • DCL(数据控制语言)
    • DQL(数据查询语言)
  • 关系型数据库产品

  • 商业版数据库

    • Oracle(甲骨文)
    • DB2(IBM)
    • SQLServer(Microsoft)
  • 开源版数据库

    • MySQL
    • PostgreSQL
    • SQLite
  1. 非关系型数据库(NoSQL)

mysql(mariadb分支)

基础命令

启动服务

systemctl start mariadb

检查服务状态

systemctl status mariadb

image-20220606202047357.png

登录超级管理员进入数据库

mysql -u root -p密码
  • 注意这里的密码可以等你按完回车以后再输入也可以

查看数据库的版本

select version();

image-20220606202426318.png

查看都有哪些数据库或者看数据库里有哪些表

show databases;
show tables;

image-20220606202532567.png

  • 除了test其他三个数据库不能动

进入数据库

use 数据库名;

DDL(数据定义语言)

create(创建)

创建数据库和建表

-- 创建数据库
create database 数据库的名称;
-- 创建并指定数据库的字符集为utf-8
create database 数据库名称 default charset utf8; 
-- 创建表(以学生表为例)
create table tb_student
(
-- 学生id 必填    
student_id int not null comment '学号',
-- 学生姓名20个字符,必填    
student_name varchar(20) not null comment '姓名',
-- 学生性别,初始值为1
student_sex bit default 1 comment '性别',
-- 学生日期
student_birth date comment '日期',
-- 学生id是主键列       
primary key(student_id)   
);
  • 注意如果不指定字符集的话存入数据库的汉字可能会乱码

  • utf8mb4可以存储汉字的同时存储emoji图片字符

  • ;或者\g都是可以作为命令的结尾

  • 也可以以comment做注释

drop(丢弃)

删除数据库和删除表

drop database 数据库名;
  • 删库必须谨慎
drop database if exists 数据库名;
  • 加一层判断数据库是否存在来删库
drop table 表名;
drop table if exists 表名; 

alter(修改)

  • 添加表的元素
alter table 表名 add column 属性 数据类型
alter table tb_studnet add column student_address varchar(255)
  • add column 添加列
  • 删除表的元素
alter table 表名 add column 属性
alter table tb_studnet drop column student_address
  • 修改表的元素
alter table 表名 change colum 属性 修改的数据类型
alter table tb_studnet add column student_address varchar(500)