MySQL入门很简单: 4 创建 修改删除表
1. 创建表的方法
1)创建表的语法形式
首先,选择数据库:
USE 数据库名;
创建表:
CREATE TABLE 表名 (属性名 数据类型 [完整性约束条件],
属性名 数据类型 [完整性约束条件],
属性名 数据类型
);

2)设置表的主键
主键用于标识每一个记录, 主键必须唯一。
单字段主键: 主键是由一个字段构成的
语法规则: 属性名 数据类型 PRIMARY KEY 例子: CREATE TABLE example1(stu_id INT PRIMARY KEY,
stu_name VARCHAR(20),
stu_sex BOOLEAN
);
多字段主键:主键由多个属性组合而成,在属性定义完之后统一设置主键
语法: PRIMARY KEY (属性名1, 属性名2,... , 属性名n) 例子: CREATE TABLE example2( stu_id INT,
course_id INT,
grade FLOAT,
PRIMARY KEY(stu_id, course_id)
);
3)设置表的外键

CREATE TABLE example2( stu_id INT,
course_id INT,
grade FLOAT,
PRIMARY KEY(stu_id, course_id)
); 在example3表中设置stu_id 和course_id 为外键,与之相关联的example1表中的主键stu_id和course_id CREATE TABLE example3( id INT PRIMARY KEY,
stu_id INT,
course_id INT,
CONSTRAINT c_fk FOREIGN KEY (stu_id, course_id)
REFERENCES example2(stu_id, course_id)
); 运行后,example3表中包含3个字段,其中,id字段是主键;stu_id和course_id字段为外键; c_fk是外键的别名;
example2表称为example3表的父表;example3表的外键依赖于父表example3的主键stu_id和course_id
4)表的非空约束
非空约束:在创建表的某些特殊字段加上 NOT NULL 约束条件
CREATE TABLE example4( id INT NOT NULL PRIMARY KEY,
name VARCHAR(20) NOT NULL,
stu_id INT,
CONSTRAINT d_fk FOREIGN KEY (stu_id)
REFERENCES example1(stu_id)
);
5)表的唯一性约束
唯一性:所以记录中该字段的值不能重复出现
CREATE TABLE example5( id INT PRIMARY KEY,
stu_id INT UNIQUE,
name VARCHAR(20) NOT NULL
);
6)设置表的属性值自动增加
AUTO_INCREMENT用于为表中插入的新记录自动生成唯一的ID,一个表只能有一个字段使用AUTO_INCREMENT约束,并且该字段必须为主键的一部分。
CREATE TABLE example6( id INT PRIMARY KEY AUTO_INCREMENT,
stu_id INT UNIQUE,
name VARCHAR(20) NOT NULL
);
7)设置表的属性的默认值
可以为表的字段指定默认值,如果插入一条新的记录时没有为这个字段赋值,那么数据库系统会自动为这个字段插入默认值,默认值通过DEFAULT关键字设置。
CREATE TABLE example7( id INT PRIMARY KEY AUTO_INCREMENT,
stu_id INT UNIQUE,
name VARCHAR(20) NOT NULL,
English VARCHAR(20) DEFAULT 'zero',
Math FLOAT DEFAULT 0,
Computer FLOAT DEFAULT 0
);
2.查看表结构
查看表基本结构 : DESCRIBE 表名; 或缩写 DESC 表名; 查看详细结果: SHOE CREATE TABLE 表名; SHOE CREATE TABLE 表名 \G

