删除数据库表

drop table [if exists] 表一,表二.....;

表分区:比如图书信息表有1000万个图书信息,如何优化他,其中一种方式就是表分区。就是把一张表的数据分成多个区块,这些区块可以在同一个磁盘上,也可以在不同的磁盘上。

基本操作如下:

先创建bookinfo的表,然后分区“partition by range(xx)”就是通过xx来分区。

里面分了三个区,p1,p2,p3.分别为20109999之前,20159999之前,和其他。

向表中插入数据“insert into xx values(xx,'xx')”

查看每个分区的内容"select * from xx partition(xx)"

主键的概念:

表中的每一行都应该具有可以唯一标识自己的一列(或一组列)。而这个承担标识作用的列称为主键
如果没有主键,数据的管理将会十分混乱。比如会存在多条一模一样的记录,删除和修改特定行十分困难。

外键

通俗的说就是两个表相关联,连接这俩表的那个字段就是外键

约束

通过对表的行和列的数据做出限制,来确保数据的完整性和唯一性。

一般有非空约束,主键约束,唯一约束,默认约束,外键约束。

比如图书编号和类别编号就要主键约束,类别编号就要外键约束,书名非空约束和唯一约束。

非空约束

表的创建默认为空(NULL),设为非空约束后,如果在添加数据时,没有指定值,则会报错。

在创建是设置。

也可以通过修改表的方法来来添加发非空约束。

这样插入数据就会报错

可以通过修改数据类型来改变约束

主键约束

要求主键列的数据唯一,并且不为空,能够唯一标识表的一条记录。

一张表最多一个主键约束

第一种创建 列名后加primary key

或者指定constraint xx primary key(xx)pk_id是自己定义的主键名称。

通过修改也可以添加主键

1.alter table bookinfo2 add primary key(book_id);

2.alter table bookinfo2 modify book_id int primary key;

3.alter table bookinfo2 add constraint pk_id primary key(book_id);

删除主键

直接alter table bookinfo2 drop primary key;

也可以有多字段联合主键或叫复合主键

create table bookinfo2(
book_id int,
book_name char(20),
primary key(book_id,book_name)
);

唯一约束

方法和前面一样  可以直接在列名后 加上unique 或者constraint uk_banme unique(xx)

修改添加的话

默认约束

外键约束

数据库Mysql的学习(三)-各种约束的更多相关文章

  1. MySQL基础(三)——约束

    MySQL基础(三)--约束 约束是在表上强制执行的数据校验规则,主要用于维护表中数据的完整性以及当数据之间有以来关系时,保护相关的数据不会被删除. 根据约束对列的限制,可以划分为:单列约束(只约束一 ...

  2. 数据库MySql的学习(1)--基本操作

    转自 博客园-hoojo-http://www.cnblogs.com/hoojo/archive/2011/06/20/2085390.html 一.数据库简单介绍 1. 按照数据库的发展时间顺序, ...

  3. nodejs的mysql模块学习(三)数据库连接配置选项详解

    连接选项 当在创建数据连接的时候 第一种大多数人用的方法 let mysql = require('mysql'); let connection = mysql.createConnection({ ...

  4. 数据库Mysql的学习(八)-储存过程和事务和导入导出

    储存过程 DELIMITER // CREATE PROCEDURE pro1() BEGIN SELECT book_id,book_name,category FROM bookinfo t1 J ...

  5. 数据库Mysql的学习(二)-数据类型和创建

    数据类型:数据列,存储过程参数,表达式和局部变量的数据特征. 整形: tinyint:一个字节,-128到127:2的7次方 smallint:两个字节,-32768到32767:2的15次方 med ...

  6. 数据库Mysql的学习(一)-启动和进入

    数据库:按照数据结构来组织储存和管理数据的仓库. Mysql是关系型数据库管理系统 Mysql安装好之后... mysql的启动 1:通过控制面板里的”服务“找到mysql右键启动即可 2:开始菜单搜 ...

  7. 数据库Mysql的学习(六)-子查询和多表操作

    )*0.05 WHERE card_id ='20121xxxxxx'; //子查询就是一个嵌套先计算子查询 SELECT * FROM borrow WHERE book_id =(SELECT b ...

  8. 数据库Mysql的学习(五)-运算符与函数

    ,store,store,store,store FROM bookinfo;//加减乘除取余 //余额大于200 //余额不等于200 SELECT * FROM readerinfo WHERE ...

  9. 数据库Mysql的学习(七)-自定义函数和流程控制

    DELIMITER // (设置结束符 其实我也不太明白为啥要这样 记住就行把) CREATE FUNCTION ym_date(mydate DATE) (创建函数 函数名字(参数)) ) (指定函 ...

随机推荐

  1. UI到底应该用xib/storyboard完成,还是用手写代码来完成?

    UI到底应该用xib/storyboard完成,还是用手写代码来完成? 文章来源:http://blog.csdn.net/libaineu2004/article/details/45488665 ...

  2. redhat5本地源NBD驱动安装

    1.将镜像挂载到本机上 1)将系统ISO镜像放到自己电脑/root下     lsb_release -a 查看系统类型 2)在(/)目录下,建立yum目录     mkdir /root/yum 3 ...

  3. iOS之在AppDelegate中push到指定页面

    UITabBarController *tbc = (UITabBarController *)self.window.rootViewController; UINavigationControll ...

  4. ABAP术语-SAPNET

    SAPNET 原文:http://www.cnblogs.com/qiangsheng/archive/2008/03/17/1109823.html SAPNet is the intranet p ...

  5. pt-query-digest慢日志分析工具

    简介 pt-query-digest是用于分析mysql慢查询的一个工具,它可以分析binlog.General log.slowlog,也可以通过SHOW PROCESSLIST或者通过tcpdum ...

  6. 解决微信小程序安卓手机访问不到图片,无法显示图片

    关于微信小程序不显示图片 通病可能有以下几个可能性: 非本地图片:确定图片资源存在,copy 图片url再浏览器打开,确定图片资源存在且能正常访问 本地图片:确定相对路径或者绝对路径正确 微信小程序图 ...

  7. 在 Ubuntu Linux 14.04 LTS 上安装php7

    首先添加php官方源 $ sudo add-apt-repository ppa:ondrej/php 然后更新源 $ sudo apt-get update 然后安装 $ sudo apt-get ...

  8. 导入/导出excel和PHPExcel基本使用

    * PHPExcel基本使用 * PS:文章如果有误,请及时指出,给予修改 * 项目中导入PHPExcel * 可以去网上下载 github composer 都可以 * 为了方便下载,我将压缩包添加 ...

  9. centos7下使用n grok编译服务端和客户端穿透内网

    (发现博客园会屏蔽一些标题中的关键词,比如ngrok.内网穿透,原因不知,所以改了标题才能正常访问,) 有时候想在自己电脑.路由器或者树莓派上搭建一些web.vpn等服务让自己用,但是自己的电脑一般没 ...

  10. vowels_单元音

    vowels(美式): 单元音: [i]:需要用劲喊出类似于“yi”的四声,费力咧开嘴,单词eat.need.thief.meet. [?]:卷舌音,单词bird.her.worry.certain. ...