MySQL(十三)DDL之库和表的管理

DDL(Data Define Languge):数据定义语言

一、库的管理

1.1、库的创建

语法:create database [if not exists]库名;

案例:创建库books

CREATE DATABASE IF NOT EXISTS books ;

1.2、库的修改

更改库的字符集

ALTER DATABASE books CHARACTER SET gbk;

1.3、库的删除

DROP DATABASE IF EXISTS books;

二、表的管理

2.1、表的创建

语法:create table 表名(列名 列的类型【(长度) 约束】,列名 列的类型【(长度) 约束】,...列名 列的类型【(长度) 约束】);

DESC book;

2.2、表的修改

语法:alter table 表名 add|drop|modify|change column 列名 【列类型 约束】;

①修改列名

ALTER TABLE book CHANGE COLUMN publishdate pubDate DATETIME;

②修改列的类型或约束

ALTER TABLE book MODIFY COLUMN pubdate TIMESTAMP;

③添加新列

ALTER TABLE author ADD COLUMN annual DOUBLE;

④删除列

ALTER TABLE author DROP COLUMN annual;

⑤修改表名

ALTER TABLE author RENAME TO book_author;

2.3、表的删除

DROP TABLE IF EXISTS book_author;

查看当前数据库的表:SHOW TABLES;

2.4、表的复制

由于2.3已经把author表删了,所以先根据2.1创建回该表,然后插入一些数据;

(1)仅仅复制表的结构

CREATE TABLE copy LIKE author;

(2)复制表的结构+数据

CREATE TABLE copy2 SELECT * FROM author;

(3)只复制部分数据

CREATE TABLE copy3 SELECT id,au_name FROM author WHERE nation='中国';

(4)仅仅复制某些字段

CREATE TABLE copy4 SELECT id,au_name FROM author WHERE 0;

三、通用的写法

DROP DATABASE IF EXISTS 旧库名; CREATE DATABASE 新库名;

DROP TABLE IF EXISTS 旧表名; CREATE TABLE 表名();

原文发布于微信公众号 - Java后端生活(javaNotebook)

原文发表时间:2018-05-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java架构师历程

sql必会基础1

ALTER TABLE old_table_name RENAME [TO] new_table_name

892
来自专栏乐沙弥的世界

SQL 基础-->创建和管理表

(列名 数据类型 [ default 默认值] [ 约束条件] [ , ......] )

361
来自专栏乐沙弥的世界

避免游标多次遍历

游标在数据库领域被广泛使用,尤其是对于需要将SQL语句返回的数据集进行逐行处理的时候。这为数据处理提供了极大的便利性,然游标的不当 使用从某种程度...

662
来自专栏同步博客

MySQL常用语句

  今天天气很好,大晴天,心情也好好的。就将MySQL常用的语句总结一下,记录在随笔里,也顺便分享分享。日后,这篇随笔我将会持续更新,作为我自己的MySQL语句...

742
来自专栏WindCoder

个人常用语句笔记-SQL

453
来自专栏jeremy的技术点滴

保存mysql InnoDB的auto_increment值另类方案

2585
来自专栏idba

主从默认字符集不一样导致的主从同步报错

在使用pt-table-checksum 校验主从的过程的时候,在创建dsns 表之后,往dsns表写入从库dsn信息的时候,从库的SQL线程就挂了,报错信息如...

452
来自专栏www.96php.cn

mysql 快速生成百万条测试数据

1、生成思路 利用mysql内存表插入速度快的特点,先利用函数和存储过程在内存表中生成数据,然后再从内存表插入普通表中 2、创建内存表及普通表 CREATE T...

49312
来自专栏杨建荣的学习笔记

关于reset sequence(r3笔记第85天)

sequence在工作中使用比较频繁,对于Insert中插入的值,如果只需要它能够自动递增,这个时候sequence就派上用场了。 但是既然sequence的值...

2818
来自专栏程序员宝库

Mysql - JOIN 详解

一个完整的SQL语句中会被拆分成多个子句,子句的执行过程中会产生虚拟表(vt),但是结果只返回最后一张虚拟表。从这个思路出发,我们试着理解一下JOIN查询的执行...

1083

扫码关注云+社区