美文网首页
MySQL表的操作

MySQL表的操作

作者: zxx_emmm | 来源:发表于2018-08-08 17:26 被阅读0次

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笔记

    Mac安装并运行MySql MySql数据库、数据表的操作 MySql数据类型及常见约束 MySql表操作 MyS...

  • 基于Linux的MySQL操作实例(软件安装,mysql基本操作

    基于Linux的MySQL操作实例(软件安装,mysql基本操作,mysql数据类型,建表、插入数据操作) 前言 ...

  • 3 MySQL数据库操作

    2 MySQL数据库操作 3.1 MySQL操作数据库 3.2 MySQL操作数据表 3.2.1 MySQL创建数...

  • Mysql 相关

    MySQL索引 MySQL索引背后的数据结构及算法原理 覆盖索引和回表操作 MySQL性能优化 MySql表分区详...

  • Mysql大全

    1.Mac下Homebrew 安装mysql 2.mysql管理 3.mysql数据库操作 4.mysql表操作 ...

  • Mysql学习——MySQL数据结构修改(2)

    Mysql表结构操作添加表字段修改表字段删除表字段修改表字段类型修改表名简介:Mysql表结构操作,添加表字段,修...

  • 从0到1学习网络安全 【MySQL基础-MySQL 删除数据表】

    MySQL 删除数据表 MySQL中删除数据表是非常容易操作的, 但是你再进行删除表操作时要非常小心,因为执行删除...

  • My SQL 3

    2.1 MySQL 基础 (二)- 表操作 #学习内容# 1. MySQL表数据类型 2. 用SQL语句创建表 ...

  • mysql 表操作

    创建数据库: 新建表: 设置主键: 设置id为自增列: 表重命名: 列操作

  • MYsql表操作

    查看数据库:show databases;show create database school; 切换数据库...

网友评论

      本文标题:MySQL表的操作

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