mysql综合案例 数据表的基本操作
mysql综合案例 数据表的基本操作
创建修改删除表,掌握数据表的基本操作
创建数据库company,按下表创建两个table名为offices和employees
offices表结构
字段名 | 数据类型 | 主键 | 外键 | 非空 | 唯一 | 自增 |
---|---|---|---|---|---|---|
officeCode | int(10) | 是 | 否 | 是 | 是 | 否 |
city | varchar(50) | 否 | 否 | 是 | 否 | 否 |
address | varchar(50) | 否 | 否 | 否 | 否 | 否 |
country | varchar(50) | 否 | 否 | 是 | 否 | 否 |
postalCode | varchar(15) | 否 | 否 | 否 | 是 | 否 |
employees表结构
字段名 | 数据类型 | 主键 | 外键 | 非空 | 唯一 | 自增 |
---|---|---|---|---|---|---|
employeeNumber | int(11) | 是 | 否 | 是 | 是 | 是 |
lastName | varchar(50) | 否 | 否 | 是 | 否 | 否 |
firstName | varchar(50) | 否 | 否 | 是 | 否 | 否 |
mobile | varchar(25) | 否 | 否 | 否 | 是 | 否 |
officeCode | int(10) | 否 | 是 | 是 | 否 | 否 |
jobTitle | varchar(50) | 否 | 否 | 是 | 否 | 否 |
birth | datetime | 否 | 否 | 是 | 否 | 否 |
note | varchar(255) | 否 | 否 | 否 | 否 | 否 |
sex | varchar(5) | 否 | 否 | 否 | 否 | 否 |
操作过程:
1.创建库
mysql> create database company;
2.创建表
创建表offices
mysql> use company;
mysql> create table offices(-> officeCode int(10) primary key not null unique,-> city varchar(50) not null,-> address varchar(50),-> conutry varchar(50) not null,-> postalCode varchar(15) unique-> );mysql> desc offices;
+------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| officeCode | int(10) | NO | PRI | NULL | |
| city | varchar(50) | NO | | NULL | |
| address | varchar(50) | YES | | NULL | |
| conutry | varchar(50) | NO | | NULL | |
| postalCode | varchar(15) | YES | UNI | NULL | |
+------------+-------------+------+-----+---------+-------+
创建表employees
mysql> create table employees(-> employeeNumber int(11) primary key not null unique auto_increment,-> lastName varchar(50) not null,-> firstName varchar(50) not null,-> mobile varchar(25) unique,-> officeCode int(10) not null,-> jobTitle varchar(50) not null,-> birth datetime not null,-> note varchar(255),-> sex varchar(5),-> constraint office_fk foreign key(officeCode) references offices(officeCode)-> );mysql> desc employees;
+----------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------+--------------+------+-----+---------+----------------+
| employeeNumber | int(11) | NO | PRI | NULL | auto_increment |
| lastName | varchar(50) | NO | | NULL | |
| firstName | varchar(50) | NO | | NULL | |
| mobile | varchar(25) | YES | UNI | NULL | |
| officeCode | int(10) | NO | MUL | NULL | |
| jobTitle | varchar(50) | NO | | NULL | |
| birth | datetime | NO | | NULL | |
| note | varchar(255) | YES | | NULL | |
| sex | varchar(5) | YES | | NULL | |
+----------------+--------------+------+-----+---------+----------------+
3.将表employees的mobile字段修改到officeCode后面
mysql> alter table employees modify mobile varchar(25) not null unique after officeCode;
mysql> desc employees;
+----------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------+--------------+------+-----+---------+----------------+
| employeeNumber | int(11) | NO | PRI | NULL | auto_increment |
| lastName | varchar(50) | NO | | NULL | |
| firstName | varchar(50) | NO | | NULL | |
| officeCode | int(10) | NO | MUL | NULL | |
| mobile | varchar(25) | NO | UNI | NULL | |
| jobTitle | varchar(50) | NO | | NULL | |
| birth | datetime | NO | | NULL | |
| note | varchar(255) | YES | | NULL | |
| sex | varchar(5) | YES | | NULL | |
+----------------+--------------+------+-----+---------+----------------+
4.将表employees的birth字段改名为employee_birth
mysql> alter table employees change birth employee_birth datetime not null;
mysql> desc employees;
+----------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------+--------------+------+-----+---------+----------------+
| employeeNumber | int(11) | NO | PRI | NULL | auto_increment |
| lastName | varchar(50) | NO | | NULL | |
| firstName | varchar(50) | NO | | NULL | |
| officeCode | int(10) | NO | MUL | NULL | |
| mobile | varchar(25) | NO | UNI | NULL | |
| jobTitle | varchar(50) | NO | | NULL | |
| employee_birth | datetime | NO | | NULL | |
| note | varchar(255) | YES | | NULL | |
| sex | varchar(5) | YES | | NULL | |
+----------------+--------------+------+-----+---------+----------------+
5.修改sex字段,数据类型为char(1),非空约束
mysql> alter table employees modify sex char(1) not null;
mysql> desc employees;
+----------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------+--------------+------+-----+---------+----------------+
| employeeNumber | int(11) | NO | PRI | NULL | auto_increment |
| lastName | varchar(50) | NO | | NULL | |
| firstName | varchar(50) | NO | | NULL | |
| officeCode | int(10) | NO | MUL | NULL | |
| mobile | varchar(25) | NO | UNI | NULL | |
| jobTitle | varchar(50) | NO | | NULL | |
| employee_birth | datetime | NO | | NULL | |
| note | varchar(255) | YES | | NULL | |
| sex | char(1) | NO | | NULL | |
+----------------+--------------+------+-----+---------+----------------+
6.删除字段note
mysql> alter table employees drop note;mysql> desc employees;
+----------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------+-------------+------+-----+---------+----------------+
| employeeNumber | int(11) | NO | PRI | NULL | auto_increment |
| lastName | varchar(50) | NO | | NULL | |
| firstName | varchar(50) | NO | | NULL | |
| officeCode | int(10) | NO | MUL | NULL | |
| mobile | varchar(25) | NO | UNI | NULL | |
| jobTitle | varchar(50) | NO | | NULL | |
| employee_birth | datetime | NO | | NULL | |
| sex | char(1) | NO | | NULL | |
+----------------+-------------+------+-----+---------+----------------+
7.增加字段名favoriate_activity,数据类型为varchar(100)
mysql> alter table employees add favoriate_activity varchar(100);
mysql> desc employees;
+--------------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+--------------+------+-----+---------+----------------+
| employeeNumber | int(11) | NO | PRI | NULL | auto_increment |
| lastName | varchar(50) | NO | | NULL | |
| firstName | varchar(50) | NO | | NULL | |
| officeCode | int(10) | NO | MUL | NULL | |
| mobile | varchar(25) | NO | UNI | NULL | |
| jobTitle | varchar(50) | NO | | NULL | |
| employee_birth | datetime | NO | | NULL | |
| sex | char(1) | NO | | NULL | |
| favoriate_activity | varchar(100) | YES | | NULL | |
+--------------------+--------------+------+-----+---------+----------------+
8.删除表office
在创建表employess时,设置了表的外键,该表关联了其父表的officeCode主键。
删除关联表时,要先删除子表employees的外键约束,才能删除父表。
所以先要删除employees表的外键约束。
下面是当时创建employees的语句:
employees | CREATE TABLE `employees` (`employeeNumber` int(11) NOT NULL AUTO_INCREMENT,`lastName` varchar(50) NOT NULL,`firstName` varchar(50) NOT NULL,`officeCode` int(10) NOT NULL,`mobile` varchar(25) NOT NULL,`jobTitle` varchar(50) NOT NULL,`employee_birth` datetime NOT NULL,`sex` char(1) NOT NULL,`favoriate_activity` varchar(100) DEFAULT NULL,PRIMARY KEY (`employeeNumber`),UNIQUE KEY `employeeNumber` (`employeeNumber`),UNIQUE KEY `mobile` (`mobile`),UNIQUE KEY `mobile_2` (`mobile`),KEY `office_fk` (`officeCode`),CONSTRAINT `office_fk` FOREIGN KEY (`officeCode`) REFERENCES `offices` (`officeCode`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 |
8.1 先删除外键约束
mysql> alter table employees drop foreign key office_fk;
8.2 删除表office
mysql> drop tables offices;
9.修改表employees的存储引擎为myisam
先查看一下修改前的引擎
mysql> show create table employees;
mysql> alter table employees engine=myisam;
10.将表employees改名为employees_info
mysql> alter table employees rename employees_info;
11.习题练习
11.1 创建数据库market,在market下建表customers如下:
字段名 | 数据类型 | 主键 | 外键 | 非空 | 唯一 | 自增 |
---|---|---|---|---|---|---|
c_num | int(11) | 是 | 否 | 是 | 是 | 是 |
c_name | varchar(50) | 否 | 否 | 否 | 否 | 否 |
c_contact | varchar(50) | 否 | 否 | 否 | 否 | 否 |
c_city | varchar(50) | 否 | 否 | 否 | 否 | 否 |
c_birth | datetime | 否 | 否 | 是 | 否 | 否 |
(1)创建数据库market
(2)创建数据表customer,在c_num字段上添加主键约束和自增约束,在c_birth字段添加非空约束
以下操作要在建完表之后进行
(3)将c_contact字段插入到c_birth字段后面
(4)将c_name字段数据类型改为varchar(70)
(5)将c_contact字段改名为c_phone
(6)增加c_gender字段,数据类型为char(1)
(7)将表名修改为customers_info
(8)删除字段c_city
(9)修改数据表的存储引擎为myisam
操作如下:
(1)创建数据库market
(2)创建数据表customer,在c_num字段上添加主键约束和自增约束,在c_birth字段添加非空约束
mysql> create table customers(-> c_num int(11) primary key not null unique auto_increment,-> c_name varchar(50),-> c_contact varchar(50),-> c_city varchar(50),-> c_birth datetime not null-> );
以下操作要在建完表之后进行,练习嘛
(3)将c_contact字段插入到c_birth字段后面
mysql> alter table customers modify c_contact varchar(50) after c_birth;
(4)将c_name字段数据类型改为varchar(70)
#下面两种方式均可
mysql> alter table customers change c_name c_name varchar(70);
mysql> alter table customers modify c_name varchar(100);
(5)将c_contact字段改名为c_phone
mysql> alter table customers change c_contact c_phone varchar(50) not null;
(6)增加c_gender字段,数据类型为char(1)
mysql> alter table customers add c_gender varchar(1);
(7)将表名修改为customers_info
mysql> alter table customers rename customers_info;
(8)删除字段c_city
mysql> alter table customers_info drop c_city;
(9)修改数据表的存储引擎为myisam
mysql> show create table customers_info\G;
mysql> alter table customers_info engine=myisam;
11.2 在market中创建表orders,如下:
字段名 | 数据类型 | 主键 | 外键 | 非空 | 唯一 | 自增 |
---|---|---|---|---|---|---|
o_num | int(11) | 是 | 否 | 是 | 是 | 是 |
o_date | date | 否 | 否 | 否 | 否 | 否 |
c_id | varchar(50) | 否 | 是 | 否 | 否 | 否 |
(1)建表orders,在o_num字段上添加主键约束和自增约束,在c_id字段上添加外键约束,关联customers_info中的主键c_num
(2)删除orders表的外键约束,然后删除表customers_info
操作如下:
(1)建表orders,在o_num字段上添加主键约束和自增约束,在c_id字段上添加外键约束,关联customers_info中的主键c_num
务必注意两键之间的数据类型一致!!!
mysql> create table orders(-> o_num int(11) primary key not null unique auto_increment,-> o_date date,-> c_id int(11) not null,-> constraint customers_info_fk foreign key(c_id) references customers_info(c_id)-> );mysql> desc orders;
+--------+---------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+---------+------+-----+---------+----------------+
| o_num | int(11) | NO | PRI | NULL | auto_increment |
| o_date | date | YES | | NULL | |
| c_id | int(11) | NO | MUL | NULL | |
+--------+---------+------+-----+---------+----------------+
(2)删除orders表的外键约束,然后删除表customers_info
#先查看以下外键名
mysql> show create table orders;
#删除外键
mysql> alter table orders drop foreign key customers_info_fk;
mysql综合案例 数据表的基本操作相关推荐
- MySQL数据库-对数据表的基本操作
数据表的操作 创建数据表 查看当前数据库中所有表 show tables; 创建表 create table 数据表名字(字段 类型 约束[,字段 类型 约束]) create table xxxx( ...
- sql数据表改为自动递增显示与其他表关联_MySQL萌新第一季 第四话-数据表的基本操作...
本话旨在完成以下内容: 在数据库中,数据表是数据库中最重要和基本的操作对象,是数据存储的基本单位.换句话说我们操作数据库其实重要的就是操作数据表.本章将详细介绍数据表的基本操作,主要内容包括:创建数据 ...
- PostgreSQL:四. 数据表的基本操作
四. 数据表的基本操作 4.1 创建数据表 下面的案例是如何添加主键约束,外键约束,唯一约束,非空约束,默认约束等: 1.使用主键约束:有单字段主键,多字段联合主键: [例1]定义数据表tb_emp1 ...
- [MySQL]基本数据类型及表的基本操作
哈喽,大家好!我是保护小周ღ,本期为大家带来的是 MySQL 数据库常用的数据类型,数据表的基本操作:创建.删除.修改表,针对修改表的结构进行了讲解,随后是如何向数据表中添加数据,浅浅的提了一下表中数 ...
- php如何在mysql数据库里创建表_php创建mysql数据库以及数据表
php创建mysql数据库以及数据表 用php链接到mysqli,成功后利用,mysqli_query()创建数据库以及数据表. $con = mysqli_connect("localho ...
- 二十七、综合案例数据预处理
1. 综合案例数据预处理 1.1 电力窃漏电综合案例 数据清洗:去掉冗余数据 缺失值处理:填充缺失值 数据变换:窃漏电评价指标体系 构建专家样本:构建专家样本 2. 数据清洗 2.1 窃漏电数据预处理 ...
- mysql status关键字 数据表设计中慎重使用
mysql status关键字 数据表设计中慎重使用 转载于:https://www.cnblogs.com/toSeeMyDream/p/5574894.html
- MySQL数据库与数据表的创建
MySQL数据库与数据表的创建 文章目录 MySQL数据库与数据表的创建 前言 一.创建数据库 二.使用数据库 三.创建数据表 前言 MySQL的介绍 什么叫数据库: 作用:存储数据,能够长期保存(断 ...
- mysql中创建数据表
从今天开始学习mysql数据库,希望以后能够记录自己学习的点点滴滴 mysql中创建数据表 1.创建一个数据库为test_db mysql> create database test_db; Q ...
最新文章
- 为什么说「中台」程序员未来会最值钱?
- Python的学习过程中not enough values to unpack (expected 2, got 1)解决方案
- 转:典型开源3D引擎分类比较
- 【杂项】CUDA下找不到CUDA Sample文件
- python爬取股票实时价格_【美股量化00篇】Python获取新浪接口美股实时数据
- 牛客网_PAT乙级_1017打印沙漏(20)
- 【翻译】Ext JS 4——Ajax和Rest代理处理服务器端一场和消息的方法
- 校运会计算机科学系大本营,计算机系团总支学生会学期总结大会
- Java 线程池 ThreadPoolExecutor源码简析
- switch交换的vlan三种模式详解
- 按键精灵不成熟的大漠游戏自动加血保护代码 大漠字库使用案例
- 等保2.0三级物联网安全扩展要求
- IBM服务器无法启动怎么恢复
- 计算机右键管理提示没有关联应用,win10系统计算机右键管理提示没有与之关联的程序的解决方法...
- 小内存电脑安装linux,在低内存的情况下安装CentOS系统的技巧
- 详解AUTOSAR:什么是AUTOSAR?(理论篇—1)
- No enclosing instance of type FormDetailBean is accessible. Must qualify the allocation with an encl
- CAD图纸怎么转换PDF格式?怎样转换更加高效?
- linux 进入recovery模式,recovery是什么意思 如何进入recovery模式【详细介绍】
- 养生之道--21天改变体质