• MySQL数据库基础01


    day01-数据库基础

    一、MySQL回顾

    MySQL介绍

    MySQL是一款Oracle公司出口的轻量级数据库软件,广泛应用于互联网场景,同时也是目前最主流的数据库。

    MySQL的优点

    MySQL相对于文件系统,优点如下:

    1.mysql的结构相对于文件系统更方便管理

    2.mysql支持各种编程语言

    3.mysql比文件系统支持更大规模的数据

    4.mysql更具备扩展性

    5.mysql数据能更快检索

    6.mysql支持分布式

    MySQL的下载与安装

    MySQL可视化工具:navicat,sqlyog

    SQL分类

    DDL:数据库定义语句,用于数据库,表,列的管理,create,drop,alter

    DML:数据库表中的CUD,表数据的增删改,insert,update,delete

    DQL:表数据的查询:select

    DCL:权限控制

    TCL:事务控制

    CCL:指针控制,指针管理

    二、MySQL

    软件:mysql是数据库软件

    数据库:仓库,是一个数据仓库(数据库管理系统)。通常一个项目对应了一个数据库

    数据表:一个数据库中有无数张表,表中存放了数据

    列:数据表的表头, 表头由一列列组成

    用户管理(DDL)

    -- 用户管理
    -- SELECT 列名,列名,... from mysql.user;
    SELECT host,user FROM mysql.user;
    ​
    -- 创建用户
    -- host表示允许哪些ip地址能访问 改成%就是所有人都能连接
    -- CREATE user '用户名'@'ip地址' IDENTIFIED BY '密码';
    CREATE user 'zs' @ 'localhost' IDENTIFIED BY '123';
    ​
    -- 修改密码
    alter user 'zs' @ 'localhost' IDENTIFIED BY '456';

    权限操作(DCL)

    -- 权限管理
        -- 用户授权
        -- grant 权限码 on 数据库名.表名 to 用户名@主机名 identified by 'password';
        grant all on *.* to 'zs'@'localhost';
    ​
    -- 查看用户权限
    -- show grants for 用户名@主机名;
    show grants for 'zs' @ 'localhost';
    ​
    -- 取消用户权限
    -- REVOKE 权限码 ON 库名.表名 FROM 用户名@主机名
    REVOKE all on *.* FROM 'zs' @ 'localhost';
    ​
    -- 刷新权限
    FLUSH PRIVILEGES;

    数据库操作(DDL)

    -- 创建数据库
    -- create database 数据库名称; -- 直接创建
    -- create database if not exists 数据库名称; -- 如果不存在
    -- create database if not exists 数据库名称 character set 编码; --创建并指定编码
    ​
    -- CREATE DATABASE db2;
    -- CREATE DATABASE IF NOT EXISTS db2;
    CREATE DATABASE IF NOT EXISTS db2 CHARACTER SET 'utf8'; -- 推荐
    ​
    ​
    -- 查看当前所有数据库
    -- show DATABASES;
    ​
    -- 查看数据库定义语句
    SHOW CREATE DATABASE db2;
    ​
    -- 修改数据库字符集
    -- ALTER DATABASE 数据库名 DEFAULT CHARACTER SET 字符集
    ALTER DATABASE db2 DEFAULT CHARACTER SET 'utf8';
    ​
    -- 使用数据库(一般用于命令行下使用)
    use db1;
    select * from tb_user;

    数据表的操作

    -- 创建数据库
    create DATABASE db1 CHARACTER SET 'utf8';
    ​
    -- 使用数据库
    use db1;
    ​
    -- 创建用户表
    -- CREATE TABLE 表名(
    --  字段名 字段类型(长度),
            ...
    -- )ENGINE = INNODB 代表数据库引擎,不同引擎有不同的效果,默认是innodb,innodb是一个支持事务的数据库引擎
    -- 
    CREATE TABLE if not EXISTS t_user(
        name VARCHAR(255),
        sex VARCHAR(255),
        age INT(3)
    ) ENGINE = INNODB DEFAULT CHARSET 'utf8';
    ​
    -- 快速创建一张表结构一样的表
    -- CREATE TABLE 新表名 LIKE 旧表名
    CREATE TABLE t_user2 LIKE t_user1;
    ​
    -- 查看表
    --      1.查看当前数据库下有哪些表
                show TABLES;
                
    --          2.查看表的结构
                DESC t_user;
                
    --          3.查看建表语句
                SHOW CREATE TABLE t_user;
                
    -- 删除表
    DROP TABLE t_user;
    ​
    -- 修改表
    -- 1.添加列
    -- ALTER TABLE 表名 add 列名 类型
            ALTER TABLE t_user ADD address VARCHAR(255);
    ​
    -- 2.修改列类型
    -- ALTER TABLE 表名 MODIFY 列名 新的数据类型
        ALTER TABLE t_user MODIFY sex char(2);
    ​
    -- 3.修改列名
    -- ALTER TABLE 表名 CHANGE 旧列名 新列名 类型;
    ALTER TABLE t_user CHANGE name username VARCHAR(255);
    ​
    -- 4.删除列
    -- ALTER TABLE 表名 DROP 列名
    ALTER TABLE t_user DROP address;
    ​
    -- 5.修改表名
    -- RENAME TABLE 表名 to 新表名
    RENAME TABLE t_user to t_user1;
    ​
    -- 6.修改字符集
    -- ALTER TABLE 表名 CHARACTER set 字符集;
    ALTER TABLE t_user1 CHARACTER set 'utf8';
     

    mysql数据类型

    整数:

    int(常用)

    bigint(常用)

    浮点:

    float

    double(常用)

    定点小数:

    decimal

    日期时间:

    datetime(常用)

    date(常用)

    字符:

    char:定长字符串

    varchar:变长字符串(常用)

    longtext:超大文本

    枚举

    set

    CREATE TABLE test(
        d1 int,
        d2 bigint,
        d3 float(4,3),
        d4 double(10,4),
        d5 datetime,
        d6 date,
        d7 char(3),
        d8 VARCHAR(255),
        d9 LONGTEXT
    )ENGINE=INNODB DEFAULT CHARSET 'utf8';

    表数据的CRUD

    -- 向表中添加一行数据
    -- insert into 表名(列名,...) values(值1,值2...);
    insert into t_user1(username,age,sex) VALUES('张三',20,'男');
    ​
    -- 批量操作
    -- insert into 表名(列名,...) values(值1,值2...),(值1,值2...),(值1,值2...)...;
    INSERT INTO t_user1(username,age,sex) VALUES('张三',18,'男'),('张三',18,'男'),('张三',18,'男');
    ​
    insert into t_user1(username) VALUES('张三');
    ​
    -- 删除表中数据
        -- 删除数据
    --  delete from 表名 where 列名=值 and 列名=值 and 列名=值;
        DELETE FROM t_user1 WHERE age = 18;
    ​
    -- 修改表中数据
    --      update 表名 set 列名=值 , 列名 = 值...
            UPDATE t_user1 set username='李四',sex = '男' WHERE age = 20;
            
    -- 查询表中数据
    --      select 列名,... from 表名 where 列名=值;
            select username,age,sex from t_user1;
            
            select * from t_user1;
  • 相关阅读:
    Pytorch常用api详解
    RMAN-05021
    植物大战僵尸新手攻略(未保存,明天改)
    基于SSM的校园失物招领平台,源码,数据库脚本,项目导入运行视频教程,论文撰写教程
    SAP PA MM 后台配置
    堆的基本操作和PriorityQueue接口
    氨基聚苯乙烯包覆硅胶微球SG-PS-NH2/聚苯乙烯/硫化镉PS/CdS复合材料/聚苯乙烯支载井冈霉素微球制备
    Java EE改Jakarta
    分享一个连接远端计算机与传输文件的脚本
    自动化网络图软件
  • 原文地址:https://blog.csdn.net/qq_60154877/article/details/126240275