数据库
暂时以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 会自动完成表空间的重建(即重新整理),不需要你手动干预。但为了彻底回收碎片、压缩表空间,可以事后主动执行整理命令。
今天暂时就写这些简单的吧。后续再补上一些难点。

浙公网安备 33010602011771号