-- 删除数据 自增长id被占用
-- 清楚所有数据并重置id 1 truncate table name;
-- 主键(唯一) id int primary key;
-- 主键内容不能重复,不能为空 create table test(
id int primary key auto_increment, -- auto_increment 自增长
name varchar(10) not null,
age char(5)
);

-- 删除 主键 有自增长需要先删除自增长 通过change改变该字段的自增长属性

alter table student change id id int not null;

alter table test drop primary key;

-- 复合主键

create table test(
id int;
name varchar(10) not null,
age char(5) null,
primary key(id,name,age)
); -- 只要是张表 都有id字段 通常只要存在id字段 ,那么基本上是主键 -- 自增 配合主键id使用 auto_increment
create table test(
id int primary key auto_increment;
name varchar(10) not null,
age char(5) null,
); -- 唯一键 unique key
-- 表里没有主键时,设置唯一键会显示主键的标志 PRI,但他本质还是唯一键
  
-- 删除唯一键
alter table test drop index `name`; -- name为字段名字

create table test(
name varchar(10) unique key , -- name 不能重复 要求唯一了
age char(5)
); create table test(
name varchar(10), -- name 不能重复 要求唯一了
age char(5),
unique key 'uni_name'(name)
);
-- 外键 foreign key 关联两张表的

-- 外键删除
alter table foreign_key drop foreign key `外键名`;  -- 外键名通过查看建表过程


外键的几种模式
* `restrict` 默认
* `cascade` 级联
* 父表更新 子表更新 父表删除 子表删除
* `set null` 置空
* 父表更新 子表置空 父表删除 子表置空 (前提 支持为空)

 
create database test;
use test; create table student(
id int primary key auto_increment,
name varchar(20) not null,
gender char(15) not null
); create table course(
id int primary key auto_increment,
name varchar(20)
); insert into student(name,gender) values('Which','male');
insert into student(name,gender) values('Tuple','male');
insert into student(name,gender) values('Rose','female'); insert into course values(1,'Python');
insert into course values(2,'Web');
insert into course values(3,'Java'); create table mark(
id int,
stu_id int,
course_id int,
score int not null,
primary key(id,stu_id,course_id),
constraint FK_ha foreign key(id) references course(id), -- 设置外键的名字
foreign key(course_id) references student(id)
);
-- 外键名字通过 show create table mark; 查看 insert into mark values(1,1,1,99);
insert into mark values(2,1,2,98);
insert into mark values(3,2,1,60);
insert into mark values(3,3,2,99);
mysql> select * from student;
+----+-------+--------+
| id | name | gender |
+----+-------+--------+
| 1 | Which | male |
| 2 | Tuple | male |
| 3 | Rose | female |
+----+-------+--------+
3 rows in set (0.00 sec) mysql> select * from course;
+----+--------+
| id | name |
+----+--------+
| 1 | Python |
| 2 | Web |
| 3 | Java |
+----+--------+
3 rows in set (0.00 sec) mysql> select * from mark;
+----+--------+-----------+-------+
| id | stu_id | course_id | score |
+----+--------+-----------+-------+
| 1 | 1 | 1 | 99 |
| 2 | 1 | 2 | 98 |
| 3 | 2 | 1 | 60 |
| 3 | 3 | 2 | 99 |
+----+--------+-----------+-------+
4 rows in set (0.00 sec)

 

msq_table's methods2的更多相关文章

  1. msq_table's methods

    -- 查看有哪些用户 host: % 代表任意地址都可以登录 host: localhost 代表仅本地可以连接select host,user from mysql.user; -- 建库 crea ...

  2. DIV+CSS中标签dl dt dd常用的用法

    转自:http://smallpig301.blog.163.com/blog/static/9986093201010262499229/ < dl>< /dl>用来创建一个 ...

  3. Java的反射机制(Reflection)

    反射机制 指可以在运动时加载.探知.使用编译期间完全未知的类 程序在运行状态中,可以动态加载一个只有名称的类,对于任意一个已加载的类,都能够获取这个类的属性和方法:对于任意一个对象可以调用它的任意一个 ...

  4. Java反射机制详解

    Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反 ...

  5. C# 对象深度拷贝

    转载 using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using ...

  6. java反射之Class.getMethod与getDeclaredMethods()区别

    Class对象的getMethods和getDeclaredMethods都是获取类对象的方法.但是又有所不同.废话不多说, 先看demo package com.westward; public c ...

  7. java反射快速入门(一)

    本文会从以下几个方面讲起 ① 反射的简单解释 ② java反射的API接口 及 demo ③ 反射的优缺点.应用场景 一.什么是反射? java反射:在程序运行中动态获取类的信息,及动态调用对象的方法 ...

  8. 如何实现SQL事务的提交,又不对外进行污染(2)

    紧接着上文,这里主要记录事务操作,实现多实体的功能 在SqlTran类中添加方法如下: 1.两个不同实体类型的事务方法: /// <summary> /// 执行事务(事务中不同实体) / ...

  9. Java反射探索研究(转)

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankakay 摘要:本文详细深入讲解是Java中反射的机制,并介绍了如何通过反射来生成对象.调用函数.取得 ...

随机推荐

  1. STM32 用c语言控制4个LED灯从左向右无限流动

    在用c语言写LED流水灯的前提条件是配置好其他环境,这里我就不说环境了, 想让LED灯无限循环时,首先要想到的是无限循环函数,我这里利用的是for函数 无限循环. #include "stm ...

  2. 51Nod 1091:线段的重叠(贪心)

    1091 线段的重叠  基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题  收藏  关注 X轴上有N条线段,每条线段包括1个起点和终点.线段的重叠是这样来算的,[10 ...

  3. 查看图片插件--Viewer(类似于qq和微信聊天 的查看图片)

    Viewer的github地址:https://github.com/fengyuanchen/viewer  下载该插件(在文件夹dist里面) 具有参考价值的几个网站:http://www.dow ...

  4. int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型

    使用 Nullable<T> 我们可以为原本不可能为 null 的值类型像引用类型那样提供一个 null 值.不过注意:Nullable<T> 本身也是个 struct,是个值 ...

  5. centos7下安装momgodb3

    简介 MongoDB 是一个基于分布式 文件存储的NoSQL数据库 由C++语言编写,运行稳定,性能高 旨在为 WEB 应用提供可扩展的高性能数据存储解决方案 查看官方网站 MongoDB特点 模式自 ...

  6. Hadoop全分布模式操作

    http://blog.csdn.net/wangloveall/article/details/20767161 摘要:介绍Hadoop全分布模式操作,实现真正意义上的集群架构. 关键词:Hadoo ...

  7. nginx 配置 vhosts 的方案

    网上有很多种 nginx 配置 vhosts,来个比较方便的. 步骤如下: 在 conf 目录建一个vhosts 目录. 在 nginx.conf 末尾加入 include vhosts/*.conf ...

  8. 什么是Asp.net Core?和 .net core有什么区别?(转)

    什么是Asp.Net core 我相信很多C# Developer已经对于.net core不算陌生了,就算没有正式使用相信也应该有所了解.微软在推出来.net core的同时为了方便一些原有的项目可 ...

  9. Qt下 QString转char*(转)

    Qt下面,字符串都用QString,确实给开发者提供了方便,想想VC里面定义的各种变量类型,而且函数参数类型五花八门,经常需要今年新那个类型转换 Qt再使用第三方开源库时,由于库的类型基本上都是标准的 ...

  10. 两数之和 Two Sum

    给定一个整数数列,找出其中和为特定值的那两个数. 你可以假设每个输入都只会有一种答案,同样的元素不能被重用. 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 n ...