db2查看表结构_数据库:MySQL表操作
⼀、表操作
表就相当于⽂件,表中的⼀条记录就相当于⽂件的⼀⾏内容,不同的是,表中的⼀条记录有对应的标题,称为表的字段
还记得我们之前写过的‘员⼯信息表作业’么?存储这员⼯信息的⽂件是这样的:
id,name,age,sex,phone,job1,Tank,83,female,136********,IT2,Nick,26,male,133********,Tearcher3,Sean,25,male,133********,IT4,Jason,40,male,13如果把上⾯这个⽂件改成⼀张表,应该是下⾯这个样⼦
idnameagesexphonejob1Tank83female136********IT2Nick26male133********Tearcher3Sean25male133********IT4J
id,name,age,sex,phone,job称为字段,其余的,⼀⾏内容称为⼀条记录。
⼆、创建表
2.1 语法
create table 表名( 字段名1 类型[(宽度) 约束条件], 字段名2 类型[(宽度) 约束条件], 字段名3 类型[(宽度) 约束条件] );
注意:
1. 在同⼀张表中,字段名是不能相同
2. 宽度和约束条件可选
3. 字段名和类型是必须的
2.2 建表
mysql> create database staff;Query OK, 1 row affected (0.00 sec)mysql> use staff;Database changedmysql> create table staff_info (id int,name varchar(5 2.3 插⼊数据
mysql> insert into staff_info (id,name,age,sex,phone,job) values (1,'Tank',83,'female',136********,'IT');Query OK, 1 row affected (0.00 sec)mysql> insert 三、查看表结构
查看表结构有两种⽅式:
describe [tablename];这种⽅法和desc [tablename];效果相同;可以查看当前的表结构
虽然desc命令可以查看表的定义,但是其输出的信息还不够全⾯,为了得到更全⾯的表定义信息,有时候就需要查看创建表的SQL语句,
使⽤show create table语法。除了可以看到表定义之外,还可以看到engine(存储引擎)和charset(字符集)等信息。(G选项的含义是是的记
录能够竖向排列,以便更好的显⽰内容较长的记录。)
3.1 desc和show create table
mysql> describe staff_info;+-------+-----------------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+-----------------------+-----四、MySQL⽀持的数据类型
详情下次见
五、MySQL表的完整性约束
详情下次见
六、修改表结构
语法:1. 修改表名 ALTER TABLE 表名  RENAME 新表名;2. 增加字段 ALTER TABLE 表名 ADD 字段名数据类型 [完整性约束条件…], ADD 字段名数据类型 [完整性6.1 alter操作⾮空和唯⼀(了解)
create table t(id int unique,name char(10) not null);#去掉null约束alter table t modify name char(10) null;# 添加null约束alter table t modify name char(10) not null;# 6.2 alter操作主键(了解)
1、⾸先创建⼀个数据表table_test:create table table_test(`id` varchar(100) NOT NULL,`name` varchar(100) NOT NULL,PRIMARY KEY (`name`));
2、如果发现主6.3 为表添加外键(了解)
创建press表CREATE TABLE `press` ( `id` int(11) NOT NULL, `name` char(10) DEFAULT NULL, PRIMARY KEY (`id`)) ;创建book表CREATE TABLE `book` ( `id` 6.4 ⽰例
mysql> desc staff_info;+-------+-----------------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+-----------------------+------+--
七、删除表
DROP TABLE 表名;
⼋、多表结构的分析和创建
8.1 如何出两张表之间的关系
分析步骤:
1. 先站在左表的⾓度去:是否左表的多条记录可以对应右表的⼀条记录,如果是,则证明左表的⼀个字段foreign key 右表⼀个字段
(通常是id)
2. 再站在右表的⾓度去:是否右表的多条记录可以对应左表的⼀条记录,如果是,则证明右表的⼀个字段foreign key 左表⼀个字段
(通常是id)
3. 总结:
mysql创建表数据类型
4. 多对⼀:
如果只有步骤1成⽴,则是左表多对⼀右表
如果只有步骤2成⽴,则是右表多对⼀左表
1. 多对多
如果步骤1和2同时成⽴,则证明这两张表时⼀个双向的多对⼀,即多对多,需要定义⼀个这两张表的关系表来专门存放⼆者的关系
1. ⼀对⼀:
如果1和2都不成⽴,⽽是左表的⼀条记录唯⼀对应右表的⼀条记录,反之亦然。这种情况很简单,就是在左表foreign key右表的基础
上,将左表的外键字段设置成unique即可
8.2 建⽴表之间的关系——⼀对多
⼀对多或称为多对⼀
三张表:出版社,作者信息,书
⼀对多(或多对⼀):⼀个出版社可以出版多本书
关联⽅式:foreign key
8.2.1 sql⽰例
=====================多对⼀=====================create table press(id int primary key auto_increment,name varchar(20));create table book(id int prima 8.2.2 其他⽰例
班级和学⽣:⼀个班级可以对应多个学⽣,但⼀个学⽣只能对应⼀个班级
主机和机房:⼀个机房可以有多台主机,但是⼀个主机只能属于⼀个机房
8.3 建⽴表之间的关系——多对多
三张表:出版社,作者信息,书
多对多:⼀个作者可以写多本书,⼀本书也可以有多个作者,双向的⼀对多,即多对多
关联⽅式:foreign key+⼀张新的表
8.3.1 sql⽰例
=====================多对多=====================create table author(id int primary key auto_increment,name varchar(20));#这张表就存放作者表与书表8.3.2 其他⽰例
服务和机器:⼀个服务可能被部署到多台机器上,⼀台机器上也可以部署多个服务
学⽣和课程:⼀个学⽣可以选择多门课程,⼀门课程也可以被多个学⽣选择
8.4 建⽴表之间的关系——⼀对⼀
两张表:学⽣表和客户表
⼀对⼀:⼀个学⽣是⼀个客户
关联⽅式:foreign key+unique
8.4.1 sql⽰例
create table customer( -> id int primary key auto_increment, -> name varchar(20) not null, -> qq varchar(10) not null, -> phone char(16) not null -> );create
8.4.2 其他⽰例
例⼀:⼀个⽤户只有⼀个博客
例⼆:⼀个管理员唯⼀对应⼀个⽤户
九、作业
根据表结构合理设计表与表之间的主外键关系和约束,并完成表结构的创建。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。