SQL语句中的DDL类型的数据库定义语言操作_MsSql

来源:脚本之家  责任编辑:小易  
目录
SQL语句之DDL类型的数据库定义语言1.DDL类型的SQL语句基本概述2.DDL类型的SQL语句之数据库层面的操作2.1.创建一个数据库2.2.查看MySQL中有哪些数据库2.3.进入某个数据库2.4.查看当前处于哪个数据库中3.DDL类型的SQL语句之数据库表层面的操作3.1.创建一张数据表3.2.查看当前数据库中所有的数据表3.3.查询某张表的表结构3.4.查询某张表的建表语句3.5.在现有表中添加新的字段3.6.修改现有表中的字段数据类型和字段名称3.7.删除现有表中已存在的字段3.8.修改表的名字3.9.删除数据表4.DDL类型的SQL语句汇总

SQL语句之DDL类型的数据库定义语言

1.DDL类型的SQL语句基本概述

DDL类型的SQL语句全称为Data Definition Language,中文名称为数据定义语言,主要是用来定义数据库中的对象的,例如数据库、表和字段的定义,简单的理解就是DDL语言是来操作数据库、表和字段的。

2.DDL类型的SQL语句之数据库层面的操作

2.1.创建一个数据库

创建数据库的命令格式:CREATE DATABASE [IF NOT EXISTS] 数据库名称 [DEFAULT CHARSET 字符集] [COLLATE 排序规则];
命令格式中,[]中括号里的参数是可选项,都有默认的值。

[IF NOT EXISTS]:创建数据库时,检查数据库是否存在,如果存在则不执行任何动作,如果不存在则创建,常用语一个大型SQL脚本中,增加逻辑判断,防止报错。[DEFAULT CHARSET]:指定数据库的默认字符集,例如UTF8等等[COLLATE]:指定排序规则,用的较少。

1)创建一个数据库

mysql> create database db_1;
Query OK, 1 row affected (0.07 sec)

2)创建数据库并指定默认的字符集

在MySQL数据库中一般不用utf8类型的字符集,因为默认长度为3,有很多数据类型是大于3的,因此采用utf8mb4类型的字符集。

mysql> create database db_2 default charset utf8mb4;
Query OK, 1 row affected (0.04 sec)

3)在创建数据库时使用逻辑判断

当我们创建数据库时,如果数据库已经存在,那么创建时就会报错,如下图所示:

在创建数据库的命令中增加上IF NOT EXISTS参数就可以完美解决这个报错问题,当创建的数据库已经存在,那么就不进行任何操作。

mysql> create database if not exists db_1;
Query OK, 1 row affected, 1 warning (0.01 sec)

2.2.查看MySQL中有哪些数据库

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| db_1               |
| db_2               |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
6 rows in set (0.00 sec)

2.3.进入某个数据库

mysql> use db_1;
Database changed

2.4.查看当前处于哪个数据库中

()括号是MySQL数据库中的一种函数,后面讲。

mysql> select database();
+------------+
| database() |
+------------+
| db_1       |
+------------+
1 row in set (0.01 sec)

3.DDL类型的SQL语句之数据库表层面的操作

3.1.创建一张数据表

创建表的语法格式:

CREATE TABLE 表名 (
	字段1 字段1的类型 [COMMENT 字段1的注释],
	字段2 字段2的类型 [COMMENT 字段2的注释],
	字段3 字段3的类型 [COMMENT 字段3的注释],
	......
	字段n 字段1的类型 [COMMENT 字段n的注释]
) [COMMENT 表的注释];

注意:在创建表时,每个字段之间都以逗号隔开,最后一个字段无需添加逗号。

创建一张数据表:

根据下图所示的表格,在MySQL中创建一张数据表。

表名:技术中心新冠疫苗接种信息表。

请添加图片描述

1.进入db_1数据库中
mysql> use db_1;

2.创建表
create table jszx_xgymjzxxb (
    id int comment '编号',
    bm varchar(10) comment '部门',
    name varchar(10) comment '姓名',
    wd char(1) comment '未打',
    first_injection char(1) comment '第一针',
    second_injection char(1) comment '第二针',
    third_injection char(1) comment '第三针',
    jtyy varchar(50) comment '具体原因'
) comment '技术中心新馆疫苗接种信息表';

 

