一、数据定义语言(Data Definition Language)的基本操作

定义数据库、表等,包括CREATE语句、ALTER语句、DROP语句。CREATE语句用于创建数据库、数据表等,ALTER语句用于修改表的定义等,DROP语句用于删除数据库、删除表等
  1. # 查看所有数据库名称:
  2. show databases;
  3.  
  4. # 切换数据库;切换到test数据库:
  5. use information_schema;
  6.  
  7. # 显示所有表:
  8. show tables;
  9.  
  10. # 查询表内容:
  11. select * from CHARACTER_SETS;

二、DDL数据库的操作

2.1 创建数据库

  1. CREATE DATABASES 库名字 CHARSET 字符集;

  2. # 规范:关键字一般大写,库名字小写,使用utf8字符集
    CREATE DATABASE testdb charset utf8;
  3.  
  4. # 如果这个数据已经存在,那么会报错database exists
  5. create database student;
  6. # 如果不存在创建,存在就不创建!
  7. create database if not exists student;

忽略大小写参数:可以设置MySQL忽略大小写(全部变成小写),设置前提,是在规划数据库时就加上。如果后期加上,可能会导致use不到大写的库。

  1. show variables like '%lower%';
    # 将值设置为1,忽略大写小
  2. lower_case_table_names = 1

2.2 删除数据库

  1. DROP DATABASE student;
  2. # 如果存在删除,不存在就不删除
  3. drop database if exists student;
  4. # 删除名为test999的数据库。如果这个数据库不存在,那么会报错 database doesn't exist
  5. drop database student;

2.3 修改数据库的字符集

注意:修改后的字符集必须是前者的严格超集。修改有风险,编码不匹配会出现乱码。

  1. ALTER DATABASE student CHARSET utf8mb4;

三、DDL表的定义

3.1 创建表的语法

  1. help create table;
  2.  
  3. 创建表 CREATE TABLE 表名
  4. (
  5. 字段名1,数据类型[完整性约束条件],
  6. 字段名2,数据类型[完整性约束条件],
  7. ...
  8. 字段名n,数据类型[完整性约束条件]
  9. );

3.2数据类型

数值类型

日期和时间类型

字符串类型

3.3 约束条件

  1. PRIMARY KEY    # 主键约束,用于唯一标识对应的记录
  2. FOREING KEY    # 外键约束
  3. NOT NULL # 非空约束
  4. UNIQUE      # 唯一性约束
  5. DEFAULT # 默认值约束,用于设置字段的默认值

3.4 示例

  1. use webdb;
  2. -- DROP TABLE t1;
  3. CREATE TABLE t1 (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT '学生ID',
  4. NAME VARCHAR(20) NOT NULL COMMENT '学生姓名',
  5. age TINYINT COMMENT '学生年龄',
  6. gender ENUM('m','f') NOT NULL DEFAULT 'm' COMMENT '学生性别',
  7. birthday DATETIME DEFAULT NOW() COMMENT '入学时间',
  8. telnum varchar(12) NOT NULL UNIQUE COMMENT '手机号码');

3.5 查看表及表结构

  1. # 查看所有表
  2. SHOW TABLES;
  3.  
  4. # 查看t1表结构
  5. DESC t1;
  6.  
  7. # 查看创建表语句
    show create table t1;

3.7 修改表名

  1. # 将t1表名称修改为frist_grade
    ALTER TABLE t1 RENAME frist_grade;

3.8  修改字段名称

  1. # 修改字段名 ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型;
  2. ALTER TABLE frist_grade CHANGE birthday bir datetime DEFAULT CURRENT_TIMESTAMP COMMENT '入学时间';

3.9 修改字段类型

  1. # 修改字段的数据类型 ALTER TABLE 表名 MODFIY 字段名 数据类型;
    # 将NAME的长度修改为30
  2. ALTER TABLE frist_grade MODIFY NAME varchar(30);

3.10 添加字段

  1. # 添加字段 ALTER TABLE 表名 ADD 新字段名 数据类型;
  2.  
  3. # 在表的末尾增加一列
  4. ALTER table frist_grade ADD wechat VARCHAR (20) NOT NULL UNIQUE;
  5.  
  6. # 指定位置添加列,在birthday后面添加一个email列
  7. ALTER TABLE frist_grade ADD email VARCHAR(50) NOT NULL AFTER birthday;
  8.  
  9. # 在第一列位置,添加idcard列
  10. ALTER TABLE frist_grade ADD idcard VARCHAR(20) not NULL FIRST;

3.11 删除字段列

一定要认真审核,反复和开发人员确认,删除列时,会将此列原有数据全部清除掉。删除之前要备份

  1. # 删除字段 ALTER TABLE 表名 DROP 字段名;
  2. ALTER TABLE frist_grade DROP hobby;

