Mysql 基础命令增删改查

一、数据库类型  分两大类:

1.关系型数据库 SQL   :

关系型数据库(SQL)   存储结构:二维表格    存储的数据:结构化数据     使用场景:存储业务数据、账户信息等
对象: 库 ->  表 -> 二维表格形式的结构化数据  :  行(记录):用来描述一个对象的信息
                                                                               列(字段):用来描述对象的一个属性
 

2.非关系型数据库 NoSQL

非关系型数据库(NoSQL)  存储结构:非二维表格结构,不同类型的NoSQL采用不同的存储结构,比如 键值对、文档、索引、时间序列 等

缓存型   Redis   Memcached
文档型   MongoDB
索引型   Elasticsearch
时序型   Prometheus   InfluxDB
列式型   HBase

二、MySQL中6种常见的约束:

  1. 主键约束(primary key)
  2. 外键约束(foreign key)
  3. 非空约束(not null)
  4. 唯一性约束(unique [key|index])
  5. 默认值约束(default)
  6. 自增约束(auto_increment)

三、常用的数据类型:

  1. int :整型   无符号[0,2^32-1],有符号[-2^31,2^31-1]
  2. float :单精度浮点    4字节32位
  3. double :双精度浮点    8字节64位
  4. char :固定长度的字符类型
  5. varchar :可变长度的字符类型
  6. text :文本
  7. image :图片
  8. decimal(5,2) :5个有效长度数字,小数点后面有2位

四、mysql授权用户权限

五、SQL语句  关系型数据库专用的操作管理语句 

DDL:用于管理数据库对象(库、表、索引 等)

create database 库名; #查看数据库

创建表 
use 库名;  #进入库
create table 表名 (字段一 数据类型,字段二 字段类型 PRIMARY KEY(字段));
show databases; #查看数据库
show tables from 数据库名;  #从查看数据库中的表
desc 表名 +查看表的结构
show create table 表名 #复杂查看表的结构
drop tables 库名.表名 #删除某库中的表
drop database 数据库;   #删除数据库

 修改表的结构:

增删改字段
alter table 旧表名 rename 新表名称;    #修改表名称
alter table 表名 add 新字段 数据类型; 可以加约束类型   #新增表的字段
alter table 表名 change 旧字段 新字段数据类型 可以加约束类型 #修改表的字段
alter table 表名  drop 字段名称  #删除字段

增加约束
alter table 表名 add  约束类型;
删除约束
alter table 表名 drop 约束类型;

克隆:
crate table 新表名称 like 旧表名; #克隆旧表结构
insert into 新表名称 select * from 旧表名  #克隆就表数据  可实现表结构和表数据与旧表都一样

create table 新表明 select * from 旧表名   #表数据和旧表是一样的,新表的结构和旧表的不一定一样

清空表:
delete from 表名     #一条一条的删除记录,清空表效率较慢;自增字段仍保持原有的记录

truncate table 表名  #直接重建表,清空表效率较快;自增字段的记录也会重置

 DML:用于管理表数据

表中数据增删改查
insert into 表名 (字段1, 字段2 ) values (字段1的值, 字段二的值...);
insert into 表名  (所有对应字段的值)

修改数据:
update 表名 set 字段1=值1, 字段2=值2    where 条件表达式;

删除数据:
delete from 表名 where 条件表达式;

DQL:用于查询表数据

查询:
select * from 表名    #查看表全部的数据
select 字段1,字段2 from 表名 where 条件表达式;

分页查询:
select * from 表名 limit N;  #查看表的前N行的记录
select 字段 from 表名 limit N,M;     #查看表的第N行之后的连续M行的记录

select * from 表名\G					#以列表方式竖向显示

DCL:用于管理用户和权限
 

create user '用户名'@'来源地址 identified by '密码';
来源地址:
localhost ip 网段 %(任意地址) 主机名 
 

修改用户名
rename user 'vc'@'%' to 'dvd'@'%';

修改密码
set password for '用户名'@'来源地址' = password('密码');只可以root用户

alter user '用户名'@'来源地址' identified by '密码'; 修改密码



用户权限管理:
grant 权限1, 权限2  ON 库名.表名 to '主机名'@'来源地址'identified by 密码

查看权限
show grant for '用户名'@'来源地址';

撤回权限
revoke 权限列表 on 数据库名.表名 from '用户名'@'来源地址'

如何找回 root 密码?

1.修改MySQL配置文件,在 [mysqld] 配置项下面添加配置 skip-grant-tables 

2.重启MySQL服务,使用 mysql 命令即可直接登录数据库

vim /etc/my.conf 
skip-grant-tables  #添加,使登录mysql不使用授权表
systemctl restart mysqld

3.执行命令 update mysql.user set authentication_string=password('密码') where user='root'; 来修改root用户密码

使用 update 修改 root 密码,刷新数据库
UPDATE mysql.user SET AUTHENTICATION_STRING = PASSWORD('abc123') where user='root';

FLUSH PRIVILEGES;  #刷新数据库
quit

4.再把 /etc/my.cnf 配置文件里的 skip-grant-tables 删除,并重启 mysql 服务

mysql -u root -pabc123

外键约束:

保证数据的完整性和一致性(插入数据时,需要先保证主键表的公共字段有相关数据,才能在外键表插入相关联的数据;删除数据时,需要先保证外键表已经没有相关数据,才能在主键表删除相关联的数据)
 

主键表: alter table 主表名 add primary key (公共字段);
外键表: alter table 从表名 add foreign key(公共字段) references 主表名(公共字段);
# foreign key 自动生成外键名

删除外键
alter table 表名 drop  foreign key 键名别称
alter table 表名 drop key 键名

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值