• MySQL01


    目录

    一,用户的管理

    二,建表建库

    三,面试题


    一,用户的管理

    创建用户:

    命令:create user 用户名

     设置用户密码:

    命令:ALTER USER 用户 IDENTIFIED WITH mysql_native_password BY '密码'

     登陆新创建的用户:

    创建的新用户连接成功

     

    赋予权限:

    grant ALL on 数据库名.* to zs@'%'   给 zs用户  赋予  数据库中所有表  所有权限

    权限成功 

     

     相关操作:

    设置权限(Grant)
    #语法:grant privileges on databasename.tablename to username@'host';
    #给 zs用户 赋予 数据库db_xiaoli中的表t_p1_user 查询权限
    grant SELECT on db_xiaoli.t_p1_user to zs@'%';
    #给 zs用户 赋予 数据库db_xiaoli中的表t_p1_user 修改权限
    grant UPDATE on db_xiaoli.t_p1_user to zs@'%';
    #给 zs用户 赋予 数据库db_xiaoli中所有表 查询权限
    grant SELECT on db_xiaoli.* to zs@'%';
    #给 zs用户 赋予 数据库db_xiaoli中所有表 所有权限
    grant ALL on db_xiaoli.* to zs@'%';

    查看所有权限:

    命令:show grants for 用户名;
    show grants for 'zs'@'%'

     

     撤销权限:(赋予了全部权限不能只撤回一个权限,要全部撤回再重新赋权)

    命令:revoke all on t280.* from zs@'%';

     相关代码:

    撤销权限(Revoke)
    #语法:revoke privileges on databasename.tablename from username@'host';
    #啥也不能回收,不会对GRANT ALL PRIVILEGES ON `db_xiaoli`.* TO `zs`@`%`有任何影响
    revoke DELETE on db_xiaoli.t_p1_user from zs@'%';
    #可以回收GRANT SELECT, UPDATE ON `db_xiaoli`.`t_p1_user` TO `zs`@`%`这条权限语句
    revoke all on db_xiaoli.t_p1_user from zs@'%';
    #可以回收GRANT ALL PRIVILEGES ON `db_xiaoli`.* TO `zs`@`%`这条赋权语句带来的权限
    revoke all on db_xiaoli.* from zs@'%';
    #注:revoke只能回收grants列表中更小的权限;

    二,建表建库

    新建连接:

    1.手动建库

    点击-------->MySQL

     

     输入相关信息:

    连接成功:

    新建数据库:

     输入相关内容:

    新建成功:

     

    2.脚本建库:

    相关内容:

    1.MySQL默认数据库介绍
    1)information_schema:是一个信息数据库,它保存着关于MySQL服务器所维护的所有其他数据库的信息;
    2)mysql:核心数据库,类似于sql server中的master表,主要负责存储数据库的用户、权限设置、关键字等mysql自己需要使用的控制和管理信息;
    3)test:测试数据库,没有东西;

    2.创建数据库
    语法:create database 数据库名;
    或者
    create database if not exists 数据库名 default charset utf8 collate utf8_general_ci;

    注:默认的数据库编码集:utf8(即UTF-8),collate表示排序规则为utf8_general_ci

    3.查看所有数据库
    语法:show databases;

    4.删除数据库(慎用)
    语法:drop database 数据库名;

     建表:

     

    进行相关操作就可以了: 

    1.手动建表

     2.脚本代码:

     相关代码:

    MySQL中定义数据字段的类型对你数据库的优化是非常重要的。
    MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。
    1)字符类型:char varchar text blob
    2)数值类型:int bigint float decimal
    int -> int
    bigint -> long
    float -> 成绩
    decimal -> 货币类型(精度,小数)

    3)日期类型:date time datetime timestamp

    date -> yyyy:MM:dd HH:mm:ss
    time -> HH:mm:ss
    datetime -> yyyy:MM:dd
    timestamp(时间戳) -> 长整数

    三,面试题

     创表:

    1. 创建用户表
    2. CREATE TABLE tb_user(
    3. user_id VARCHAR(20) not null,
    4. order_time datetime not null,
    5. order_category VARCHAR(50) not null,
    6. order_atm FLOAT not null,
    7. shop_id VARCHAR(20) not null
    8. )
    9. insert into tb_user VALUES('A123','2018-01-01 12:34:00','麻辣烫',25.30,'ZL123' );
    10. insert into tb_user VALUES('A123','2018-01-06 19:20:00','粥',34.20,'SM456' );
    11. insert into tb_user VALUES('B456','2018-01-15 15:30:00','麻辣烫',22.30,'ZL123' );
    12. insert into tb_user VALUES('B456','2018-01-25 20:30:00','汉堡',19.50,'HBW123' );
    13. insert into tb_user VALUES('C789','2018-02-01 22:15:00','小龙虾',60.40,'XM456' );
    14. select * from tb_user
    15. 创建商品BD表
    16. create table tb_shop(
    17. shop_id VARCHAR(10) not null,
    18. bd_name VARCHAR(10),
    19. bd_team VARCHAR(20),
    20. start_time date,
    21. end_time date
    22. )
    23. insert into tb_shop VALUES('ZL123','小明','销售A组','2018-01-01','2018-01-14' );
    24. insert into tb_shop VALUES('ZL123','小张','销售B组','2018-01-01','2099-12-31' );
    25. insert into tb_shop VALUES('SM456','小张','销售B组','2016-01-01','2019-01-01' );
    26. insert into tb_shop VALUES('HBW123','小李','销售C组','2015-01-01','2020-12-31' );
    27. insert into tb_shop VALUES('XM456','小李','销售C组','2015-01-01','2016-01-01' );
    28. select * from tb_shop

    题目:
    1.1月份每笔消费均大于20元的用户的总消费
    2.1月份只吃了麻辣烫和汉堡的人数
    3.计算每一个BD_TEAM的BD对应门店的销售额

    1月份每笔消费均大于20元的用户的总消费

    select user_id,sum(order_atm) from(
    select * from tb_user where order_time like '%-01-%' and order_atm>=20
    )a GROUP BY user_id

    效果:

     

     1月份只吃了麻辣烫和汉堡的人数

    select count(*) from (
    select count(*) from (
    select * from(
    select * from tb_user where order_time like '%-01-%'  
    ) c where order_category ='麻辣烫' or order_category ='汉堡'
    ) d GROUP BY user_id HAVING count(*)=2
    ) e

    效果:

     计算每一个BD_TEAM的BD对应门店的销售额

    select sum(b.order_atm) from tb_shop a,tb_user b where a.shop_id=b.shop_id GROUP BY a.bd_team

    效果:

     

     

  • 相关阅读:
    【Matplotlib绘制图像大全】(七):Matplotlib使用xlim()和ylim()修改轴线刻度
    结构型模式-代理模式
    介绍ClickHouse重要特性——系统表
    【期末大作业】基于HTML+CSS+JavaScript南京大学网页校园教育网站html模板(3页)
    单片机第三季-第三课:STM32开发板原理图、配置、浮点运算单元
    Nodejs -- 前后端身份认证概念及在Express中使用认证(Session,Cookie,JWT)
    确定了,2022下半年软考报名8月开始
    炒期权的资金门槛是多少 ?
    Linux命令汇总
    有一个企微运营机器人同事是一种什么体验?
  • 原文地址:https://blog.csdn.net/weixin_67338832/article/details/125551666