ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

SQL语言之DDL(操作数据库和表结构)

2020-08-11 22:00:36  阅读:305  来源: 互联网

标签:database 数据库 SQL 数据类型 和表 数据表 DDL table alter


1、DDL的基本概念

DDL(Data Definition Language,操作数据库和表结构):DDL是用来操作数据库和表的,也就是创建数据库和表、删除数据库和表、修改表结构这些操作。通常,DDL由数据库管理员执行。

 

2、DDL操作数据库(选择和增删改查)

 

2.1、创建数据库(Create)

可以通过 create 语句来创建一个数据库

CREATE DATABASE 数据库名;  -- 创建数据库
create database 数据库名 character set utf-8;  -- 在创建数据库时可以指定数据库的字符集

如果同名数据库已经存在,再创建一个会报错,提示该数据库已存在。我们可以通过判断该数据库是否已存在来避免报错:

create database if not exists basename;  -- 如果已存在则不会创建,否则新建一个数据库
create database if not exists basename character set gbk;  -- 判断同时指定字符集

 

2.2、查询所有的数据库(show)

可以使用 show database; 语句来查询 MySQL 中所有的数据库。

如下:MySQL在安装后默认建立了四个数据库。前三个数据库都是保存着MySQL的一些信息,最好不要乱改。如果需要,我们可以在 test 数据库上做一些修改测试。

(其中 information_schema 并没有真正对应的实体文件夹,该数据库是一个信息数据库,其保存着关于MySQL服务器所维护的所有其他数据库的信息,如数据库名,数据库的表,表栏的数据类型与访问权限等。也就是说当你建立一个新的数据库,或者在已有的数据库中增删改表的话,都会记录在information_schema库中)

 

我们也可以通过 show create database 数据库名;  语句来查看创建某个数据的语法。如下所示,我们还可以知道该数据库使用的字符集是 utf-8。

 

2.3、修改数据库(alter)

修改数据库的字符集:

alter database 数据库名称 character set 字符集名称;
# 示例:
alter database testdb character set utf8;

2.4、删除数据库(drop)

drop database 数据库名称;
drop database if exists 数据库名称;   # 如果该数据库不存在,直接删除会报错,我们可以先判断是否存在

2.5、选择数据库(use)

在连接到 MySQL 数据库后,可能有多个可以操作的数据库,所以我们需要选择要进行操作的数据库。

use 数据库名称; 

执行以上命令后,就会选择某个数据库,后续的操作都会在该数据库中执行,比如对数据表的操作等等。

查询目前正在使用的数据库:

select database();  # 当没有选择数据库时,会提示 null

 

3、DDL操作数据表(增删改查)

3.1、创建数据表(create)

创建MySQL数据表需要以下信息:表名、表字段名、定义每个表字段。

以下为创建MySQL数据表的SQL通用语法:

CREATE TABLE table_name (column_name column_type);

# 示例创建数据表runoob_tbl:
CREATE TABLE IF NOT EXISTS `runoob_tbl`(
   `runoob_id` INT UNSIGNED AUTO_INCREMENT,   # AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1
   `runoob_title` VARCHAR(100) NOT NULL,      # 如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL,在操作数据库时如果输入该字段的数据为NULL,就会报错。
   `submission_date` DATE,
   PRIMARY KEY ( `runoob_id` )                # PRIMARY KEY关键字用于定义列为主键,可以使用多列来定义主键,列间以逗号分隔。建表语句的最后一列不要加逗号,否则报错
)ENGINE=InnoDB DEFAULT CHARSET=utf8;          # ENGINE 设置存储引擎,CHARSET 设置编码

对于一个关系表,除了定义每一列的名称外,还需要定义每一列的数据类型。关系数据库支持的标准数据类型包括数值、字符串、时间等:

 

上面的表中列举了最常用的数据类型。很多数据类型还有别名,例如,浮点型REAL又可以写成FLOAT(24)。还有一些不常用的数据类型,例如,TINYINT(范围在0~255)。各数据库厂商还会支持特定的数据类型,例如JSON

选择数据类型的时候,要根据业务规则选择合适的类型。通常来说,长整型BIGINT能满足整数存储的需求,变长字符串VARCHAR(N)能满足字符串存储的需求,这两种类型是使用最广泛的。

 

3.2、删除数据表(drop)

在进行删除表操作时要非常小心,因为执行删除命令后所有数据都会消失。

以下为删除MySQL数据表的通用语法:

DROP TABLE table_name;
DROP TABLE if exists table_name;  # 判断是否存在,存在再删除

 

3.3、修改表

3.3.1、对表的整体进行修改

修改表名:

alter table 表名 rename to 新表名;

修改表的字符集:

alter table 表名 character set 字符集名称;
# 示例:
alter table testtable character set utf8;  # utf-8字符集写成utf8,否则报错

3.3.2、修改表结构

添加一列:

alter table 表名 add 列名 数据类型;
# 示例:
alter table testtable add name varchar(10);  # varchar(10)表示最多有10个字符

修改列名、数据类型:

alter table 表名 modify 列名 新数据类型;  # 修改列的数据类型
alter table 表名 change 列名 新列名 新数据类型;  # 同时修改列名和数据类型

删除列:

alter table 表名 drop 列名; 

 

3.4、查询

3.4.1、查询数据库中的所有表

查询某个数据库中的所有表:

show tables;

3.4.2、查询表结构

查询表结构:

desc 表名;

 

标签:database,数据库,SQL,数据类型,和表,数据表,DDL,table,alter
来源: https://www.cnblogs.com/wenxuehai/p/13485427.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有