0
点赞
收藏
分享

微信扫一扫

[AIGC] MySQL与PostgreSQL事务完整性的对比

目录

前期准备

先登录数据库

一、管理数据库

1.数据表结构解析

2.常用数据类型

3.适用所有类型的修饰符

4.使用数值型的修饰符

二、SQL语句

1.SQL语言分类

三、Mysql——Create,Show,Describe,Drop

1.创建数据库 

2.查看数据库

3.切换数据库

4.创建数据表

5.查看数据表

6.显示表结构

7.删除数据表

8.删除数据库

四、Mysql——INSERT, DELETE, UPDATE,SELECT

1.插入表数据

​编辑

2.查看插入数据

3.修改表数据

4.删除表中数据

五、临时表

1.创建表 

​编辑

2.插入数据(自增长)

​编辑

3.退出数据库

六、清空表,删除表内所有数据

1.delete

2.truncate

3.drop、truncate、delete对比

1.drop

2.truncate

3.delete

4.小结

七、克隆表

方法一:

方法二:

八、修改表名

九、增加字段

十、修改字段名

11、删除字段

12、用户管理

1.使用明文创建用户

2.重命名用户

3.删除用户

4.忘记root密码解决方法

4.1修改配置文件

4.2修改当前root用户密码

5.修改其他用户密码

13、用户授权

1.授权

1.数据库授权

​编辑

1.用qq用户登录

​编辑

2.测试权限 

​编辑

2.远程登录授权

1.没有授权之前

​编辑

2.授权

3.Navicat Premium测试

2.撤销权限

1.查看用户权限

2.撤销权限

3.刷新看一下Navicat Premium

​编辑

3.权限列表


前期准备

  • 先登录数据库

一、管理数据库

1.数据表结构解析

Field字段名称
Type数据类型
Null是否允许为空
Key主键
Default默认值
Extra扩展属性
Id例如:1 3 4

2.常用数据类型

int整型,定义整数类型的数据
float单精度浮点4字节32位;准确表示到小数点后6位
double双精度浮点8字节64位
char固定长度的字符类型
varchar可变长度的字符类型
text文本
image图片
decimal(5,2)5个有效长度数字,小数点后面有2位

3.适用所有类型的修饰符

名称含义
NULL数据列可包含NULL值,默认值
Not  null数据列不允许包含NULL值,*为必填选项
default默认值
primary  key主键,所有记录中此字段的值不能重复,且不能为NULL
unique  key唯一键,所有记录中此字段的值不能重复,但可以为NULL
character  setname指定一个字符集

4.使用数值型的修饰符

名称作用
AUTO_INCREMENT自动递增,适用于整数类型
UNSIGNED无符号

二、SQL语句

1.SQL语言分类

三、Mysql——Create,Show,Describe,Drop

1.创建数据库 

create datadase nj;

2.查看数据库

show databases;

3.切换数据库

use nj;

4.创建数据表

create table k3(id int not null,name char(10) not null,score decimal(4,2),passwd char(40) default'',primary key(id));

5.查看数据表

show tables;

6.显示表结构

describe k3;

describe nj.k3;
##########
describe  数据库名.表名;###显示表结构

7.删除数据表

drop table k3;

drop table nj.k3;
###########
drop  table  库名.表名;###删除表

8.删除数据库

drop database nj(库名);

四、Mysql——INSERT, DELETE, UPDATE,SELECT

1.插入表数据

insert into k3(id,name,score,passwd) values(1,'xzq',99,password('12345'));

insert into k3 values(2,'hyb',80,11111);

insert into k3 values(3,'cyq',90,22222);

2.查看插入数据

select * from k3;

select * from k3 where name='hyb';

select * from k3 limit 2;

select * from k3 limit 3,2;

select * from k3\G;

3.修改表数据

update k3 set score='85' where name='hyb';

update k3 set score='92' where id='4';

4.删除表中数据

delete from k3 where name='clj';

五、临时表

1.创建表 

create temporary table k4(id int(4) zerofill primary key auto_increment,name varchar(15) not null,cardid int(18) not null unique key,hobby varchar(50));

2.插入数据(自增长)

insert into k4 values(1,'xzq',11111,'cg');

