-- 删除数据 自增长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. Mr. Kitayuta's Colorful Graph CodeForces - 506D(均摊复杂度)

    Mr. Kitayuta has just bought an undirected graph with n vertices and m edges. The vertices of the gr ...

  2. BZOJ4475: [Jsoi2015]子集选取【找规律】【数学】

    Description Input 输入包含一行两个整数N和K,1<=N,K<=10^9 Output 一行一个整数,表示不同方案数目模1,000,000,007的值. Sample In ...

  3. HDU 3342:Legal or Not(拓扑排序)

    Legal or Not Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tot ...

  4. 进程间通信--POSIX信号量

    1.未决和阻塞标志可以用相同的数据类型sigset_t来存储,sigset_t称为信号集,这个类型可以表示每个信号的“有效”或“无效”状态,在阻塞信号集中“有效”和“无效”的含义是该信号是否被阻塞,而 ...

  5. HTML/CSS/Javascript代码在线压缩、格式化(美化)工具

    CSS 格式化 ProCSSor - http://procssor.com/   CSS 压缩 CSS Compressor - http://www.cssdrive.com/index.php/ ...

  6. ZooKeeper 知识点

    zookeeper 命令: 命令 说明 ./zkServer.sh start 启动ZooKeeper(终端执行) ./zkServer.sh stop 停止ZooKeeper(终端执行) ./zkC ...

  7. php常量PHP_EOL

    换行符 unix系列用 \n windows系列用 \r\n mac用 \r PHP中可以用PHP_EOL来替代,以提高代码的源代码级可移植性 如: <?php echo PHP_EOL; // ...

  8. POJ2777(线段树裸题)

    题目:http://poj.org/problem?id=2777 别忘了各地的return: 有可能输入的L<R,手动swap: 似乎是多组输入? pushup和pushdown的位置. (原 ...

  9. 【jmeter】Jmeter进行分布式性能测试

    由于Jmeter本身的瓶颈,当需要模拟数以千计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至还会引起JAVA内存溢出的错误.要解决这个问题,可以使用分布式测试,运行多台机器运行所谓的 ...

  10. 豆瓣源安装python包

    例如安装scrapy: pip install -i https://pypi.douban.com/simple/ scrapy