day40数据库之表的相关操作
数据库之表的相关操作
1.表的操作:
1、创建表的语法:
create table 表名(
id int(10) primary key auto_increment,
字段1 类型[(宽度) 约束条件],
字段1 类型[(宽度) 约束条件],
字段1 类型[(宽度) 约束条件],);
2、给表添加数据的操作:
insert into 表名(字段名) valuse(数据)
3.约束相关:
1.约束是除了数据类型以外额外添加的约束是为了保证数据的合法性,完整性
2.约束分类
not null 非空约束 数据不能为空
create table student (id ind,name char(10) not null);
default 默认值约束 可以指定字段的默认值
create table user (id ind,sex char(1) default "woman");
unique 唯一性约束 该字段的值不能重复
1.unique其实是一种索引,用于提高查询效率
可以为空一张表中可以有多个唯一约束
2.单列唯一约束
create table t5(idcard char(18) unique);
多列联合唯一约束
create table t6(idcard char(18),phonenumber char(11),unique(idcard,phonenumber));
primary key ****** 称之为主键约束
1.用于唯一标识表中一条记录
2.primary key:单单从约束角度去看,primary key就等同于not null unique
1、一张表中必须有,并且只能有一个主键
2、一张表中都应该有一个id字段,而且应该把id字段做成主键
3、同一个表中不可以有多个主键,没有任何意义
3.语法:create table stu (stuid int primary key);
4.有主键 和没有主键的区别
1.无法区分两个相同记录 比如班级里有两个人名字相同
2.有主键则意味有这索引 效率更高
3.可以建立关联关系
5.多列联合主键:
create table t8(idcard char(18),phonenumber char(11),primary key(idcard,phonenumber));
auto_increment ****** 自动增长,只能用于整型,默认起始位置是1,步长也为1
1、通常与primary key连用,而且通常是给id字段加
2、auto_incremnt只能给被定义成key(unique key,primary key)的字段加
3、如果主键是自动增长,你可以跳过这个字段,也可以为它插入null,都可以
4、修改自动增长的起始位置 **
alter table t9 auto_increment = 7;
foreign key ****** 外键:专门用于为表和表之间,建立物理关联(分表的结合),
1、约束1:在创建表时,先建被关联的表dep,才能建关联表emp
先创建关联表
create table dep(id int primary key auto_increment,manager char(10));
再创建被关联表,(foreign key)外键加到从表上
create table emp(id int primary key auto_increment,dept_id int,foreign key(dept_id) references dept(id));
2、约束2:在插入记录时,必须先插被关联的表dep,才能插关联表emp
3、约束3:更新与删除都需要考虑到关联与被关联的关系
主表dep应该先插入 ,从表emp后插入
在删除主表dep前,要保证从表emp都删除了
在更新部门编号前,要先保证没有员工关联到这个部门
4、级联操作 指的是就是同步更新和删除
语法:在创建外键时 在后面添加 on update cascade同步更新 on delete cascade同步删除
create table class(id int primary key auto_increment);
create table student(id int primary key auto_increment,
c_id int,
foreign key(c_id) references class(id) on update cascade on delete cascade);
5、多对多关系的处理:
建立一个第三方表 ,专门存储两个表之间的关系
这个关系表 应该有两个字段 分别关联学生的id 和老师的id
为了保证 数据的合法性 完整性 给这两个字段都添加外键约束
create table t_s (t_id int,
s_id int auto_incremnt primary key, #为了避免重复无用的关系数据 关系表加上关联的主键约束
foreign key(t_id) references teacher(id),
foreign key(s_id) references student(id),
primary key(t_id,s_id)
);
day40数据库之表的相关操作的更多相关文章
- [MySQL数据库之表的详细操作:存储引擎、表介绍、表字段之数据类型]
[MySQL数据库之表的详细操作:存储引擎.表介绍.表字段之数据类型] 表的详细操作 存储引擎 mysql中建立的库======>文件夹 库中建立的表======>文件 用来存储数据的文件 ...
- MYSQL--表与表之间的关系、修改表的相关操作
表与表之间的操作: 如果所有信息都在一张表中: 1.表的结构不清晰 2.浪费硬盘空间 3.表的扩展性变得极差(致命的缺点) 确立表与表之间的关系.一定要换位思考(必须在两者考虑清楚之后才能得出结论) ...
- 【Java框架型项目从入门到装逼】第九节 - 数据库建表和CRUD操作
1.新建学生表 这节课我们来把和数据库以及jdbc相关的内容完成,首先,进行数据库建表.数据库呢,我们采用MySQL数据库,我们可以通过navcat之类的管理工具来轻松建表. 首先,我们得建一个数据库 ...
- Oracle language types(语言种类) 表的相关操作 DDL数据定义语言
数据定义语言 Data Definition Language Statements(DDL)数据操纵语言 Data Manipulation Language(DML) Statements事务控制 ...
- 对mysql数据库表的相关操作
虫师博客(Python使用MySQL数据库(新)): https://www.cnblogs.com/fnng/p/3565912.html 1.更改表的结构,增加一个字段放置新增的属性 alter ...
- MySQL(3) - 数据库表的相关操作
1.数据库表的创建 逻辑库 1)创建逻辑库:CREATE DATABASE 逻辑库名称; 2)显示逻辑库:SHOW DATABASES; 3)删除逻辑库:DROP DATABASE 逻辑库名称; 数据 ...
- Mac下安装MySQL、Workbench以及建数据库建表最基础操作
刚用上Mac,什么都不懂,加之以前还没有用过mysql,就想着在Mac上装一个mysql来自己玩,奈何,在网上找了大半天,没有一个干货!愤怒!下面是我安装的过程,希望能帮到和我情况差不多的朋友 首 ...
- Oracle之表的相关操作
#添加字段 格式: alter table table_name add column_name datatype; 例子: alter table userinfo ); desc userinfo ...
- MySQL表的相关操作
操作数据表之前,必须先选择相应数据表所在的数据库 mysql> USE databaseName; -- 选择数据库 查看该数据库下的数据表 mysql> show tables; 确定数 ...
随机推荐
- 羽翼metasploit第一,二季学习笔记
-----------------第一季-------------------- 启动Metasploit:msfconsole 升级和更新:./msfupdate 直接退出:exit 退回上一级:q ...
- Java servlet 实现的简易购物车
首页 2.购买页 3.购物车页 1. 首页代码 发送一个post请求 <!DOCTYPE html><html lang="en"><head> ...
- vue项目目录结构
VUE项目目录结构 如上图所示,我们的目录结构就是这样的了. 目录/文件 说明 build 这个是我们最终发布的时候会把代码发布在这里,在开发阶段,我们基本不用管. config 配置目录,默认配置没 ...
- VSTO:使用C#开发Excel、Word【14】
操作workbooks集合可从Application对象的Workbooks属性中获取的Workbooks集合包含当前在应用程序中打开的Workbook对象的集合. 它还具有用于管理开放工作簿,创建新 ...
- SQL Server--------SQL Server问题错误解决
1.错误提示: 修改字段属性时,提示: 消息 5074,级别 16,状态 1,第 1 行对象'DF__dms_deliv__sync___51BAE991' 依赖于 列'sync_ff_result_ ...
- PHP输出中文乱码问题解决
在php文件的最上面加上下面的语句: header('Content-Type: text/html; charset=utf-8'); 如下图:
- 剑指Offer 50. 数组中重复的数字 (数组)
题目描述 在一个长度为n的数组里的所有数字都在0到n-1的范围内. 数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重复几次.请找出数组中任意一个重复的数字. 例如,如果输入长度为 ...
- Day 1: ASP.NET and JavaScript Jan.16th Trying
ASP.NET has its own named controls(tags) corresponding to that in an HTML document, such as <asp: ...
- Python学习笔记第二十七周(Bootstrap)
目录: 全局样式 一.栅格系统 二.表单 三.按钮 四.导航 五.按钮组 六.面板 七.表格 八.分页 九.排版 十.图片 十一.辅助类 十二.响应式工具 组件 内容: 前言: 首先通过https: ...
- 样本失衡会对SVM的影响
假设正类样本远多于负类 1.线性可分的情况 假设真实数据集如下: 由于负类样本量太少,可能会出现下面这种情况 使得分隔超平面偏向负类.严格意义上,这种样本不平衡不是因为样本数量的问题,而是因为边界点发 ...