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综合案例 数据表的基本操作相关推荐

  1. MySQL数据库-对数据表的基本操作

    数据表的操作 创建数据表 查看当前数据库中所有表 show tables; 创建表 create table 数据表名字(字段 类型 约束[,字段 类型 约束]) create table xxxx( ...

  2. sql数据表改为自动递增显示与其他表关联_MySQL萌新第一季 第四话-数据表的基本操作...

    本话旨在完成以下内容: 在数据库中,数据表是数据库中最重要和基本的操作对象,是数据存储的基本单位.换句话说我们操作数据库其实重要的就是操作数据表.本章将详细介绍数据表的基本操作,主要内容包括:创建数据 ...

  3. PostgreSQL:四. 数据表的基本操作

    四. 数据表的基本操作 4.1 创建数据表 下面的案例是如何添加主键约束,外键约束,唯一约束,非空约束,默认约束等: 1.使用主键约束:有单字段主键,多字段联合主键: [例1]定义数据表tb_emp1 ...

  4. [MySQL]基本数据类型及表的基本操作

    哈喽,大家好!我是保护小周ღ,本期为大家带来的是 MySQL 数据库常用的数据类型,数据表的基本操作:创建.删除.修改表,针对修改表的结构进行了讲解,随后是如何向数据表中添加数据,浅浅的提了一下表中数 ...

  5. php如何在mysql数据库里创建表_php创建mysql数据库以及数据表

    php创建mysql数据库以及数据表 用php链接到mysqli,成功后利用,mysqli_query()创建数据库以及数据表. $con = mysqli_connect("localho ...

  6. 二十七、综合案例数据预处理

    1. 综合案例数据预处理 1.1 电力窃漏电综合案例 数据清洗:去掉冗余数据 缺失值处理:填充缺失值 数据变换:窃漏电评价指标体系 构建专家样本:构建专家样本 2. 数据清洗 2.1 窃漏电数据预处理 ...

  7. mysql status关键字 数据表设计中慎重使用

    mysql status关键字  数据表设计中慎重使用 转载于:https://www.cnblogs.com/toSeeMyDream/p/5574894.html

  8. MySQL数据库与数据表的创建

    MySQL数据库与数据表的创建 文章目录 MySQL数据库与数据表的创建 前言 一.创建数据库 二.使用数据库 三.创建数据表 前言 MySQL的介绍 什么叫数据库: 作用:存储数据,能够长期保存(断 ...

  9. mysql中创建数据表

    从今天开始学习mysql数据库,希望以后能够记录自己学习的点点滴滴 mysql中创建数据表 1.创建一个数据库为test_db mysql> create database test_db; Q ...

最新文章

  1. 为什么说「中台」程序员未来会最值钱?
  2. Python的学习过程中not enough values to unpack (expected 2, got 1)解决方案
  3. 转:典型开源3D引擎分类比较
  4. 【杂项】CUDA下找不到CUDA Sample文件
  5. python爬取股票实时价格_【美股量化00篇】Python获取新浪接口美股实时数据
  6. 牛客网_PAT乙级_1017打印沙漏(20)
  7. 【翻译】Ext JS 4——Ajax和Rest代理处理服务器端一场和消息的方法
  8. 校运会计算机科学系大本营,计算机系团总支学生会学期总结大会
  9. Java 线程池 ThreadPoolExecutor源码简析
  10. switch交换的vlan三种模式详解
  11. 按键精灵不成熟的大漠游戏自动加血保护代码 大漠字库使用案例
  12. 等保2.0三级物联网安全扩展要求
  13. IBM服务器无法启动怎么恢复
  14. 计算机右键管理提示没有关联应用,win10系统计算机右键管理提示没有与之关联的程序的解决方法...
  15. 小内存电脑安装linux,在低内存的情况下安装CentOS系统的技巧
  16. 详解AUTOSAR:什么是AUTOSAR?(理论篇—1)
  17. No enclosing instance of type FormDetailBean is accessible. Must qualify the allocation with an encl
  18. CAD图纸怎么转换PDF格式?怎样转换更加高效?
  19. linux 进入recovery模式,recovery是什么意思 如何进入recovery模式【详细介绍】
  20. 养生之道--21天改变体质

热门文章

  1. ios开发初级篇(上)
  2. QT学习之QMainWindow详解
  3. 超级筹码理论系列(一)——游资黑马炒作模式
  4. 阿里云盘 PC端 v2.1.3
  5. AE基础教程第一阶段——12轨道遮罩
  6. 语音识别标准中WER和SER解释
  7. 整型家族(字符、短整型、整型、长整型)的范围
  8. php怎样获取当前时间,php中获取当前时间的函数
  9. 314-Leetcode 堆排序
  10. Joplin利用TeraCLOUD进行WebDAV同步完美替代坚果云同步