MySQL表的操作

1. 查看表

SHOW TABLES
SHOW CREATE TABLE students


查看所有表

查看如何创建表

2. 创建表

  • 如果你仅想在一个表不存在时创建它,应该在表名后给出IFNOT EXISTS。这样做不检查已有表的模式是否与你打算创建的表模式相匹配。它只是查看表名是否存在,并且仅在表名不存在时创建它
  • 使用CREATE TABLE 语句
  • 新表的的名字,在关键字CREATE TABLE 之后
  • 表列的名字和定义,用逗号分隔
CREATE TABLE students (
    id          int         NOT NULL   AUTO_INCREMENT,
    name    char(50)    NOT NULL,
    address     char(200)   NOT NULL,
    email   char(50)    NOT NULL,
    PRIMARY KEY(id))

查看表结构

DESC students

3. NULL值

  • NULL值就是没有值或缺值。允许NULL值的列也允许在插入行时不给出该列的值。不允许NULL值的列不接受该列没有值的行,换句话说,在插入或更新行时,该列必须有值
例:

CREATE TABLE orders(
order_num int NOT NULL AUTO_INCREMENT,
order_date datetime NOT NULL,
cust_id int NOT NULL,
PRIMARY_KEY(order_num));
这条语句创建本书中所用的orders表。orders包含3个列,分别是订单号、订单日期和客户ID。所有3个列都需要,因此每个列的定义都含有关键字NOT NULL。这将会阻止插入没有值的列。如果试图插入没有值的列,将返回错误,且插入失败

CREATE TABLE vendors(
vend_id int NOT NULL AUTO_INCREMENT, vend_name char(50) NOT NULL ,
vend_address char(50) NULL , vend_city char(50) NULL ,
vend_state char(5) NULL , vend_zip char(10) NULL ,
vend_country char(50) NULL , PRIMARY KEY (vend_id));
这条语句创建本书中使用的vendors表。供应商ID和供应字列是必需的,因此指定为NOT NULL。其余5个列全都允许NULL值,所以不指定NOT NULL。NULL为默认设置,如果不指定NOT NULL,则认为指定的是NULL

不要把NULL值与空串相混淆。NULL值是没有值,它不是空串。如果指定''(两个单引号,其间没有字符),这在NOT NULL列中是允许的。空串是一个有效的值,它不是无值。NULL值用关键字NULL而不是空串指定

4. 主键

  • 表中的任何列都可以作为主键,只要它满足以下条件:
    任意两行都不具有相同的主键值
    每个行都必须具有一个主键值(主键列不允许NULL值)

5. 自增

使用AUTO_INCREMENT

customers表中的顾客由列cust_id唯一标识,每个顾客有一个唯一编号。类似,orders表中的每个订单有一个唯一的订单号,这个订单号存储在列order_num中。
这些编号除它们是唯一的以外没有别的特殊意义。在增加一个新顾客或新订单时,需要一个新的顾客ID或订单号。这些编号可以任意,只要它们是唯一的即可。显然,使用的最简单的编号是下一个编号,所谓下一个编号是大于当前最大编号的编号。例如,如果cust_id的最大编号为10005,则插入表中的下一个顾客可以具有等于10006的cust_id

6. 默认值

指定默认值
如果在插入行时没有给出值,MySQL允许指定此时使用的默认值。
默认值用CREATE TABLE语句的列定义中的DEFAULT关键字指定。

CREATE TABLE students( 
    stu_id       int            NOT NULL AUTO_INCREMENT, 
    birthday    date  NOT NULL,
    navtive_plac  varchar(50)  NOT NULL DEFAULT “山西长治”,
    PRIMARY_KEY(order_num));

7. 更新表

  1. 为更新表定义,可使用ALTER TABLE语句。但是,理想状态下,当表中存储数据以后,该表就不应该再被更新。在表的设计过程中需要花费大量时间来考虑,以便后期不对该表进行大的改动。
  2. 为了使用ALTER TABLE更改表结构,必须给出下面的信息:
    在ALTER TABLE之后给出要更改的表名(该表必须存在,否则将出错)

添加一列:
ALTER TABLE orders ADD phone int(11);
删除一列:
ALTER TABLE orders DROP COLUMN phone;

小心使用ALTER TABLE 使用ALTER TABLE要极为小心,应该在进行改动前做一个完整的备份(模式和数据的备份)。数据库表的更改不能撤销,如果增加了不需要的列,可能不能删除它们。类似地,如果删除了不应该删除的列,可能会丢失该列中的所有数据

8. 删除表

  • 删除表(删除整个表而不是其内容)非常简单,使用DROP TABLE语句即可:
  • DROP TABLE orders;

9. 重命名表

  • 使用RENAME TABLE语句可以重命名一个表:
  • RENAME TABLE orders to orders1;

CREATE TABLE用来创建新表
ALTERTABLE用来更改表列
DROP TABLE用来完整地删除一个表

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这一篇最主要是记录下命令,方便以后查找 使用Mysql 创建数据库 create database mysql_t...
    Treehl阅读 600评论 0 0
  • MYSQL 基础知识 1 MySQL数据库概要 2 简单MySQL环境 3 数据的存储和获取 4 MySQL基本操...
    Kingtester阅读 7,857评论 5 116
  • https://www.toutiao.com/a6556743086267957763/MySQL的基本操作可以...
    liust15阅读 482评论 0 1
  • MySQL基础一上一节主要了解了MySQL数据库的相关命令和数据库中存储的数据类型, 这一节主要是MySQL中对于...
    投降又不会赢阅读 619评论 0 0
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,437评论 0 9