美文网首页
day16 - MySQL数据库

day16 - MySQL数据库

作者: Gary134 | 来源:发表于2018-12-24 20:31 被阅读0次

    数据库 - 实现项目中的数据持久化

    数据库的类别:

    • 关系型数据库 - MySQL
      特点:
    1. 理论基础:集合论和关系代数
    2. 用二维表来组织数据(行(记录)和列(字段))
    • 能够唯一标识一条记录的列称为主键(primary key)
    1. SQL - 结构化查询语言
    • DDL - 数据定义语言 - create / drop / alter
    • DML - 数据操作语言 - insert / delete / update / select
    • DCL - 数据控制语言 - grant / revoke / commit / rollback

    关系型数据库产品:

    1. Oracle - 甲骨文
    2. MySQL - 甲骨文 - MariaDB
    3. DB2、SQLServer、PostgreSQL、SQLite
    • NoSQL数据库 - Redis
    1. MongoDB - 文档数据库 - 适合量大但是价值低的数据
    2. Redis - KV数据库 - 性能好适合做高速缓存服务
    3. ElasticSearch - 搜索引擎
    • Linux安装软件
    1. 包管理工具 - yum / rpm

    Docker - 提供虚拟化服务,创建虚拟化容器并安装软件
    yum -y install docker-io
    yum -y remove docker-io
    yum info ...
    yum search ...
    yum list installed | grep docker

    启动Docker服务
    systemctl start docker
    systemctl stop docker
    systemctl restart docker
    systemctl status docker
    systemctl enable docker
    systemctl disable docker

    使用Docker的命令

    1. 查看已经下载的镜像文件(安装包):
    docker images
    
    1. 下载MySQL的镜像文件:
    docker pull mysql:5.7
    

    MySQL数据库超级管理员账号 - root

    1. 创建并运行容器:
    docker run -d -p 3306:3306 --name mysql57 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
    
    1. 查看运行中的容器:
    docker ps
    
    1. 查看所有的容器:
    docker container ls -a
    
    1. 停止容器
      docker stop mysql57

    2. 启动容器

    docker start mysql57
    
    1. 删除容器
    docker rm -f mysql57
    

    安装MySQL客户端工具:
    Navicat for MySQL - 猫
    SQLyog - 海豚
    Toad for MySQL - 蛤蟆

    -- SQL - 结构化查询语言
    -- DDL - 数据定义语言 - create / drop / alter
    -- DML - 数据操作语言 - insert / delete / update / select
    -- DCL - 数据控制语言 - grant / revoke

    -- 如果存在名为srs的数据库就删除它(慎重)

    drop database if exists srs;
    

    -- latin1 - iso-8859-1
    -- ASCII / Unicode
    -- 创建名为srs的数据库并设置默认字符集为utf8

    create database srs default charset utf8;
    

    -- 切换到srs数据库

    use srs;
    

    -- 如果存在名为tb_student的表就删除

    drop table if exists tb_student;
    

    -- 创建学生表tb_student

    create table tb_student
    (
    stuid int not null comment '学号',
    stuname varchar(10) not null comment '姓名',
    stusex bit default 1 comment '性别',
    stubirth date comment '出生日期',
    stuaddr varchar(255) comment '家庭住址',
    primary key (stuid)
    );
    

    -- Error: Duplicated Entry
    -- crash course
    -- best practice

    -- 修改学生表添加联系方式列

    alter table tb_student add column stutel char(11);
    

    -- 修改学生表删除联系方式列

    alter table tb_student drop column stutel;
    

    -- 向学生表插入数据

    insert into tb_student values 
    (1001, '骆昊', 1, '1980-11-28', '四川成都');
    -- 插入部分字段
    insert into tb_student (stuid, stuname) values 
    (1002, '王大锤');
    -- 插入多条记录
    insert into tb_student values 
    (1003, '白元芳', 1, '1988-5-5', null),
    (1004, '白洁', 0, null, null),
    (1005, '狄仁杰', default, '1992-3-8', '四川成都');
    

    -- 截断表

    -- truncate table tb_student;
    
    -- 删除学号为1002的学生
    delete from tb_student where stuid=1002;
    
    -- 删除学号在1003到1005之间的学生
    delete from tb_student where stuid>=1003 and stuid<=1005;
    delete from tb_student where stuid in (1003, 1004, 1005);
    delete from tb_student where stuid between 1003 and 1005;
    
    -- 更新学号为1002和1004的两个学生的生日
    update tb_student set stubirth='1990-1-1' 
    where stuid=1002 or stuid=1004;
    
    -- 更新学号为1002的学生的姓名、性别和家庭住址
    update tb_student set stuname='王小美', stusex=0, stuaddr='四川自贡' where stuid=1002;
    
    -- 更新家庭住址为null的学生的家庭住址
    update tb_student set stuaddr='四川绵阳' 
    where stuaddr is null; 
    
    -- 查询学生表的所有行所有列
    select * from tb_student;
    
    -- 筛选:查询女学生
    select * from tb_student where stusex=0;
    
    -- 投影:查询所有学生的姓名和生日
    select stuname, stubirth from tb_student;
    
    -- 查询女学生的姓名和生日
    select stuname, stubirth from tb_student where stusex=0;
    

    相关文章

      网友评论

          本文标题:day16 - MySQL数据库

          本文链接:https://www.haomeiwen.com/subject/sfltlqtx.html