美文网首页
Mysql数据表相关操作

Mysql数据表相关操作

作者: 04a07ffbfb62 | 来源:发表于2016-06-03 16:44 被阅读39次
数据表
  • 数据表是数据库最重要的组成部分之一,是其他对象的基础;
  • 数据表是存储数据的数据结构;
  • 数据表是包含了特定实体类型的数据;
  • 数据由行(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;

相关文章

网友评论

      本文标题:Mysql数据表相关操作

      本文链接:https://www.haomeiwen.com/subject/qfqldttx.html