MySQL中一些常用的数据表操作语句笔记

 更新时间:2016年03月31日 15:29:24   作者:GALAXY_ZMY  
这篇文章主要介绍了MySQL中一些常用的数据表操作语句笔记,其中重点讲解了删除关联表的方法,需要的朋友可以参考下

0.创建表

CREATE TABLE 表名 (属性名 数据类型 [完整性约束条件],
属性名 数据类型 [完整性约束条件],
属性名 数据类型 [完整性约束条件])

“完整性约束条件”是指指定某些字段的某些特殊约束条件。
在使用CREATE TABLE创建表时首先要使用USE语句选择数据库。比如有个example数据库,用USE EXAMPLE选择这个数据库。
表名不能用SQL的关键字,如create,update等,字母不区分大小写。
下面是一个创建表的例子:

create table example(id int, name varchar(20), sex boolean);

上例创建了example表,有三个字段,id整型,name字符串型,sex布尔型。
完整性约束条件是对字段进行限制。如果不满足完整性约束条件,数据库系统将不执行用户的操作,保护了数据库中数据的完整性。
下面是完整性约束条件:

  • PRIMARY KEY 标识该属性为该表的主键,可以唯一的标识对应的元组
  • FOREIGN KEY 标识该属性为该表的外键,是与之联系的某表的主键
  • NOT NULL 标识该属性不能为空
  • UNIQUE 标识该属性的值是唯一的
  • AUTO_INCREMENT 标识该属性的值自动增加
  • DEFAULT 为该属性设置默认值

1.查看表结构

describe 表名

describe可简写为desc。
describe语句可以查看表的基本的定义。包括字段名field,字段数据类型type,是否为空null,是否为主外键key,默认值default和额外信息extra。

2.查看表详细结构

show create table 表名

show create table 表名 \G

\G增强显示可查看性

show create table

 语句可以查看表字段,各字段数据类型,完整性约束条件,标的存储引擎,字符编码等.

3.修改表名

alter table 旧表名 rename [to] 新表名;

4.修改字段的数据类型

alter table 表名 modify 属性名 数据类型;

5.修改字段名

alter table 表名 change 旧属性名 新属性名 新数据类型;

旧属性名参数指修改前的字段名,新属性名参数指修改后的字段名,如果不指定数据类型则数据类型不变。

6.增加字段

alter table 表名 add 属性名1 数据类型 [完整性约束条件] [first] after 属性名2;

first可选项指此字段为表的第一个字段,after 属性名2指放在指定字段后面,默认最后一位。

7.删除字段

alter table 表名 drop 属性名;

8.删除关联表
(1)删除表的外键约束
外键是一个特殊字段,其将某一个表与其父表建立关联关系。在创建表的时候,外键约束就已经设定好了。去掉他们之间的关联关系需要用到下面语句。

alter table 表名 drop foreign key 外键别名;

外键别名参数指创建表时设置的外键代号。

(2)删除没有被关联的普通表

drop table 表名;

删除一个表时,表中的所有数据也会被删除。删除表时最好先将表中的数据备份一下。

(3)删除被其他表关联的父表
当删除有关联关系的表时,用drop table example1 会报错,原因是有外键依赖于该表

例如创建了一个example4表依赖于example1表,example4表的外键stu_id依赖于example1表的主键。example1表时example4表的父表。

如果要删除example4表,必须先去掉这种依赖关系。最简单的办法是先删除子表example4,然后删除父表example1。但这样可能会影响子表的其他数据。

另一种方法是先删除子表的外键约束,然后删除父表。这种方法不会影响子表的其他数据,可以保证数据库的安全。

比如,example4表的外键别名是d_fk,删除example4的外键约束

alter table example4 drop foreign key d_fk; 

可以通过show create table example4 \G来查看是否已删除。
然后再执行

drop table example1; 

.
执行成功则表示操作成功。

相关文章

  • SQL- join多表关联问题

    SQL- join多表关联问题

    这篇文章主要介绍了SQL- join多表关联问题,具有很好的参考价值,希望对大家有所帮助。
    2022-12-12
  • win7下mysql5.7.17安装配置方法图文教程

    win7下mysql5.7.17安装配置方法图文教程

    这篇文章主要为大家详细介绍了win7下mysql5.7.17安装配置方法图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • MySQL优化常用的19种有效方法(推荐!)

    MySQL优化常用的19种有效方法(推荐!)

    关于数据库优化,网上有不少资料和方法,但是不少质量参差不齐,有些总结的不够到位,内容冗杂,下面这篇文章主要给大家介绍了关于MySQL优化常用的19种有效方法,需要的朋友可以参考下
    2022-03-03
  • MySQL分区之LIST分区详解

    MySQL分区之LIST分区详解

    mysql分区之LIST分区讲解 MySQL中的LIST分区在很多方面类似于RANGE分区,下面这篇文章主要给大家介绍了关于MySQL分区之LIST分区的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • 如何恢复Mysql数据库的详细介绍

    如何恢复Mysql数据库的详细介绍

    这里说的MySql恢复数据库,是指没有通过正常备份的情况下,通过Mysql保存的数据文件如何恢复数据库
    2013-09-09
  • mysql把一段数据变成一个临时表

    mysql把一段数据变成一个临时表

    这篇文章主要介绍了mysql把一段数据变成一个临时表,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-02-02
  • MySQL按时间拆分千万级大表的实现代码

    MySQL按时间拆分千万级大表的实现代码

    这篇文章主要介绍了MySQL按时间拆分千万级大表,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-09-09
  • MySQL 处理插入过程中的主键唯一键重复值的解决方法

    MySQL 处理插入过程中的主键唯一键重复值的解决方法

    本篇文章主要介绍在插入数据到表中遇到键重复避免插入重复值的处理方法,主要涉及到IGNORE,ON DUPLICATE KEY UPDATE,REPLACE的相关知识,感兴趣的朋友一起学习吧
    2016-04-04
  • Linux下mysql源码安装笔记

    Linux下mysql源码安装笔记

    这篇文章主要为大家分享了Linux下mysql源码安装笔记,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • 一文带你搞懂MySQL的事务隔离级别

    一文带你搞懂MySQL的事务隔离级别

    这篇文章主要给大家介绍了MySQL事务隔离级别,事务隔离级别分别是读未提交,读已提交,可重复读,串行化,文中有详细的图文介绍,需要的朋友可以参考下
    2023-07-07

最新评论