数据库

暂时以mysql为例说下,关系型数据库吧。因为现在面试有很多公司都以它作为标准来问。
1.char和varchar的区别
char类型是固定长度,如果指定了一个字段长度为char(10),如果这个字段有数据写入,且写入字段小于10,存储的数值长度是10,不够的长度则以空格填充。
varchar类型是可变长度,如果指定了一个字段长度为varchar(10),如果这个字段有数据写入,且写入字段小于10,存储的数值长度就是实际长度,不会填充空格。
实际中如果要用到char,多用于确定了该字段的长度,以后再也不会改变,如果不确定,建议都用varchar。

2.sql的执行顺序

顺序 子句 作用
1 FROM 确定数据源,包括多表连接、子查询、笛卡尔积
2 ON 在 JOIN 中,筛选匹配的行(生成中间临时表)
3 JOIN 连接后的结果集
4 WHERE 按条件过滤行(不能使用聚合函数或列别名)
5 GROUP BY 将数据分组,每组输出一行
6 HAVING 过滤分组后的结果(可以使用聚合函数)
7 SELECT 选择列、计算表达式、聚合、去除重复(DISTINCT)
8 ORDER BY 对最终结果排序(可以使用列别名)
9 LIMIT / OFFSET 限制返回的行数
简单总结就是:
form>on>join>where>group by>having>select>order by>limit/offset

3.给已有表增加或修改字段,增加主键或自增主键
3.1-- 增加一个字段(默认加到最后一列)
ALTER TABLE 表名 ADD 新字段名 数据类型 [约束];
3.2-- 示例:给 users 表增加 age 字段,类型 INT
ALTER TABLE users ADD age INT;
3.3-- 加到指定位置(FIRST 或 AFTER 某列)
ALTER TABLE users ADD email VARCHAR(100) AFTER name;
3.4-- 示例:删除 users 表的 age 字段
ALTER TABLE users DROP COLUMN age;
3.5-- 示例:给 users 表添加 id 作为自增主键
ALTER TABLE users ADD id INT AUTO_INCREMENT PRIMARY KEY;
3.6-- 方法2:先加字段,再设主键和自增(更灵活)
ALTER TABLE users ADD id INT NOT NULL;
ALTER TABLE users ADD PRIMARY KEY (id);
ALTER TABLE users MODIFY id INT AUTO_INCREMENT;
大多数情况下,MySQL 会自动完成表空间的重建(即重新整理),不需要你手动干预。但为了彻底回收碎片、压缩表空间,可以事后主动执行整理命令。

今天暂时就写这些简单的吧。后续再补上一些难点。

posted @ 2026-04-16 23:11  夏天凉白开  阅读(4)  评论(0)    收藏  举报