3.2.查看当前数据库中所有的数据表

通过show tables命令可以查看当前所在的数据库中,有哪些数据表。

mysql> show tables;
+----------------+
| Tables_in_db_1 |
+----------------+
| jszx_xgymjzxxb |
+----------------+
1 row in set (0.00 sec)

3.3.查询某张表的表结构

通过desc 表名的方式可以看到指定表的表结构,包括有哪些字段以及字段的类型。

mysql> desc jszx_xgymjzxxb;
+------------------+-------------+------+-----+---------+-------+
| Field            | Type        | Null | Key | Default | Extra |
+------------------+-------------+------+-----+---------+-------+
| id               | int         | YES  |     | NULL    |       |
| bm               | varchar(10) | YES  |     | NULL    |       |
| name             | varchar(10) | YES  |     | NULL    |       |
| wd               | char(1)     | YES  |     | NULL    |       |
| first_injection  | char(1)     | YES  |     | NULL    |       |
| second_injection | char(1)     | YES  |     | NULL    |       |
| third_injection  | char(1)     | YES  |     | NULL    |       |
| jtyy             | varchar(50) | YES  |     | NULL    |       |
+------------------+-------------+------+-----+---------+-------+
8 rows in set (0.01 sec)

3.4.查询某张表的建表语句

通过show create table 表名的方式可以查询出数据表的建表语句,另外还会附带一些默认参数,例如CHARSET和COLLATE等等。

mysql> show create table jszx_xgymjzxxb;
| Table          | Create Table |
| jszx_xgymjzxxb | CREATE TABLE `jszx_xgymjzxxb` (
  `id` int DEFAULT NULL COMMENT '编号',
  `bm` varchar(10) DEFAULT NULL COMMENT '部门',
  `name` varchar(10) DEFAULT NULL COMMENT '姓名',
  `wd` char(1) DEFAULT NULL COMMENT '未打',
  `first_injection` char(1) DEFAULT NULL COMMENT '第一针',
  `second_injection` char(1) DEFAULT NULL COMMENT '第二针',
  `third_injection` char(1) DEFAULT NULL COMMENT '第三针',
  `jtyy` varchar(50) DEFAULT NULL COMMENT '具体原因'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='技术中心新馆疫苗接种信息表'

3.5.在现有表中添加新的字段

表结构创建完毕后,随着新需求的落地,就意味着要对表中当前字段以及类型进行修改,下面就来演示对于表的一系列修改操作。

为现有表添加字段的命令格式:ALTER TABLE 表名 ADD 字段名 类型(长度) [COMMENT 注释] [约束]

为jszx_xgymjzxxb张表中添加一个新字段jzqy(接种区域),类型为varchar,长度为30。

mysql> alter table jszx_xgymjzxxb add jzqy varchar(30) comment '接种区域';

查看表结构是否增加字段成功。

mysql> desc jszx_xgymjzxxb;
+------------------+-------------+------+-----+---------+-------+
| Field            | Type        | Null | Key | Default | Extra |
+------------------+-------------+------+-----+---------+-------+
| id               | int         | YES  |     | NULL    |       |
| bm               | float(10,0) | YES  |     | NULL    |       |
| name             | varchar(10) | YES  |     | NULL    |       |
| wd               | char(1)     | YES  |     | NULL    |       |
| first_injection  | char(1)     | YES  |     | NULL    |       |
| second_injection | char(1)     | YES  |     | NULL    |       |
| third_injection  | char(1)     | YES  |     | NULL    |       |
| jtyy             | varchar(50) | YES  |     | NULL    |       |
| jzqy             | varchar(30) | YES  |     | NULL    |       |				#成功增加
+------------------+-------------+------+-----+---------+-------+
9 rows in set (0.01 sec)

3.6.修改现有表中的字段数据类型和字段名称

修改表字段数据类型的命令格式:ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度)

修改表字段名称以及字段类型的命令格式:ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释] [约束];

