DDL常用语句(一)

  • 操作数据库
  • 操作表
    • 约束

操作数据库

创建库:

create database 数据库名;

创建库是否存在,不存在则创建:

create database if not exists 数据库名;

查看所有数据库:

show databases;

查看某个数据库的定义信息:

show create database 数据库名;

修改数据库字符信息:

alter database 数据库名 character set utf8;

删除数据库:

drop database 数据库名;

使用指定数据库:

use 数据库名;

操作表

以下我以列名为字段名,便于理解。

约束

一种限制,对表的数据做出约束,确保其完整性和唯一性。

  • mysql中约束主要有六种

    • NOT NULL :非空约束,用于约束该字段的值不能为空。
    • DEFAULT :默认值约束,用于约束该字段有默认值,约束当数据表中某个字段不输入值时,自动为其添加一个已经设置好的值。
    • PRIMARY KEY:主键约束,用于约束该字段的值具有唯一性,至多有一个,可以没有,并且非空。
    • UNIQUE:唯一约束,用于约束该字段的值具有唯一性,可以有多个,可以没有,可以为空。
    • CHECK:检查约束,用来检查数据表中,字段值是否有效。
    • FOREIGN KEY:外键约束,外键约束经常和主键约束一起使用,用来确保数据的一致性,用于限制两个表的关系,用于保证该字段的值必须来自于主表的关联列的值。在从表添加外键约束,用于引用主表中某列的值。

创建表:

create table 表名(列名1 类型 [约束],列名2 类型 [约束],列名3 int|bigint [约束] [auto_increment],...[constraint 外键名] foreign key(你的外键列名) references 被添加外键表名(设为被添加外键的列名) [外键中的级联关系])[engine=innoDB|myISAM default charset=字符集];-- 注:[]里的内容为可加可不加,或根据需要加
-- [engine参数用来设置引擎类型,常用的有innoDB和myISAM引擎]
-- 外键中的级联关系:[ON DELETE RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT][ON UPDATE RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT]RESTRICT:限制外表中的外键改动,默认值CASCADE:跟随外键改动SET NULL:设空值SET DEFAULT:设默认值NO ACTION:无动作,默认的

复制表:

-- 只复制表结构及约束,但不复制数据
create table 复制出的表名 like 原表名;
-- 复制表结构及数据,但不复制约束
create table 复制出的表名 as select * from 原表名;
  • 添加表的一列

    alter table 表名 add [column] 列名 列类型 [约束] [first|after 某列名];
    -- 注:[]里的内容为可加可不加,或根据需要加
    
  • 添加主键和唯一标识

    alter table 表名 add PRIMARY KEY(列名);
    alter table 表名 add UNIQUE KEY(列名);
    
  • 添加外键约束

    -- 自己指定外键的名字(删除外键需要外键的名字)
    alter table 表名 add constraint 外键名 foreign key(设为外键的列名) REFERENCES 外表表名(对应的表的主键列名);
    -- 例:alter table student add constraint stu_1 foreign key(id) references class(id);-- 系统自动生成一个外键的名字(用'show create table 表名'查看外键名字)
    alter table 需要添加外键表名 add FOREIGN KEY 需要添加外键表名(设为外键的列名) REFERENCES 被添加外键表名(设为被添加外键的列名);
    -- 例:alter table student add foreign key student(id) references class(id);
    

    注:一个表可以又多个外键,每个外键必须参照另一个主键;被外键约束的列,取值必须参照其主表列中的值(通常先创建主表,再创建从表)

查看表结构

desc 表名;

查看创建表的SQL语句

show create table 表名;

删除表:

drop table 表名;
drop table if exists 表名;
  • 删除表的一列

    alter table 表名 drop [column] 列名;
    
  • 删除表的列的约束

    • 删除主键

      alter table 表名 drop primary key;
      
    • 删除外键

      alter table 表名 drop foreign key 外键名;
      
    • 删除索引

      alter table 表名 drop index 索引的列名;
      

修改表名:

alter table 表名 rename [to] 新表名;
-- 注:[]里的内容为可加可不加,或根据需要加
rename table 表名 to 新表名;
  • 修改表的列名的类型(不可修改列名)

    alter table 表名 modify [column] 列名 列类型 [约束] [first|after 某列名];
    -- 例:alter table teacher modify name varchar(10);
    alter table 表名 change [column] 列名 列名 列类型 [约束] [first|after 某列名];
    -- 例:alter table teacher change name name varchar(11) first;
    
  • 修改表的列名(可修改列名)

    alter table 表名 change [column] 原列名 新列名 列类型 [约束] [first|after 某列名];
    -- 例:alter table teacher change id teacher_id varchar(11);
    

    注:change也可以用来修改列的属性,但列名要写两次,所以只修改列的属性时用modify比较方便,修改列名用change

