MySQL 学习 3 表的创建、删除、修改

一、创建表

1、基本方法 create table

表列的名字和定义,用逗号分隔;圆括号内为表的具体定义。为了提高可读性,建议写成如下形式:

create table user
(
    username text(20),
    password text(32)   
);

在 SQL 语句中忽略的空格。语句可以在一个长行上输入,也可以分成许多行,它们没有差别。这样,你就可以用最适合自己的方式安排语句的格式。

创建新的表时,指定的表名必须不存在,否则会出错。

每个字段必须指明数据类型,如 username text(20) ,最后一个字段定义结束不可加 ' , '

2、NULL

NULL,是字段的属性,在创建表时指明:

create table user
(
    username text(20)    not null,
    password text(32)     null,
    nation   text(40)
);

username 列为 not null,则在给表添加数据行时,该字段必须有值,否则会报错,并且插入失败。而 password 列为 null,在给表添加数据行时,可以不给出该字段的值。最后一个字段 nation ,没有指明,则为默认值 null 。

注意:只有 not null 的列可以作为主键。

3、默认值

在插入行时如果不给某字段的值,将自动采用默认值。默认值定义用 default 关键字。

create table user
(
    username text(20)    not null,
    password text(32)     null,        
    nation   text(40),
    sex      integer      not null     default 1   -- 1 代表男性
);

4、TEMPORARY 临时表

MySQL临时表在我们需要保存一些临时数据时是非常有用的。临时表只在当前连接可见,当关闭连接时,Mysql会自动删除表并释放所有空间。

create temporary table user(
    username text(20)    not null,
    password text(32)     null,        
    nation   text(40),
    sex      integer      not null     default 1   -- 1 代表男性
);

此时,该表为临时表。如果使用了MySQL客户端程序连接MySQL的数据库服务器来创建临时表,那么只有在关闭客户端程序时才会销毁临时表。

扫描二维码关注公众号,回复: 8840668 查看本文章

参考:https://www.runoob.com/mysql/mysql-temporary-tables.html

二、删除表

1、DROP(谨慎使用!)

DROP TABLE table_name ;

删除表时,表和数据均会丢失,表所占用的空间全部释放,操作立即生效,不可恢复。谨慎使用!

2、TRUNCATE

TRUNCATE TABLE table_name

作用是清空表数据,不删除表的定义,所占用的空间会恢复到初始大小,操作立即生效,不可恢复。

3、DELETE

删除表的部分数据:

DELETE FROM table_name                   --删除表中的全部数据

DELETE FROM table_name WHERE clause      --删除表中的符合条件 clause 的数据

delete只删除数据不删除表的结构(定义) ,操作可恢复,delete操作之后表所占的空间不会减少。

三、修改表

1、对表重命名

RENAME TABLE 原表名 TO 新表名

RENAME TABLE 原表名 TO 库名.表名        --可将表移动到另一个数据库

2、修改表的字段

ALTER TABLE 表名 操作名

参考:https://www.runoob.com/mysql/mysql-alter.html

操作名如下:

-- 操作名
ADD[ COLUMN] 字段定义                -- 增加字段
AFTER 字段名                         -- 表示增加在该字段名后面
FIRST                                -- 表示增加在第一个
ADD PRIMARY KEY(字段名)              -- 创建主键
ADD UNIQUE [索引名] (字段名)         -- 创建唯一索引
ADD INDEX [索引名] (字段名)          -- 创建普通索引
DROP[ COLUMN] 字段名                 -- 删除字段
MODIFY[ COLUMN] 字段名 字段属性       /*  支持对字段属性进行修改,不能修改字段名(所有原有属性也 
                                        需写上)*/
CHANGE[ COLUMN] 原字段名 新字段名 字段属性      -- 支持对字段名修改
DROP PRIMARY KEY                     -- 删除主键(删除主键前需删除其AUTO_INCREMENT属性)
DROP INDEX 索引名                     -- 删除索引
DROP FOREIGN KEY 外键                -- 删除外键

四、复制表

1、复制表结构

CREATE TABLE 表名 LIKE 要复制的表名

CREATE TABLE,包含了原数据表的结构,索引等。

2、复制表结构和数据

CREATE TABLE 表名 [AS] SELECT * FROM 要复制的表名;              -- 全部复制

CREATE TABLE 新表表名 AS SELECT 字段1, 字段2 FROM 旧表表名;     -- 仅复制部分字段

3、将表数据复制到另一个已存在表

复制前必须保证,两个表结构一致!

INSERT INTO 目标表 SELECT * FROM 来源表;                                  -- 复制全部数据

INSERT INTO 目标表 字段1, 字段2, … SELECT 字段1, 字段2, … FROM 来源表;     -- 复制指定字段,字段顺序必须一致
                                               

参考:https://mp.weixin.qq.com/s/LwDSDv7RJPhua3ifcp7d0A

          http://www.imooc.com/article/43257

发布了23 篇原创文章 · 获赞 11 · 访问量 8340

猜你喜欢

转载自blog.csdn.net/weixin_42107217/article/details/98990912