将jszx_xgymjzxxb表的jtyy字段修改为wjzymjtyy(未接种疫苗具体原因),类型修改为varchar(100)。

mysql> alter table jszx_xgymjzxxb change jtyy wjzymjtyy varchar(100) comment '未接种疫苗具体原因';

查看表结构中字段是否修改成功。

mysql> desc jszx_xgymjzxxb;
+------------------+--------------+------+-----+---------+-------+
| Field            | Type         | Null | Key | Default | Extra |
+------------------+--------------+------+-----+---------+-------+
| id               | int          | YES  |     | NULL    |       |
| bm               | float(10,0)  | YES  |     | NULL    |       |
| name             | varchar(10)  | YES  |     | NULL    |       |
| wd               | char(1)      | YES  |     | NULL    |       |
| first_injection  | char(1)      | YES  |     | NULL    |       |
| second_injection | char(1)      | YES  |     | NULL    |       |
| third_injection  | char(1)      | YES  |     | NULL    |       |
| wjzymjtyy        | varchar(100) | YES  |     | NULL    |       |				#修改成功
| jzqy             | varchar(30)  | YES  |     | NULL    |       |	
+------------------+--------------+------+-----+---------+-------+

3.7.删除现有表中已存在的字段

删除表中的字段命令格式:ALTER TABLE 表名 DROP 字段名

删除jszx_xgymjzxxb表的jzqy字段

mysql> alter table jszx_xgymjzxxb drop jzqy;

查看表结构中jzqy字段是否被删除。

mysql> desc jszx_xgymjzxxb;
+------------------+--------------+------+-----+---------+-------+
| Field            | Type         | Null | Key | Default | Extra |
+------------------+--------------+------+-----+---------+-------+
| id               | int          | YES  |     | NULL    |       |
| bm               | float(10,0)  | YES  |     | NULL    |       |
| name             | varchar(10)  | YES  |     | NULL    |       |
| wd               | char(1)      | YES  |     | NULL    |       |
| first_injection  | char(1)      | YES  |     | NULL    |       |
| second_injection | char(1)      | YES  |     | NULL    |       |
| third_injection  | char(1)      | YES  |     | NULL    |       |
| wjzymjtyy        | varchar(100) | YES  |     | NULL    |       |
+------------------+--------------+------+-----+---------+-------+
8 rows in set (0.00 sec)

3.8.修改表的名字

修改表名称的命令格式:ALTER TABLE 表名 RENAME TO 新表名

mysql> alter table ygxxb rename to ryxxb;

3.9.删除数据表

删除数据库中的表有两种方式,一种是DROP直接删除表以及表中的数据,另一种是截断表,不删除表,只清空表中的数据。

删除表的命令:DROP TABLE [ IF EXISTS ] 表名

清空表数据的命令:TRUNCATE TABLE 表名

mysql> truncate table ryxxb;
mysql> drop table ryxxb;

4.DDL类型的SQL语句汇总

数据库层面

1)创建数据库的命令

CREATE DATABASE [IF NOT EXISTS] 数据库名称 [DEFAULT CHARSET 字符集] [COLLATE 排序规则];

2)查看MySQL中有哪些数据库

show databases;

3)进入某个数据库

use db_1;

4)查看当前处于哪个数据库中

select database();

表层面

1)创建一张数据表

CREATE TABLE 表名 (
	字段1 字段1的类型 [COMMENT 字段1的注释],
	字段2 字段2的类型 [COMMENT 字段2的注释],
	字段3 字段3的类型 [COMMENT 字段3的注释],
	......
	字段n 字段1的类型 [COMMENT 字段n的注释]
) [COMMENT 表的注释];

2)查看当前数据库中所有的数据表

show tables;

3)查询某张表的表结构

desc jszx_xgymjzxxb;

4)查询某张表的建表语句

show create table jszx_xgymjzxxb;

5)在现有表中添加新的字段

ALTER TABLE 表名 ADD 字段名 类型(长度) [COMMENT 注释] [约束]

6)修改表字段数据类型

ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度)

7)修改表字段名称以及字段类型

ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释] [约束];

8)删除表中的字段

ALTER TABLE 表名 DROP 字段名

