数据表
- 数据表是数据库最重要的组成部分之一,是其他对象的基础;
- 数据表是存储数据的数据结构;
- 数据表是包含了特定实体类型的数据;
- 数据由行(row)和列(column)构成的二维网络;
- 数据表一定现有表结构,再有数据;
- 数据表至少有一列,可以没有行或者多行;
- 数据表名称要求唯一,而且不要包含特殊字符;
数据表操作
创建数据表
CREATE TABLE [IF NOT EXISTS] tbl_name(
字段名称 字段类型 [UNSIGNED | ZEROFILL] [NOT NULL] [DEFAULT] [[PRIMARY] KEY | UNIQUE [KEY]] [AUTO_INCREMENT]
) ENGINE = 引擎名称 CHARSET = '编码名称';
完整性约束条件:
- PRIMARY KEY 主键:一列(或一组列),其值能够唯一标识表中每一行。(主键的值不可重复;主键的值不允许修改或更新;如果某行被删除,他的主键值不能被重用主键可以定义符合主键)
- AUTO_INCREMENT 自增长:只对整数列有效果;
- FOREIGN KEY 外键
- NOT NULL 非空:标注为非空的列,不能插入空值;
- UNIQUE KEY 唯一:唯一约束用来保证一列(或一组列)中的数据是唯一的。
- DEFAULT 默认值:唯一约束用来保证一列(或一组列)中的数据是唯一的,也就是不能有重复的。
- 表可包含多个唯一约束,但每个表只允许一个主键。
- 唯一约束列可包含NULL值。
- 唯一约束列可修改或更新。
- 唯一约束列的值可重复使用。
- 与主键不一样,唯一约束不能用来定义外键。
--定义复合主键(复合主键可以有值重复,但不能全部重复)
CREATE TABLE IF NOT EXISTS user2(
id INT,
username VARCHAR(20),
card CHAR(18),
PRIMARY KEY (id, card)
);
查看创建表的详细定义
SHOW CREATE TABLE tbl_name;
查看当前数据库中的数据表
SHOW TABLES;
查看指定表结构
DESC tbl_name;
DESCRIBE tbl_name;
SHOW COLUMNS FROM tbl_name;
插入数据
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name
[PARTITION (partition_name,...)]
[(col_name,...)]
{VALUES | VALUE} ({expr | DEFAULT},...),(...),...
[ ON DUPLICATE KEY UPDATE
col_name=expr
[, col_name=expr] ... ]
查询所有记录语句
SELECT * FROM tbl_name;
修改表结构
# 修改表名
ALTER TABLE tbl_name RENAME [TO | AS] new_name;
RENAME TABLE tbl_name TO new_name;
# 添加、删除字段
ALTER TABLE tbl_name ADD 字段名称 字段类型 [完整性约束条件] [FIRST | AFTER 字段名称];
ALTER TABLE tbl_name DROP 字段名称;
#example
ALTER TABLE user10 ADD test1 INT, ADD test2 INT;
ALTER TABLE user10 DROP test1, DROP test2;
ALTER TABLE user10 ADD test1 INT, DROP test1;
# 修改字段
ALTER TABLE tbl_name MODIFY 字段名称 字段类型 [完整性约束条件] [FIRST | AFTER字段名称];
# 修改字段名称
ALTER TABLE tbl_name CHANGE 字段名称 字段类型 [完整性约束条件] [FIRST | AFTER字段名称];
# 添加、删除默认值
ALTER TABLE tbl_name ALTER 字段名称 SET DEFAULT 默认值;
ALTER TABLE tbl_name ALTER 字段名称 DROP DEFAULT;
# 添加、删除主键
ALTER TABLE tbl_name ADD [CONSTRAIN [symbol]] PRIMARY KEY[index_type](字段名称);
ALTER TABLE tbl_name DROP PRIMARY KEY;
--example
ALTER TABLE tbl_name ADD CONSTRAIN symbo PRIMARY KEY index_type (id);
--如果自增长和主键在同一列,首先应先删除自增长,才能删除主键
ALTER TABLE test14 MODIFY id INT UNSIGNED;
ALTER TABLE test14 DROP PRIMARY KEY;
-- 添加、删除唯一
ALTER TABLE tbl_name ADD [CONSTRAIN [symbol]] UNIQUE [INDEX | KEY] [索引名称] (字段名称);
ALTER TABLE tbl_name DROP {INDEX | KEY} index_name;
--example
ALTER TABLE test14 ADD UNIQUE (username);
ALTER TABLE test14 ADD CONSTRAIN symbol UNIQUE KEY uni_card (card);
ALTER TABLE test14 DROP INDEX username;
ALTER TABLE test14 DROP KEY uni_card;
--修改表的存储引擎
ALTER TABLE tbl_name ENGINE = 存储引擎名称;
--设置自增长的值
ALTER TABLE tbl_name AUTO_INCREMENT = 值;
--删除数据表
DROP TABLE tbl_name;
--example
DROP TABLE user12;
DROP TABLE IF EXISTS user12;
DROP TABLE IF EXISTS user12, user11, test11;
网友评论