0
点赞
收藏
分享

微信扫一扫

数据表的高级操作

Java架构领域 2022-06-15 阅读 80

1.创建表检查是否存在

create table if not exists love(id int(4) zerofill primary key auto_increment,name varchar(10) not null, cardid int(18) not null unique key,hobby varchar(50));;  

#if not exists:表示检测要创建的表是否已存在,如果不存在就继续创建

#int(4) zerofill:表示若数值不满4位数,则前面用"o"填充,例0001

#auto_increment:表示此字段为自增长字段,即每条记录自动递增1,默认从1开始递增;自增长字段数据不可以重复;自增长字段必须是主键;如添加的记录数据没有指定此宁段的值且添加失败也会自动递增一次

#unique

key:表示此字段唯一键约束,此字段数据不可以重复:一张表中只能有一个主键,但是一张表中可以有多个唯一键

#not null:表示此字段不允许为NULL

数据表的高级操作_mysql

数据表的高级操作_mysql_02

数据表的高级操作_数据库_03

2.克隆表

create table love2 like love;

#复制格式,通过LIKE方法,复制love表结构生成love2表

数据表的高级操作_mysql_04

2.1备份内容

insert into love2 select * from love;

数据表的高级操作_字段_05

2.2克隆表中的记录生成新表

克隆表,将数据表的数据记录生成到新的表中

CREATE TABLE love0615 (SELECT * from love);       #复制love表数据到love0615中

show create table test02\G                                 #获取数据表的表结构、索引等信息

SELECT * from love0615;

数据表的高级操作_字段_06

数据表的高级操作_字段_07

数据表的高级操作_数据库_08

3.数据库用户管理

3.1新建用户

CREATE USER '用户名'@'来源地址′[IDENTIFIED BY〔PASSWORD] '密码';

  • 用户名:指定将创建的用户名.
  • 来源地址:指定新创建的用户可在哪些主机上登录,可使用IP地址、网段、主机名的形式,本地用户可用localhost,允许任意主机登录可用通配符%
  • '密码':若使用明文密码,直接输入'密码',插入到数据库时由Mysql自动加密;若使用加密密码,需要先使用SELECT
  • PASSWORD ('密码');获取密文,再在语句中添PASSWORD '密文';若省略"IDENTIFIED BY"部分,则用户的密码将为空(不建议使用)

CREATE USER 'user1'@'localhost' IDENTIFIED BY '123456';

数据表的高级操作_数据库_09

3.2查看用户信息

创建后的用户保存在mysql数据库的user表里

USE mysql;

select * from user where user='111'\G

数据表的高级操作_数据库_10

SELECT User,authentication_string,Host from user;

数据表的高级操作_mysql_11

3.3重命名指定

RENAME USER '111'@ ' localhost'TO 'lisa'@' localhost ';

数据表的高级操作_mysql_12

3.4删除用户

DROP USER'lisa'@' localhost' ;

数据表的高级操作_mysql_13

数据表的高级操作_mysql_14

3.5修改当前密码

SET PASSWORD =PASSWORD ('abc123');

数据表的高级操作_mysql_15

3.6修改其他用户密码

SET PASSWORD FOR '222'@ 'localhost' = PASSWORD ( 'abc123');

数据表的高级操作_数据库_16

3.7忘记root密码的解决办法

修改letc/my.cnf 配置文件,免密登陆mysqlvim /etc/my.cnf

[mysqld]

skip-grant-tables#添加,使登录mysql不使用授权表

systemctl restart mysqld

mysql

#直接登录

然后使用soL语句修改密码

UPDATE mysql.user SET AUTHENTICATION_STRING = PASSWORD ( ' abc123') whereuser=' root' ;

4.数据库用户授权

4.1授予权限  grant提权

GRANT权限列表 ON数据库名.表名 TO '用户名'@'来源地址′[IDENTIFIED BY'密码'];

  1. #权限列表:用于列出授权使用的各种数据库操作,以逗号进行分隔,如"select,insert,update"使用"all"表示所有权限,可授权执行任何操作。
  2. #数据库名.表名:用于指定授权操作的数据库和表的名称,其中可以使用通配符"*例如,使用"kgc.*"表示授权操作的对象为school数据库中的所有表。
  3. #'用户名@来源地址':用于指定用户名称和允许访问的客户机地址,即谁能连接、能从哪里连接。来源地址可以是域名、IP地址,还可以使用"%通配符,表示某个区域或网段内的所有地址,如"%.xyw.com"、“192.168.80.%"等。
  4. #IDENTIFIED BY:用于设置用户连接数据库时所使用的密码字符串。在新建用户时,若省略"工DENTIFIED BY"部分,则用户的密码将为空。
  5. #允许用户zhangsan在本地查询school数据库中所有表的数据记录,但禁止查询其他数据库中的表的记录。

数据表的高级操作_数据库_17

4.2测试

登录并查看库

mysql -u yr -p 123;

show databases;

use mysql;

show tables;


数据表的高级操作_字段_18

数据表的高级操作_mysql_19

数据表的高级操作_数据库_20

4.3撤销权限

数据表的高级操作_mysql_21





举报

相关推荐

0 条评论