3.12 删除表

  1. DROP TABLE frist_grade;

DDL(数据库定义语言)(五)的更多相关文章

  1. 数据库基础之一--DDL(数据库定义语言),DCL(数据库控制语言)

    Mysql是一个非常典型的C/S结构的应用模型,所以Mysql连接必须依赖于一个客户端或者驱动. 在linux中支持两种连接模式:TCP/IP模式和socket SQL语句的四部分: DDL:数据定义 ...

  2. MySQL进阶11--DDL数据库定义语言--库创建/修改/删除--表的创建/修改/删除/复制

    /*进阶 11 DDL 数据库定义语言 库和表的管理 一:库的管理:创建/修改/删除 二:表的管理:创建/修改/删除 创建: CREATE DATABASE [IF NOT EXISTS] 库名; 修 ...

  3. 第一天,Mysql安装,DDL(数据库定义语言),DBA,DML(数据库操纵语言),导入外面的sql文件

    把“D:\mysql-5.6.22-winx64\bin”添加到系统环境变量path中了,然后在任意目录可访问mysql等命令,这样如登录等操作就不需要进入MySQL安装目录才好执行! MySQL下载 ...

  4. Hive 官方手册翻译 -- Hive DDL(数据定义语言)

    Hive DDL(数据定义语言) Confluence Administrator创建, Janaki Lahorani修改于 2018年9月19日 原文链接 https://cwiki.apache ...

  5. sql 两大类 DDL数据定义语言 和DCL数据控制语言

    SQL分为五大类: DDL:数据定义语言   DCL:数据控制语言     DML:数据的操纵语言  DTL:数据事务语言  DQL:数据查询语言. DDL (date definition lang ...

  6. mysql DDL数据定义语言

    DDL数据定义语言 本节涉及MySQL关键字:create.alter(rename,add,chang,modify,drop).drop.delete.truncate等. -- 创建表:-- 数 ...

  7. DDL数据定义语言

    DDL数据定义语言 (一)概述 DDL(Data Definition Language):数据定义语言,用来定义数据库对象,库.表.列等:创建.删除.修改 库,表结构.主要分为操作数据库的DDL和操 ...

  8. oracle学习笔记(三) DCL 数据控制语言与 DDL 数据定义语言

    DCL 数据控制语言 Data control language 之前说过的授权和收权利语句 grant, revoke DDL 数据定义语言 Data define language create ...

  9. Oracle language types(语言种类) 表的相关操作 DDL数据定义语言

    数据定义语言 Data Definition Language Statements(DDL)数据操纵语言 Data Manipulation Language(DML) Statements事务控制 ...

随机推荐

  1. [LeetCode] 82. Remove Duplicates from Sorted List II 移除有序链表中的重复项之二

    Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numb ...

  2. 第01组 Beta冲刺(3/5)

    队名:007 组长博客: https://www.cnblogs.com/Linrrui/p/12008397.html 作业博客: https://edu.cnblogs.com/campus/fz ...

  3. 应用层协议:HTTP

    1. HTTP定义 HyperText Transfer Protocol,超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络 ...

  4. .NET Core:Api版本控制

    (1)先安装Microsoft.AspNetCore.Mvc.Versioning (2)在Startup的ConfigureServices方法中加入:services.AddApiVersioni ...

  5. 迁移历史sql数据

    --select * into Trade2018 from Aozzo_ODS..Trade t1 --where t1.Created<'2019-01-01' --创建索引 --creat ...

  6. 系统内置委托Action和func

    Action委托, action是系统内置的委托,它可指向无返回值,没有参数的方法. using System; using System.Collections.Generic; using Sys ...

  7. 四种软件开发模式:tdd、bdd、atdd和ddd的概念

    看一些文章会看到TDD开发模式,搜索后发现有主流四种软件开发模式,这里对它们的概念做下笔记. TDD:测试驱动开发(Test-Driven Development) 测试驱动开发是敏捷开发中的一项核心 ...

  8. [转] vue前端异常监控sentry实践

    1. 监控原理 1.1 onerror 传统的前端监控原理分为异常捕获和异常上报.一般使用onerror捕获前端错误: window.onerror = (msg, url, line, col, e ...

  9. Lambda表达式的用法

    参考:https://www.cnblogs.com/knowledgesea/p/3163725.html

  10. MVC+Ninject+三层架构+代码生成 -- 总结(三、實體類)

    一.動軟代碼生成器生成 實體類 2.VS視圖--實體類,其中Condition文件夾是存放 搜索的分頁信息 using System; using System.Collections.Generic ...