MySQL基础查漏补缺

关系型数据库和非关系型数据库怎么区别

关系型数据库是二维表,有明确的行列关系。而非关系型数据不是。

创建表,展示表结构,查看建表语句分别使用什么关键字

create table 表名 (字段);
desc 表名;
show create table 表名;

char 和 varchar 有什么区别

char定长,存入的值长度不变,varchar变长,只规定存入数据的最大长度
char性能更佳

修改表名,修改字段名,修改字段类型分别是使用什么关键字

ALTER Table 表名 RENAME TO 新表名
ALTER Table 表名 change 字段名 新字段名 新字段类型
ALTER Table 表名 modify 字段名 新字段类型

增加字段,删除字段分别使用什么关键字

ALTER Table 表名 ADD 字段名 字段类型;
ALTER Table 表名 DROP 字段名;

Drop 表和 Truncate 表有什么区别

DROP TABLE ; 删除表,如果表不存在会报错
TRUNCATE TABLE; 删除表,并且重新创建表,相当于清空所有数据

update语句怎么写

update table set 字段1=值1,字段2=值2 where …

select 单表语句完整语法是怎样的

select 
	字段列表
from
	表名列表
where 
	条件列表
group by
	分组字段列表
having
	分组后条件列表
order by
	排序字段列表
limit
	分页限制数量

select 查询中 like 关键字如何使用

like是模糊查询,用下划线_ 表示占位符一位,用百分号%表示占位多位。

select * from user where name like '__';-- 查询名字为两个字的user

select 查询中如何查询数据为null的数据

is null 表示为null 的数据,用 is not null 表示不为null的数据

select * from user where email is null;-- 查询email未填写的user

where 和 having 有什么区别

  1. 执行的时机不同,where 是在分组、聚合之前的筛选,having 是在分组、聚合之后的筛选。执行顺序为where > 分组 > having
  2. 作用的客体不同,where是对分组聚合之前的数据进行筛选,只有通过了 where 条件的数据才能进行分组聚合,having是对 分组聚合之后的数据进行筛选,分组聚合之后需要进一步进行筛选就使用 having.

分页查询的起始索引从什么开始

select 字段列表 from 表名 limit 起始索引,查询记录数
起始索引从0开始
当起始索引为0的时候,可以省略
select 字段列表 from 表名 limit 查询记录数

DQL的执行顺序

  1. from table
  2. where 条件
  3. group by 分组字段
  4. having 条件
  5. select 字段
  6. order by 排序字段
  7. limit 限制数量

DQL执行顺序
验证

select e.name ename from emp e where e.age < 35 ;

select语句、where语句中可以使用from语句中定义的emp别名e,说明两者执行位置在from后面

select e.name ename from emp e where e.age < 35 and ename like ‘___’ ;

where 语句中使用了select语句中定义的别名ename,报错,这说明 select 语句在where 后执行。

select e.name ename from emp e where e.age < 35 and ename like ‘___’ order by ename;

order by语句中使用了select 语句中定义的别名,未报错,说明orderby语句在select 语句后执行

DCL中用户的增删查改

  • 创建用户
    • create user '用户名'@'主机名' identified by '密码';
    • 主机名说明了这个用户可以在哪些主机上使用,比如本机‘localhost’,所有主机’%’
  • 删除用户
    • drop user '用户名'@'主机名'
  • 查询用户
    • select * from mysql.user
    • 查询结果
      在这里插入图片描述
      host:主机名
      user:用户名
      后面的字段是各种权重
  • 修改用户密码
    • alter user '用户名'@'主机名' identified with mysql_name_password by '新密码';

MYSQL中有哪些常用的权限

在这里插入图片描述

DCL 中权限的查询、授予、撤销

  • 查询
    show grants for ‘用户名’@‘主机名’
  • 授予
    grant 权限列表 on 数据库.数据表 to 用户名@主机名
  • 撤销
    revoke 权限列表 on 数据库名.数据表名 from 用户名@主机名

使用*可以表示所有数据库或数据表

MYSQL中存在不同的函数,请举例一些字符串函数

  • 字符串拼接 concat(字符串1,字符串2,...)
  • 子字符串 substring(字符串,起始索引,需要截取的位数)
  • 全部转换为大写 upper(字符串)
  • 全部转换为小写 lower(字符串)
  • 左填充 lpad(字符串,要填充的位数,要填充的字符)
  • 右填充 rpad(字符串,要填充的位数,要填充的字符)
  • 去除字符串首尾的空格 trim(字符串)

MYSQL中存在不同的函数,请举例一些数值函数

在这里插入图片描述

MYSQL中存在不同的函数,请举例一些日期函数

在这里插入图片描述

MYSQL中存在不同的函数,请举例一些流程函数

在这里插入图片描述

MYSQL中存在哪些约束

约束

外键约束有什么用

可以约束主表的行为,当主表进行删除更新修改的时候,可以实时更改子表的外键数据,或者阻止主表进行更改。
外键约束的行为可以分为如下:
在这里插入图片描述

修改表的外键的行为

alter table 表名 constraint 外键名称 forign key (外键字段) references 父表 (父表字段名) on update 行为级别 on delete 行为级别

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值