数据语言
# DDL 数据定义语言
用来定义我们的数据库对象,包括数据库、数据表和列。通过使用 DDL,我们可以创建,删除和修改数据库和表结构。
增删改create drop alter
最好有个说明文档,说清楚每个字段的定义
# 对库定义
CREATE DATABASE nba; ---创建一个名为nba的数据库
DROP DATABASE nba; ---删除一个名为nba的数据库
1
2
2
# 对表定义
创建表
CREATE TABLE [table_name](字段名 数据类型,......)
CREATE TABLE player (
player_id int(11) NOT NULL AUTO_INCREMENT,
player_name varchar(255) NOT NULL
);
1
2
3
4
5
6
2
3
4
5
6
语句最后以分号(;)作为结束符,最后一个字段的定义结束后没有逗号。
现在一般借助数据库连接工具,创建好库表结构之后,在转化成sql语句
navicat:转储 SQL 文件”→“仅结构
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;
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
修改表
ALTER TABLE player ADD (age int(11)); ---添加一个 age 字段,类型为int(11)
ALTER TABLE player RENAME COLUMN age to player_age ---age 字段改成player_age
ALTER TABLE player MODIFY (player_age float(3,1)); ---player_age的数据类型设置为float(3,1)
ALTER TABLE player DROP COLUMN player_age; ---删除刚才添加的player_age字段
1
2
3
4
2
3
4
约束
约束 | 特征,作用 |
---|---|
主键 | UNIQUE+NOT NULL |
外键 | 表与表之间引用的完整性 |
唯一 | 不能重复 |
NOT NULL | 不应为空,必须有取值 |
DEFAULT | 有取值,就设置为默认值 |
CHECK | 查特定字段取值范围的有效性 |
数据表的个数越少越好 数据表中的字段个数越少越好 数据表中联合主键的字段个数越少越好 使用主键和外键越多越好
# DML
用它操作和数据库相关的记录,比如增加、删除、修改数据表中的记录。
# DCL
# DQL
用它查询想要的记录,它是 SQL 语言的重中之重。
编辑 (opens new window)