3.修改表的方法
修改表名: ALTER TABLE 旧表名 RENAME [TO] 新表名; 修改字段数据类型: ALTER TABLE 表名 MODIFY 属性名 数据类型; 修改字段名:ALTER TABLE 表名 CHANGE 旧属性名 [新数据类型]; 增加字段: ALTER TABLE 表名 ADD 属性名1 数据类型 [完整性约束条件] [FIRST | AFTER 属性名2]; 删除字段: ALTER TABLE 表名 DROP 属性名; 修改字段的排列位置: ALTER TABLE 表名 MODIFY 属性名1 数据类型 FIRST | AFTER 属性名2; (说明: FIRST指定位置为表的第一个位置; AFTER 属性名2 指定属性名1 插入在属性名2 之后) 更改表的存储引擎:ALTER TABLE 表名 ENGINE=存储引擎(InnoDB, MyISAM, MEMORY); 删除表的外键约束: ALTER TABLE 表名 DROP FOREIGN KEY 外键别名;
4.删除表的方法
删除没有被关联的普通表: DROP TABLE 表名; 删除被其他表关联的父表:
第一种方法: 先删除子表,再删除父表;
第二种方法:先删除子表的外键约束,再删除父表;
MySQL入门很简单: 4 创建 修改删除表的更多相关文章
- 《Mysql 入门很简单》(读后感①)
下载完整版<Mysql 入门很简单>,点击这里~: http://files.cnblogs.com/files/zhengyeye/MySQL%E5%85%A5%E9%97%A8%E5% ...
- oracle11g创建修改删除表
oracle11g创建修改删除表 我的数据库名字: ORCL 密码:123456 1.模式 2.创建表 3.表约束 4.修改表 5.删除表 1.模式 set oracle_sid=OR ...
- MySQL入门很简单: 13 数据备份和还原
1. 数据备份 1)使用mysqldump命令备份 第一种:备份一个数据库 mysqldump -u username -p dbname table1 table2 ... > BackupN ...
- MySQL进阶11--DDL数据库定义语言--库创建/修改/删除--表的创建/修改/删除/复制
/*进阶 11 DDL 数据库定义语言 库和表的管理 一:库的管理:创建/修改/删除 二:表的管理:创建/修改/删除 创建: CREATE DATABASE [IF NOT EXISTS] 库名; 修 ...
- MySQL入门很简单: 1 数据库概述
1. 数据库概述 1.1 数据存储方式: 1)人工管理阶段 2)文件系统阶段: 文件系统通过文件的存储路径和文件名称访问文件中的数据 3)数据库系统阶段:Oracle, SQL Server, MyS ...
- Mysql创建修改删除-表
创建表之前要链接到库 例如 库名为 student use student; 连接结束可以查看此库中所有表 show tables; 创建表 create table student( id in ...
- MySQL入门很简单: 9 插入 更新与删除数据
1. 插入数据:INSERT 1)为表的所有字段插入数据 第一种: 不指定具体的字段名 INSERT INTO 表名 VALUES(值1,值2,...,值n): 第二种:INSERT语句中列出所有字段 ...
- MySQL入门很简单: 6 视图
1. 视图含义作用 视图是虚拟的表,是从数据率中一个或多个表中导出来的表: 数据库中只存放了视图的定义,没有存放视图中的数据,数据在原先的表中: 一旦表中的数据发生变化,显示在视图中的数据也会发生 ...
- MySQL入门很简单-触发器
1.触发器是由事件来触发某个操作,这些事件包括insert语句.update语句和delete语句.当数据库系统执行这些事件时,会激活触发器执行相应操作.MySQL从5.0.2开始支持触发器.使用触发 ...
随机推荐
- bs4的简单使用
一.使用流程 解析流程: 1.pip install bs4 2.导包:from bs4 import BeautifulSoup 3.实例化一个BeautifulSoup对象(将页面源码数据加载到该 ...
- Mybatis学习笔记2 - 解析config
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC ...
- drop_caches控制page cache
drop_caches Writing to this will cause the kernel to drop clean caches, as well as reclaimable slab ...
- 配置matcaffe 遇到的两个坑
1. 问题 (1) Invalid MEX-file '/root/caffe/matlab/+caffe/private/caffe_.mexa64': /matlab/r2016a/bin/gln ...
- LeetCode 704.二分查找(C++)
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1. 示例 1: 输入: num ...
- 服务间调用--feign跟ribbon
微服务一般来说当然是多服务多实例的,那么这些服务之间如何相互调用呢?spring cloud之前我们用dubbo,把服务开放出来,在xml配好后就可以像调用本地service一样调用其它模块的服务了: ...
- Docker学习笔记(1)-简介
1. 简介 Docker使用Google公司推出的Go语言开发实现,基于Linux内核的cgroup, namespace以及AUFS类的UnionFS等技术,对进程进行封装隔离,属于操作系统层面的虚 ...
- Java学习笔记--继承和多态(中)
1.通过继承来开发超类(superclass) 2.使用super 关键词唤起超类的构造方法 3.在超类中覆盖方法 4.区分override和overload 5.在Object类中探索toStrin ...
- mysql常用的优化措施
http://www.cnblogs.com/ggjucheng/archive/2012/11/07/2758058.html
- 《Head First 设计模式》之代理模式
代理模式(Proxy):控制对象访问 ——为另一个对象提供一个替身或占位符来访问这个对象. 要点: 代理模式有许多变体,如:缓存代理.同步代理.防火墙代理和写入时复制代理 代理在结构上类似装饰者,但目 ...