insert into k4 values(2,'hyb',22222,'sg');

insert into k4 (name,cardid,hobby) values('cyq',33333,'ych');

3.退出数据库

六、清空表,删除表内所有数据

1.delete

delect:清空数据后,会有遗留(当表中数据有1、2、3时;删除1后,数据会从2开始)

2.truncate

truncate:不会有任何遗留(当表中数据有1、2、3时;删除1后,数据会从1开始)

3.drop、truncate、delete对比

1.drop

  1. 属于DDL
  2. 不可回滚(无法恢复)
  3. 不可带where
  4. 表内容和结构删除
  5. 删除速度快

2.truncate

  1. 属于DDL
  2. 不可回滚
  3. 不可带where
  4. 表内容删除
  5. 删除速度快

3.delete

  1. 属于DML
  2. 可回滚(可回复)
  3. 可带where
  4. 表结构在,表内容要看where执行的情况
  5. 删除速度慢,需要逐行删除

4.小结

  1. 不再需要一张表的时候用drop
  2. 想删除部分数据行的时候用delete,并且带上where子句
  3. 保留表而删除所有数据的时候用truncate
  4. 删除速度:drop>truncate> delete
  5. 安全性 delete 最好

七、克隆表

方法一:

​create table 新表名 like 复制的表名;  ​
​复制格式,能够复制表的格式到新表,但是没有内容​
​insert into 新表名 select * from 复制的表名; ​
​复制原表内容到新表
create table k5 like k3;

insert into k5 select * from k3;

方法二:

create table k6(select * from k3);

八、修改表名

alter table k6 rename k8;

九、增加字段

alter table k8 add address varchar(88) default 'cg';

十、修改字段名

alter table k8 change name cyq char(22) unique key;

11、删除字段

alter table k8 drop address;

12、用户管理

1.使用明文创建用户

create user 'qq'@'localhost' identified by '123';

2.重命名用户

rename user 'qq'@'localhost' to 'xx'@'localhost';
select user,authentication_string,host from user;

3.删除用户

drop user 'xx'@'localhost';

4.忘记root密码解决方法

4.1修改配置文件

vim /etc/my.cnf
#添加此行
skip-grant-tables
 
systemctl restart mysqld.service 

mysql -u root

4.2修改当前root用户密码

flush privileges;
###刷新数据库
set password for root@localhost=password('123');
###修改root密码

5.修改其他用户密码

set password for 'qq'@'localhost'=password('123');

13、用户授权

1.授权

GRANT 权限列表 ON 数据库名/表名 TO '用户名'@'来源地址' [IDENTIFIED BY '密码'];
  • 权限列表:用于列出授权使用的各种数据库操作,以逗号进行分隔,如“select,insert,update”。使用“all”表示所有权限,可授权执行任何操作。
  • 数据库名.表名:用于指定授权操作的数据库和表的名称,其中可以使用通配符。
  • 用户名@来源地址’:用于指定用户名称和允许访问的客户机地址,即谁能连接、能从哪里连接。来源地址可以是域名、IP 地址,还可以使用“%”通配符,表示某个区域或网段内的所有地址,如“%.accp.com”、“192.168.48.%”等。
  • IDENTIFIED BY:用于设置用户连接数据库时所使用的密码字符串。在新建用户时,若省略“IDENTIFIED BY”部分, 则用户的密码将为空。

1.数据库授权

grant select on nj.* to 'qq'@'localhost' identified by '123';

1.用qq用户登录
 mysql -u qq -p123

2.测试权限 

2.远程登录授权

1.没有授权之前

2.授权
grant all privileges on nj.* to 'qq'@'192.168.91.%' identified by '123';

3.Navicat Premium测试

2.撤销权限

1.查看用户权限
show grants for 'qq'@'192.168.91.%';

2.撤销权限
revoke all on nj.* from 'qq'@'192.168.91.%';

3.刷新看一下Navicat Premium

3.权限列表

权限功能
select查询数据
insert插入数据
update更新数据
delete删除数据
create创建库、表
drop删除库、表
index建立索引
alter更改表属性
event事件
trigger on创建触发器

举报

相关推荐

0 条评论