9)修改表的名字

ALTER TABLE 表名 RENAME TO 新表名

10)删除数据表

DROP TABLE [ IF EXISTS ] 表名TRUNCATE TABLE 表名

到此这篇关于SQL语句中的DDL类型的数据库定义语言的文章就介绍到这了,更多相关SQL DDL数据库定义语言内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网!

您可能感兴趣的文章:MySQL教程数据定义语言DDL示例详解MySQL数据定义语言DDL的基础语句详解SQL四种语言:DDL DML DCL TCLMySQL数据库之内置函数和自定义函数 function详解SQL Server数据库架构和对象、定义数据完整性

  • 本文相关:
  • sql server 将xml变量转为json文本
  • sql语句性能优化(续)
  • sql编程的几个常识
  • sqlserver中几种典型的等待
  • 探讨sql compute by的使用分析
  • sql时间段切分实现每隔x分钟出一份高速门架车流量
  • sql server附加数据库报错无法打开物理文件,操作系统错误5的图文解决教程
  • sql存储过程的使用和介绍
  • sqlserver地址搜索性能优化
  • sql分组后二次汇总(处理表重复记录查询和删除)的实现方法
  • 数据库完整性的定义一般由SQL的()语句来实现。 是DDL还是D...
  • 在SQL的分类中哪些属于DML,哪些属于DDL,哪些属于DCL?
  • sql中,dml,dcl,dql,ddl分别代表什么意思?
  • 如何查询gp数据库ddl语句占用资源
  • SQL语句中,用于修改表数据的语句是ALTER
  • SQL语句中,用于修改表数据的语句是ALTER 还是UPDATE???
  • 使用SQL DDL语句创建一个数据库,该数据库的存储由两个数据...
  • SQL语言包括哪三种类型,每种类型又包括哪些语句
  • 在SQL的分类中有DML\\DDL\\DCL,哪些属于DML,哪些属于DDL...
  • SQL中的查询语句与事物控制分别属于DML、DDL、DCL中的...
  • SQL的函数中能用DDL语句吗?
  • 怎么样在PL/SQL中执行DDL语句
  • 在SQL的分类中哪些属于DML,哪些属于DDL,哪些属于DCL?
  • 什么是sql,sql语句的分类,常见的数据库对象以及所使用的数据字...
  • 如何通过pl/sql beautifier美化DDL语句
  • sql 语句dml与ddl都包括什么语句?
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全mssqlmysqlmariadboracledb2mssql2008mssql2005sqlitepostgresqlmongodbredisaccess数据库文摘数据库其它首页mssqlmysql教程数据定义语言ddl示例详解mysql数据定义语言ddl的基础语句详解sql四种语言:ddl dml dcl tclmysql数据库之内置函数和自定义函数 function详解sql server数据库架构和对象、定义数据完整性sql server 将xml变量转为json文本sql语句性能优化(续)sql编程的几个常识sqlserver中几种典型的等待探讨sql compute by的使用分析sql时间段切分实现每隔x分钟出一份高速门架车流量sql server附加数据库报错无法打开物理文件,操作系统错误5的图文解决教程sql存储过程的使用和介绍sqlserver地址搜索性能优化sql分组后二次汇总(处理表重复记录查询和删除)的实现方法sql server 2012 安装图解教程(附sql201sql server数据库入门学习总结microsoft sql server 2012 数据库安win7系统安装sqlserver2000的详细步骤(图文)sql重复记录查询的几种方法sqlserver中distinct的用法(不重复的记录)ddl、dml和dcl的区别与理解sql server错误代码大全及解释(留着备用)sql-order by 多字段排序(升序、降序)sql将一个表中的数据插入到另一个表中的方法sql分页查询方式汇总sql server中函数、存储过程与触发器的用法大数据量分页存储过程效率测试附测试代码与结果mssql server中的between and的使用sql server中数学函数的用法sqlserver substring函数使用方法小结sqlserver2014故障转移群集的部署的图文教程jdbc使用preparedstatement批量插入数据的方法详解sql server数据库架构和对象、定义数据完整性sql语句执行顺序详解
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved