msq_table's methods2
-- 删除数据 自增长id被占用 -- 清楚所有数据并重置id 1truncate 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)
转载于:https://www.cnblogs.com/tangpg/p/8094328.html
msq_table's methods2相关推荐
- msq_table's methods
msq_table's methods -- 查看有哪些用户 host: % 代表任意地址都可以登录 host: localhost 代表仅本地可以连接select host,user from my ...
- 反射setaccessible_反射技术
反射机制作用 动态的加载类.动态的获取类的信息(属性,方法,构造器) 动态构造对象 动态调用类和对象的任意方法.构造器 动态调用和处理属性 获取泛型信息 处理注解 获取Class对象的方式有哪些? 1 ...
- javascript优缺点_为什么要在JavaScript中使用静态类型? 优缺点
javascript优缺点 by Preethi Kasireddy 通过Preethi Kasireddy 为什么要在JavaScript中使用静态类型? 优缺点 (Why use static t ...
- 【Groovy】编译时元编程 ( 利用注解进行 AST 语法树转换 | 定义注解并使用 GroovyASTTransformationClass 注明 AST 转换接口 | AST 转换接口实现 )
文章目录 一.利用注解进行 AST 语法树转换 1.定义注解并使用 GroovyASTTransformationClass 注明 AST 转换接口 2.AST 转换接口实现 3.定义 Groovy ...
- 【Groovy】编译时元编程 ( 编译时方法注入 | 使用 buildFromSpec、buildFromString、buildFromCode 进行方法注入 )
文章目录 一.在 MyASTTransformation#visit 方法中进行方法注入 1.使用 new AstBuilder().buildFromSpec 进行方法注入 2.使用 new Ast ...
- java class.getmethod_java反射之Class.getMethod与getDeclaredMethods()区别
Class对象的getMethods和getDeclaredMethods都是获取类对象的方法.但是又有所不同.废话不多说, 先看demo packagecom.westward;public cla ...
- 张志华 机器学习 两门课程正确顺序及视频连接
Note: 网上视频教程的顺序都是有错误的,查证后再看,不然心乱.. 1.统计机器学习 视频连接 视频顺序: 序号 名称 01. 概率基础 02. 随机变量1 03. 随机变量2 04. 高斯分布 0 ...
- 关于Java你不知道的那些事之Java注解和反射
点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:硬刚一周,3W字总结,一年的经验告诉你如何准备校招! 个人原创100W+访问量博客:点击前往,查看更多 作者:轻 ...
- Java之反射代码演示说明
还不存在的类–即我们需要使用反射来使用的类 Person类: package com.qf.demo4;public class Person {private String name;public ...
最新文章
- ssl握手过程和ca证书验证
- Ubuntu双系统Grub启动菜单修复
- caioj 1158 欧拉函数
- 软件质量保证与测试——Ad hoc Test
- 一步步部署基于Windows系统的Jenkins持续集成环境
- Python 中的全局变量
- ASP.NET MVC3 及其学习资源
- 2019-07-11 nginx 下网页显示乱码
- mysql between 边界
- STM32 CANFD 基础知识
- ENGLISH-剑桥-朗文-柯林斯-韦氏dictionary
- 反射+自定义属性拼接sql
- 【寻找最佳小程序】01期:影视评分小工具“豆瓣评分”——产品设计要点及专家评析
- 每天一句英语(有道)
- 线性代数(numpy.linalg)
- 【SeedLab】Packet Sniffing and Spoofing Lab
- When inserting 1, 2, 3, 6, 5, and 4 one by one into an initially empty AVL tree,which kinds of rotat
- matlab输出多个参数到表格固定列,matlab将excle的列提取出来?如何使用Matlab提取Excel中指定列的数据?...
- mysql insert 阻塞_insert遭遇阻塞
- Linux安装Googlepinyin
热门文章
- 计算机语言中的次方,浅谈Go语言中的次方用法
- curviloft插件怎么用_紫天学习星球教学:Curviloft (曲线放样) 插件完全功能讲解 (中文)...
- C++ callback函数
- SPOJ KGSS Maximum Sum (线段树)
- STM32 FSMC 详解
- 【机器视觉】基础知识---相机篇
- 烽火运维-20180830day
- Windows重启网络
- 你知道程序员为什么喜欢格子衫吗?原来是因为.......
- python的ubuntu环境怎么配置_Ubuntu Python 环境配置