• Day30_8 Java学习之MySQL数据库、DML与DCL语言操作


    目录

    一、DML语言

    DML语言概述

     DM常用操作

    二、DCL语言

    DCL语言的概述

    DCL语言的常用操作 


    一、DML语言

    • DML语言概述

    解析:

    1.DML(Data Manipulation Language):作用:数据操作语言,用来定义数据库记录(就是我们常说的数据库数据);

    •  DM常用操作

    1.插入表数据 

    语法格式:

    1.1插入指定列语法:

    INSERT INTO 表名(列名1,列名2, …) VALUES(值1, 值2);

    注意:其中的列名所代表的属性要和插入的值的数据类型一致,否则插入失败。

    1.2 插入全部列语法:

    INSERT INTO 表名 VALUES(值1,值2,…)

    注意:因为没有指定要插入的列,表示按创建表时列的顺序插入所有列的值

    使用演示:

    -- 插入表数据

    INSERT INTO goods VALUES('g_1001','相机',9999.0,'数码');
    INSERT INTO goods VALUES('g_1002','洗衣机',5000.0,'电器');
    INSERT INTO goods VALUES('g_1003','冰箱',6000.0,'电器');
    INSERT INTO goods VALUES('g_1004','液晶电视',3300.0,'电器');
    INSERT INTO goods VALUES('g_1005','白床单',26.0,'居家');
    INSERT INTO goods VALUES('g_1006','电脑',7000.0,'数码');

    运行结果: 这是我插入之后查询全表数据的结果

     2.修改表数据

    语法格式:

    UPDATE 表名 SET 列名1=值1, … 列名n=值n [WHERE 条件]

    注意:[WHERE 条件]表示所修改某一行,若不规定则默认修改表的所有行数据。

     使用演示:

    -- 修改表的数据 修改多个值之间使用逗号相隔
    update goods set name = '华为电脑',store = 8999.0 where id = 'g_1006';

    运行结果:  

    3.删除表数据

     语法格式一:

    DELETE FROM 表名 [WHERE 条件]

    -- 删除表数据 按照所给条件删除 一下干掉一行表记录

    delete from goods where id = 'g_1007';

    --删除该表所有数据  慎用
    DELETE FROM goods;

    语法格式二:新手慎用慎用

    TRUNCATE TABLE 表名  [WHERE 条件]

    -- 删除该表所有数据 无法回滚

    TRUNCATE FROM goods;

    注意:使用方式二进行删除操作无法进行数据回滚,也就说没有找回表数据的可能。但是DELETE的效率没有TRUNCATE高!

    使用演示:

    -- 删除表数据 按照所给条件删除 一下干掉一行表记录

    delete from goods where id = 'g_1007';

    运行结果:

    执行语句之前:

     

    执行语句之后:

     

    使用注意:1.上述操作都是在已经创建好表的基础上进行的,2.所有字符串数据必须使用单引用!  

    二、DCL语言

    • DCL语言的概述

    解析:

    1.DCL英文全称是Data Control Language(数据控制语言),用来管理数据库用户、控制数据库的访问权限。

    • DCL语言的常用操作 

    1.查询用户

    语法格式:

    -- 表示查询mysql数据库下的user用户表

    select * from mysql.user; 

    运行结果:

    2.创建用户

    语法格式:

    CREATE USER 用户名@地址 IDENTIFIED BY '密码';

    --user1用户只能在localhost这个IP登录mysql服务器
    CREATE USER user1@localhost IDENTIFIED BY '123';

    --user2用户可以在任何电脑上登录mysql服务器
    CREATE USER user2@'%' IDENTIFIED BY '123';

    注意:%符号在mysql中表示统配的意思。

     使用演示:

    -- 创建用户
    create user user1@'%' identified by '123456';

    运行结果: 下图是查询所有用户的结果,可知已经创建成功

    3.给用户授予权限

    3.1、权限关键词代表如下:

    注意:上述只是简单罗列了常见的几种权限描述,其他权限描述及含义,可以直接参考官方文档  

    3.2、语法格式 

     GRANT 权限1, … , 权限n ON 数据库.* TO 用户名;

    -- 给用户授予权限
    grant create,delete,drop on mydb111.* to user1@'%';

    上述运行结果:由下图可见授予成功 

     4.查看用户授权

    语法格式:

    SHOW GRANTS FOR 用户名;
    -- 查看用户权限
    show grants for user1@'%';

    上述的结果就是查询后的结果,这里就不在演示了。

    5.撤销授权

    语法格式:

    REVOKE权限1, … , 权限n ON 数据库.* FORM 用户名; 

    -- 撤销用户权限
    revoke create,delete,drop on mydb111.* from user1@'%';

    运行结果: 由下图可见,撤销授权运行成功

    6.删除用户

    语法格式:

    DROP USER 用户名;

    -- 删除用户
    drop user user1@'%';

    演示结果:由结果可知删除成功

     

     7.修改用户密码

    语法格式一:作用设置当前登录用户的密码

    USE mysql;
    UPDATE USER SET authentication_string=PASSWORD('密码') WHERE User='用户名' and Host='IP';
    FLUSH PRIVILEGES;

    -- 修改用户密码
    UPDATE mysql.USER SET authentication_string=PASSWORD('1234') WHERE USER='user1' AND HOST='%';

    FLUSH PRIVILEGES;

    语法格式二:作用设置任意用户的密码

    SET PASSWORD FOR '用户名'@'限制登录地址' = PASSWORD('新密码');

    -- 修改任意状态用户密码
    SET PASSWORD FOR 'user1'@'%' = PASSWORD('1234');

    注意:记得属性权限。

    运行结果:先修改然后使用dos窗口验证,得如下结果为修改成功。

     

     

     

  • 相关阅读:
    WPF程序打包
    MySQL:查询时进行时间比较
    差分进化算法解析:Scala实现详细指南及其在优化问题中的应用
    AQS的简单说明
    GIT使用学习笔记 远程仓库篇
    计算机毕设(附源码)JAVA-SSM基于的社区疫情管理系统
    git diff 操作
    java计算机毕业设计快滴预约平台源码+mysql数据库+系统+lw文档+部署
    Volatile和CAS
    潮玩宇宙源码开发:开启全新的数字潮流时代
  • 原文地址:https://blog.csdn.net/weixin_43717536/article/details/126607387