DDL常用语句(一)相关推荐

  1. DDL、DML介绍及常用语句

    一.介绍 DDL(Data Definition Language 数据定义语言) DDL用于操作对象和对象的属性,这种对象包括数据库本身,以及数据库对象,像:表.视图等等,DDL对这些对象和属性的管 ...

  2. mysql 查询和修改组合_## 超详细MySQL常用语句,增删查改

    ## MySQL常用语句,增删查改,安装配置mysql服务 ***#新手博客,应届生,谢谢支持哟 记得点赞关注哟*** ***-----sql常见命令:--------*** 安装服务:mysqld ...

  3. MySQL数据库增删改查常用语句详解

    MySQL数据库增删改查常用语句详解 一 MySQL数据库表结构 1.1 常见数据类型 1.2 常用约束类型 1.3 MySQL存储引擎 二 DDL语句:数据定义语句 2.1 修改数据库密码 2.1. ...

  4. sqlserver2012常用语句

    sqlserver2012常用语句 /创建数据库/ create database zhjdb on primary ( name='zhj_dbz', filename='E:\gongzuo_hc ...

  5. MySQL常用语句(CURD)

    文章目录 一.数据库定义语言(DDL) 1.1 库操作 1.2 表操作 二.数据库操纵语言(DML) 2.1 插入 insert 2.2 修改 update 2.3 删除 delete 三.数据库查询 ...

  6. VBA经典常用语句400句

    VBA经典常用语句400句 定制模块行为 (1) Option Explicit '强制对模块内所有变量进行声明 Option Private Module '标记模块为私有,仅对同一工程中其它模块有 ...

  7. python基础常用语句-Python基本语句

    在学习W3Cschool python高级教程之前,大家接触过许多python语句,在本文中我们将Python一些基本的常用语句做了汇总,并简单介绍下这些python常用语句的用途和标准格式,放在一起 ...

  8. python 语言-Python语言的一些基本常用语句

    在学习玩蛇网python教程高级篇之前,大家接触过许多python语句,在本文中我们将Python一些基本的常用语句做了汇总,并简单介绍下这些python常用语句的用途和标准格式,放在一起方便大家参考 ...

  9. CSDN的Markdown编辑器常用语句

    CSDN的Markdown编辑器还是挺好用的,比那个富文本编辑器用起清爽得多,那个富文本编辑器常常是一个换行符留很宽的距离,而且插入图片.代码等都没有Markdown编辑器方便.Markdown编辑器 ...

最新文章

  1. 《大数据、小数据、无数据:网络世界的数据学术》一 导读
  2. POJ 3414 Pots(罐子)
  3. 【Android FFMPEG 开发】FFMPEG 读取音视频流中的数据到 AVPacket ( 初始化 AVPacket 数据 | 读取 AVPacket )
  4. eclipse mac 下载php文件夹,PHP Pydev Eclipse (linux or mac)
  5. android通过数组,流播放声音的方法,音频实时传输
  6. node工程默认url_node.js处理url常用方法
  7. Rxjs 的一些学习笔记
  8. 【TensorFlow】随机训练和批训练的比较与实现
  9. 2017年机器之心北京开会_2017年成为机器人的感觉
  10. Basic INFO: InstallShield中如何获取所调用Exe的返回值
  11. asp.net文本编辑器FCKeditor使用方法详解 - 橙色大地 - 博客园
  12. Python实现RFM模型
  13. EPLAN P8.2.7 学习版安装教程(适用于 Win10 64位)
  14. ETL开发工具Kettle下载安装环境搭建及使用教程
  15. vue基础(三)——vue实例化对象
  16. windows系统中nul文件删不掉,文件夹无法删除出现无法删除nul参数不正确,MS-DOS命令无效,等各种难以删除的文件或者文件夹
  17. linux 内存强度测试软件,Linux系统性能测试工具(一)——内存带宽测试工具mbw...
  18. 蚂蚁区块链的新计划与BAT的新动向 |链捕手
  19. android高德地图截屏,高德地图-地图截屏
  20. java线程状态——java线程状态图

热门文章

  1. linux中文件重命名_如何在Linux中重命名文件?
  2. HTML基础标签:标题段落空格链接图像强调
  3. Android studio 底部的状态栏不见了如何显示
  4. python源码打包exe、exe反编译
  5. Microsoft .NET Framework 4.5.2:NDP452-KB2901907-x86-x64-AllOS-ENU下载地址
  6. 对未来计算机的畅想英语50个单词,《英语2》作业
  7. mysql update 排他锁_数据库:Mysql中“select ... for update”排他锁分析
  8. python爬取“舔狼”语录-助你520之前找到girlfriends
  9. T+Cloud专属云18.0安装
  10. 华为p50是鸿蒙系统,华为p50是鸿蒙系统吗_华为p50是不是鸿蒙系统