sql基础随记 (Tobe Continued) 其实这里的随记,要是好久不接触突然被问的话有时还真的一时答不上,自己写一遍胜过盲扫。当然,也有些常读常新的地方会记录下来。 对SQL语言进行划分 DDL --- Data
其实这里的随记,要是好久不接触突然被问的话有时还真的一时答不上,自己写一遍胜过盲扫。当然,也有些常读常新的地方会记录下来。
DDL --- Data Definition Language --- 定义 --- 增删改数据库和表的结构
DML --- Data Manipulation Language --- 操作 --- 对记录增删改
DQL --- Data Quary Language --- 查询 --- 对记录进行查询
DCL --- Data Control Language --- 控制 --- 访问权限和安全规则
要是要突然问的话有时还真的一时回答不上,记住单词胜过记缩写
列存储数据库说是“可以降低系统的I/O,但功能相对有限”,不过我看到了一段有意思的话觉得很有道理
图(这种数据结构)存储了实体(对象)之间的关系。以最典型的人与人社交关系为例,其数据模型主要是以节点和边来实现。特点在于可以有效解决复杂的关系问题。
创建表时可以在create table tableName (...)
后面追加参数,可以追加的有
engine = InnoDB
CHARACTER SET = utf8 COLLATE = utf8_general_ci
其中CHARACTER SET
是指定字符编码,COLLATE
是指定排序规则。且utf8_general_ci
是对大小写不敏感,对大小写敏感是utf8_bin
在定义varchar()类型字段的时候也可以后缀CHARACTER SET = xxx COLLATE = yyy
在创建索引的时候我们可以选择不同类型的索引(UNIQUE INDEX --- 唯一索引 或 NORMAL INDEX --- 普通索引)以及不同的索引方式(BTREE 或 HASH),如
CREATE TABLE XXX(
...
UNNIQUE INDEX indexName (字段名) USING BTREE
...
)
索引分为单列索引和组合索引,组合即一个索引可以包含多个列
约束
理论上设计数据表的“三少一多”原则
表个数少
表中字段少
联合主键字段少
主键和外键多
表的设计核心就是简单可复用,主键是一张表的代表,因此主键外键越多,说明表之间的利用率最高。
但这个原则不是绝对的,因为有时我们需要牺牲数据的冗余度来换取处理数据的效率,毕竟join总是会造成复杂。
另外在大型项目中,大量的更新以及高并发的情况下,外键会造成额外的开销,也容易造成死锁。因此在业务量较大时,可以采用在业务层实现,取消外键来提高效率。因此在实际生产中为了方便维护基本不使用外键。
另外也不推荐使用自增长主键,不利于维护。例如银行一般使用唯一表示字段uuid+日期+渠道流水(unique index)
来保证数据唯一性。
修改字段类型不要忘记COLUMN
ALTER TABLE tableName MODIFY COLUMN newName type;
修改字段名
ALTER TABLE tableName CHANGE oldName newName type;
修改大表字段需要谨慎 容易引发表结构写锁。(0623)
--结束END--
本文标题: SQL基础随记 (Tobe Continued) - G
本文链接: https://lsjlt.com/news/6820.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-10-23
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0