DDL组件的作用就是创建数据库、数据表,是数据库稳定的基础。
创建数据库
CREATE DATABASE nba; // 创建一个名为nba的数据库
DROP DATABASE nba; // 删除一个名为nba的数据库
创建数据表
// 创建一个表名为 player 的表,player_id为主键自增长从1开始,name长度限制为 6,但是在SQLite中这样的限制不生效
"CREATE TABLE table_name ( player_id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT(6));"
// 删除表
"DROP TABLE table_name;"
// 通过ALTER更改表结构:插入列
"ALTER TABLE table_name ADD COLUMN age INTEGER;"
// 通过ALTER更改表名
"ALTER TABLE table_name RENAME TO new_table_name;"
定义数据表时的约束条件:
DROP TABLE IF EXISTS `player`;
CREATE TABLE `player` (
`player_id` int(11) NOT NULL AUTO_INCREMENT,
`team_id` int(11) NOT NULL,
`player_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`height` float(3, 2) NULL DEFAULT 0.00,
PRIMARY KEY (`player_id`) USING BTREE,
UNIQUE INDEX `player_name`(`player_name`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
- NOT NULL
- CHARACTER SET utf8 : 字符编码UTF8
- COLLATE utf8_general_ci :大小写不敏感,对应的utf8_bin
- DEFAULT 0.00 : 设置默认值
- UNIQUE INDEX
player_name
(player_name
) USING BTREE : 唯一索引 索引名player_name , 对应字段player_name,索引方式 平衡树(还可选HASH),- 存储引擎:
ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;- CHECK(height>=0 AND height<3)
player_name -> varchar(255) -> CHARACTER SET utf8 -> COLLATE utf8_general_ci -> NOT NULL -> DEFAULT 'Luc',
更多SQLite的sql语句参考 菜鸟教程
补充:
- 索引用于提升数据的检索效率,唯一索引比普通索引多了个唯一性的约束
- 主键,标识数据行的唯一标识
- 外键,保证表与表之间的完整性,比如表2可以将外键设置为 上面表player的player_id。
设计原则(三少一多):
少 :表个数、字段个数、联合主键个数 越少越好
多 :主键、外键 越多越好
具体操作:
下载 Navicat Premium , 去下载测试sql文件,然后打开Navicat,将下载好的文件打开
![](https://img.haomeiwen.com/i3478571/5dffd34dde8e886e.png)
网友评论