返回顶部
首页 > 资讯 > 数据库 >三、数据表的基本操作
  • 914
分享到

三、数据表的基本操作

2024-04-02 19:04:59 914人浏览 泡泡鱼
摘要

3.1、创建数据表  创建数据表指的是在已经创建好的数据库中建立新表。创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性(实体完整性、引用完整性、域完整性)约束的过程。创建表的语法格

3.1、创建数据表

  创建数据表指的是在已经创建好的数据库中建立新表。创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性(实体完整性、引用完整性、域完整性)约束的过程。

创建表的语法格式

  数据表属于数据库,在创建数据表之前,应该先创建数据库,指定在哪个数据库中进行。

Mysql> USE test;
Database changed
mysql> CREATE TABLE tb_name
(
字段名1,数据类型 [列级别约束条件] [默认值],
字段名2,数据类型 [列级别约束条件] [默认值],
...
[表级别约束条件]
);

例如创建员工表tb_emp1,表结构为:

字段名称数据类型备注
idINT(11)员工编号
nameVARCHAR(25)员工名称
deptIdINT(11)所在部门编号
salaryFLOAT工资
mysql> USE test;
Database changed
mysql> CREATE TABLE tb_emp1
    -> (
    -> id INT(11),
    -> name VARCHAR(25),
    -> depId INT(11),
    -> salary FLOAT
    -> );
Query OK, 0 rows affected (0.08 sec)
mysql> SHOW TABLES;
+----------------+
| Tables_in_test |
+----------------+
| tb_emp1        |
+----------------+
1 row in set (0.00 sec)

使用主键约束

  主键,又称主码,是表中一列或多列的组合。主键约束要求主键列的数据唯一,并且不允许为空。主键能够唯一地标识表中的一条记录,可以结合外键来定义不同数据表之间的关系,并且可以加快数据查询的速度。主键分为单字段主键和多字段联合主键。

单字段主键由一个字段组成,其语法格式有两种:

字段名 数据类型 PRIMARY KEY [默认值]

mysql> CREATE TABLE tb_emp2
    -> (
    -> id INT(11) PRIMARY KEY,
    -> name VARCHAR(25),
    -> depId INT(11),
    -> salary FLOAT
    -> );
[CONSTRaiNT <约束名>] PRIMARY KEY [字段名]
mysql> CREATE TABLE tb_emp3
    -> (
    -> id INT(11) ,
    -> name VARCHAR(25),
    -> depId INT(11),
    -> salary FLOAT,
    -> PRIMARY KEY(id)
    -> );

多字段联合主键,即主键由多个字段组合,其语法格式为:

PRIMARY KEY [字段1,字段2,字段3,...]

mysql> CREATE TABLE tb_emp4
    -> (
    -> name VARCHAR(25),
    -> depId INT(11),
    -> salary FLOAT
    -> PRIMARY KEY(name,depId)
    -> );

使用外键约束

 外键用来在两个表的数据之间建立链接,它可以是一列或多列。一个表可以有一个或多个外键。外键对应的是参照完整性,一个表的外键可以为空,当不为空时,则每一个外键值必须等于另一个表中主键的某个值。

  外键:它是表中的一个字段,可以不是本表的主键,但对应另一个表的主键。外键主要作用是保证数据引用的完整性,定义外键后,不允许删除在另一个表中具有关联关系的行。例如:部门表tb_dept的主键是id,在员工表tb_emp5中有一个键depId与这个id关联。

  主表:对于两个具有关联关系的表而言,相关联字段中主键所在的那个表即是主表。

  从表:对于两个具有关联关系的表而言,相关联字段中外键所在的那个表即是从表。

创建外键的语法规则:

[CONSTRAINT <外键名>] FOREIGN KEY 字段名1 [,字段名2,...]
REFERENCES <主表名> 主键列1 [,主键列2,...]

  '外键名'为定义的外键约束的名称,一个表中不能有相同的外键;'字段名'表示字表需要添加外键约束的字段列;'主表名'即被子表外键所依赖的表的名称;'主键列'表示主表中定义的主键列。

  例如:定义数据表tb_emp5,并在tb_emp5上创建外键约束。

创建一个部门表:

mysql> CREATE TABLE tb_dept1( 
    -> id INT(11) PRIMARY KEY, 
    -> name VARCHAR(22) NOT NULL, 
    -> location VARCHAR(50) 
    -> );
Query OK, 0 rows affected (0.02 sec)

定义数据表tb_emp5,让它的键depId作为外键关联到tb_dept1的主键id:

mysql> CREATE TABLE tb_emp5(
    -> id INT(11) PRIMARY KEY,
    -> name VARCHAR(25),
    -> deptId INT(11),
    -> salary FLOAT,
    -> CONSTRAINT fk_emp_dept1 FOREIGN KEY(deptId) REFERENCES tb_dept1(id)  
    -> );
Query OK, 0 rows affected (0.05 sec)

使用非空约束

  非空约束指字段的值不能为空。对于使用非空约束的字段,如果在添加数据时没有指定值,数据库会报错。

  非空约束的语法规则:

字段名 数据类型 NOT  NULLL

mysql> CREATE TABLE tb_emp6(
    -> id INT(11) PRIMARY KEY,
    -> name VARCHAR(25) NOT NULL,
    -> depId INT(11),
    -> salary FLOAT
    -> );
Query OK, 0 rows affected (0.03 sec)

使用唯一性约束

  唯一性约束要求该列唯一,允许为空,但只能出现一个空值。唯一性约束可以确保一列或几列不出现重复值。

唯一性约束的语法规则有:

 1、定义完列之直接指定唯一约束

字段名 数据类型 UNIQUE


mysql> CREATE TABLE tb_dept2(
    -> id INT(11) PRIMARY KEY,
    -> name VARCHAR(22) UNIQUE,
    -> location VARCHAR(50)
    -> );
Query OK, 0 rows affected (0.20 sec)

2、定义完所有列之后指定唯一约束

[CONSTRAINT <约束名>] UNIQUE(<字段名>)

mysql> CREATE TABLE tb_dept3( 
    -> id INT(11) PRIMARY KEY,
    -> name VARCHAR(22) , 
    -> location VARCHAR(50),
    -> CONSTRAINT STH UNIQUE(name)
    -> );
Query OK, 0 rows affected (0.03 sec)

  UNIQUE和PRIMARY KEY的区别:一个表可以有多个字段声明为UNIQUE,但是只能有一个PRIMARY KEY声明,声明为PRIMARY KEY的列不允许有空值,但是声明为UNIQUE的字段允许空值(NULL)的存在。

使用默认约束

 默认约束指某列的默认值。其语法规则为:

字段名 数据类型 DEFAULT 默认值

mysql> CREATE TABLE tb_emp7(
    -> id INT(11) PRIMARY KEY,
    -> name VARCHAR(25) NOT NULL,
    -> depId INT(11) DEFAULT 1111,
    -> salary FLOAT
    -> );
Query OK, 0 rows affected (0.03 sec)

设置表的属性值自动增加

  在数据库应用中,经常希望在每次插入新纪录时,系统自动生成字段的主键值。可以通过为表主键添加AUTO_INCREMENT 关键字来实现。其语法格式为:

字段名 数据类型 AUTO_INCREMENT

mysql> CREATE TABLE tb_emp8(
    -> id INT(11) PRIMARY KEY AUTO_INCREMENT,
    -> name VARCHAR(25) NOT NULL,
    -> depId INT(11),
    -> salary FLOAT
    -> );
Query OK, 0 rows affected (0.03 sec)

mysql> INSERT INTO tb_emp8(name,salary)
    -> VALUES('Lucy',1000),('Lura',2000),('Kevin',3000);
Query OK, 3 rows affected (0.02 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> SELECT * FROM tb_emp8;
+----+-------+--------+--------+
| id | name  | deptId | salary |
+----+-------+--------+--------+
|  1 | Lucy  |   NULL |   1000 |
|  2 | Lura  |   NULL |   2000 |
|  3 | Kevin |   NULL |   3000 |
+----+-------+--------+--------+
3 rows in set (0.00 sec)

查看数据表结构

 使用SQL语句创建好数据表之后,可以查看表结构的定义,以确定表的定义是否正确。在MySQL中,查看表结构可以使用DESCRIBE和SHOW CREATE TABLE语句。

mysql> DESCRIBE tb_dept1;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | NO   | PRI | NULL    |       |
| name     | varchar(22) | NO   |     | NULL    |       |
| location | varchar(50) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

mysql> SHOW CREATE TABLE tb_emp1 \G
*************************** 1. row ***************************
       Table: tb_emp1
Create Table: CREATE TABLE `tb_emp1` (
  `id` int(11) DEFAULT NULL,
  `name` varchar(25) DEFAULT NULL,
  `depId` int(11) DEFAULT NULL,
  `salary` float DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

3.2、修改数据表

  修改数据表指的是修改数据库中已经存在的数据表的结构。MySQL使用ALTER TABLE 语句修改表。常用的修改表的操作有:修改表名、修改字段数据类型或字段名、增加和删除字段、修改字段的排列顺序、更改表的存储引擎、删除表的外键约束等。

修改表名

   修改表名的语法规则为:

ALTER TABLE <旧表名> RENAME [TO] <新表名>

mysql> SHOW TABLES;
+----------------+
| Tables_in_test |
+----------------+
| tb_dept1       |
| tb_dept2       |
| tb_dept3       |
| tb_emp1        |
| tb_emp2        |
| tb_emp5        |
| tb_emp6        |
| tb_emp8        |
+----------------+
8 rows in set (0.00 sec)

mysql> ALTER TABLE tb_dept3 RENAME TO tb_deptment3;
Query OK, 0 rows affected (0.04 sec)

mysql> SHOW TABLES;
+----------------+
| Tables_in_test |
+----------------+
| tb_dept1       |
| tb_dept2       |
| tb_deptment3   |
| tb_emp1        |
| tb_emp2        |
| tb_emp5        |
| tb_emp6        |
| tb_emp8        |
+----------------+
8 rows in set (0.00 sec)

修改字段的数据类型

 修改字段的数据类型,就是把字段的数据类型转换成另一种数据类型,其语法规则为:

ALTER TABLE <表名> MODIFY <字段名> <数据类型>

mysql> DESC tb_dept1;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | NO   | PRI | NULL    |       |
| name     | varchar(22) | NO   |     | NULL    |       |
| location | varchar(50) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

mysql> ALTER TABLE tb_dept1 MODIFY name VARCHAR(33);
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> DESC tb_dept1;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | NO   | PRI | NULL    |       |
| name     | varchar(33) | YES  |     | NULL    |       |
| location | varchar(50) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

修改字段名

  MySQL中修改表字段名的语法规则为:

ALTER TABLE  <表名> CHANGE <旧字段名> <新字段名> <新数据类型>

mysql> DESC tb_dept1;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | NO   | PRI | NULL    |       |
| name     | varchar(33) | YES  |     | NULL    |       |
| location | varchar(50) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

mysql>  ALTER TABLE tb_dept1 CHANGE location loc VARCHAR(50);
Query OK, 0 rows affected (0.13 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> DESC tb_dept1;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | NO   | PRI | NULL    |       |
| name  | varchar(33) | YES  |     | NULL    |       |
| loc   | varchar(50) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

添加字段

添加字段的语法格式为:

ALTER TABLE <表名> ADD <新字段> <数据类型> [约束条件] [FIRST|AFTER 已存在字段名]

添加无完整约束条件的字段

mysql> ALTER TABLE tb_dept1 ADD managerId INT(10);
Query OK, 0 rows affected (0.05 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> DESC tb_dept1;
+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| id        | int(11)     | NO   | PRI | NULL    |       |
| name      | varchar(33) | YES  |     | NULL    |       |
| loc       | varchar(50) | YES  |     | NULL    |       |
| managerId | int(10)     | YES  |     | NULL    |       |
+-----------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

添加有完整约束条件的字段

mysql> ALTER TABLE tb_dept1 ADD column1 VARCHAR(12) NOT NULL;
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> DESC tb_dept1;
+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| id        | int(11)     | NO   | PRI | NULL    |       |
| name      | varchar(33) | YES  |     | NULL    |       |
| loc       | varchar(50) | YES  |     | NULL    |       |
| managerId | int(10)     | YES  |     | NULL    |       |
| column1   | varchar(12) | NO   |     | NULL    |       |
+-----------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

在表的第一列添加字段

mysql> ALTER TABLE tb_dept1 ADD column2 INT(11) FIRST;       
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> DESC tb_dept1;
+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| column2   | int(11)     | YES  |     | NULL    |       |
| id        | int(11)     | NO   | PRI | NULL    |       |
| name      | varchar(33) | YES  |     | NULL    |       |
| loc       | varchar(50) | YES  |     | NULL    |       |
| managerId | int(10)     | YES  |     | NULL    |       |
| column1   | varchar(12) | NO   |     | NULL    |       |
+-----------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

在表的指定列之后添加字段

mysql> ALTER TABLE tb_dept1 ADD column3 INT(11) AFTER name;
Query OK, 0 rows affected (0.05 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> DESC tb_dept1;
+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| column2   | int(11)     | YES  |     | NULL    |       |
| id        | int(11)     | NO   | PRI | NULL    |       |
| name      | varchar(33) | YES  |     | NULL    |       |
| column3   | int(11)     | YES  |     | NULL    |       |
| loc       | varchar(50) | YES  |     | NULL    |       |
| managerId | int(10)     | YES  |     | NULL    |       |
| column1   | varchar(12) | NO   |     | NULL    |       |
+-----------+-------------+------+-----+---------+-------+
7 rows in set (0.00 sec)

删除字段

  删除字段是将数据表中的某个字段从表中移除,其语法格式为:

ALTER TABLE <表名> DROP <字段名>

mysql> DESC tb_dept1;
+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| column2   | int(11)     | YES  |     | NULL    |       |
| id        | int(11)     | NO   | PRI | NULL    |       |
| name      | varchar(33) | YES  |     | NULL    |       |
| column3   | int(11)     | YES  |     | NULL    |       |
| loc       | varchar(50) | YES  |     | NULL    |       |
| managerId | int(10)     | YES  |     | NULL    |       |
| column1   | varchar(12) | NO   |     | NULL    |       |
+-----------+-------------+------+-----+---------+-------+
7 rows in set (0.00 sec)

mysql> ALTER TABLE tb_dept1 DROP column2;
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> DESC tb_dept1;                    
+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| id        | int(11)     | NO   | PRI | NULL    |       |
| name      | varchar(33) | YES  |     | NULL    |       |
| column3   | int(11)     | YES  |     | NULL    |       |
| loc       | varchar(50) | YES  |     | NULL    |       |
| managerId | int(10)     | YES  |     | NULL    |       |
| column1   | varchar(12) | NO   |     | NULL    |       |
+-----------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

修改字段的排列位置

  对一个数据表来说,在创建的时候,字段在表中的排列顺序已经确定。但是表的结构并不是完全不能改变,可以通过ALTER TABLE来改变表中字段的相对位置,语法格式为:

ALTER TABLE <表名> MODIFY <字段1> <数据类型> FIRST|AFTER <字段2>

修改字段为表的第一个字段

mysql> ALTER TABLE tb_dept1 MODIFY column1 VARCHAR(12) FIRST;
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> DESC tb_dept1;
+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| column1   | varchar(12) | YES  |     | NULL    |       |
| id        | int(11)     | NO   | PRI | NULL    |       |
| name      | varchar(33) | YES  |     | NULL    |       |
| column3   | int(11)     | YES  |     | NULL    |       |
| loc       | varchar(50) | YES  |     | NULL    |       |
| managerId | int(10)     | YES  |     | NULL    |       |
+-----------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

修改字段到表的指定列之后

mysql> ALTER TABLE tb_dept1 MODIFY column1 VARCHAR(12) AFTER loc;
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> DESC tb_dept1;
+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| id        | int(11)     | NO   | PRI | NULL    |       |
| name      | varchar(33) | YES  |     | NULL    |       |
| column3   | int(11)     | YES  |     | NULL    |       |
| loc       | varchar(50) | YES  |     | NULL    |       |
| column1   | varchar(12) | YES  |     | NULL    |       |
| managerId | int(10)     | YES  |     | NULL    |       |
+-----------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

更改表的存储引擎

 更改表的数据引擎语法格式为:

ALTER TABLE <表名> ENGINE=<更改后的存储引擎>

mysql> SHOW CREATE TABLE tb_deptment3 \G
*************************** 1. row ***************************
       Table: tb_deptment3
Create Table: CREATE TABLE `tb_deptment3` (
  `id` int(11) NOT NULL,
  `name` varchar(22) DEFAULT NULL,
  `location` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `STH` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

mysql> ALTER TABLE tb_deptment3 ENGINE=MyISAM;
Query OK, 0 rows affected (0.06 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> SHOW CREATE TABLE tb_deptment3 \G      
*************************** 1. row ***************************
       Table: tb_deptment3
Create Table: CREATE TABLE `tb_deptment3` (
  `id` int(11) NOT NULL,
  `name` varchar(22) DEFAULT NULL,
  `location` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `STH` (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

mysql>

删除表的外键约束

  对于数据库中定义的外键,如果不再需要,可以将其删除。外键一旦删除,就会解除主表和从表之间的关联关系,MySQL中删除外键的语法格式为:

ALTER TABLE <表名> FROP FOREIGN KEY <外键约束名>
mysql> CREATE TABLE tb_emp9          #创建带有外键约束的表
    -> (
    -> id INT(11) PRIMARY KEY,
    -> name VARCHAR(25),
    -> deptId INT(11),
    -> salary FLOAT,
    -> CONSTRAINT fk_emp_dept FOREIGN KEY (deptId) REFERENCES tb_dept1(id)
    -> );
Query OK, 0 rows affected (0.03 sec)

mysql> SHOW CREATE TABLE tb_emp9 \G   
*************************** 1. row ***************************
       Table: tb_emp9
Create Table: CREATE TABLE `tb_emp9` (
  `id` int(11) NOT NULL,
  `name` varchar(25) DEFAULT NULL,
  `deptId` int(11) DEFAULT NULL,
  `salary` float DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `fk_emp_dept` (`deptId`),
  CONSTRAINT `fk_emp_dept` FOREIGN KEY (`deptId`) REFERENCES `tb_dept1` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

mysql> ALTER TABLE tb_emp9 DROP FOREIGN KEY fk_emp_dept;
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> SHOW CREATE TABLE tb_emp9 \G                     
*************************** 1. row ***************************
       Table: tb_emp9
Create Table: CREATE TABLE `tb_emp9` (
  `id` int(11) NOT NULL,
  `name` varchar(25) DEFAULT NULL,
  `deptId` int(11) DEFAULT NULL,
  `salary` float DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `fk_emp_dept` (`deptId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

3.3、删除数据表

删除没有被关联的表

  在MySQL中,使用DROP TABLE 可以一次删除一个或多个没有被其他表关联的数据表,语法格式为:

DROP TABLE [IF EXISTS] 表1,表2,...表n

mysql> DROP TABLE IF EXISTS tb_dept2;
Query OK, 0 rows affected (0.04 sec)

mysql> SHOW TABLES;
+----------------+
| Tables_in_test |
+----------------+
| tb_dept1       |
| tb_deptment3   |
| tb_emp1        |
| tb_emp2        |
| tb_emp5        |
| tb_emp6        |
| tb_emp8        |
| tb_emp9        |
+----------------+
8 rows in set (0.00 sec)

删除被其他表关联的主表

  数据表之间存在外键关联的情况下,如果直接删除父表,结果会显示失败。原因是直接删除,将破坏表的参照完整性。如果必须删除,可以先删除外键约束,再删除父表。

mysql> CREATE TABLE tb_dept2 ( id INT(11) PRIMARY KEY, name VARCHAR(25), 
location VARCHAR(50) );    #创建父表                                                   
Query OK, 0 rows affected (0.03 sec)

mysql> CREATE TABLE tb_emp ( id INT(11) PRIMARY KEY, name VARCHAR(25), de
ptId INT(11), salary FLOAT, CONSTRAINT fk_emp_dept FOREIGN KEY (deptId) R
EFERENCES tb_dept2(id) );   #创建子表,外键约束
Query OK, 0 rows affected (0.03 sec)

mysql> DROP TABLE tb_dept2;  #无法父表删除  
ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constraint fails

mysql> ALTER TABLE tb_emp DROP FOREIGN KEY fk_emp_dept; #删除子表外键
Query OK, 0 rows affected (0.10 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> DROP TABLE tb_dept2;                             #成功删除父表
Query OK, 0 rows affected (0.02 sec)






您可能感兴趣的文档:

--结束END--

本文标题: 三、数据表的基本操作

本文链接: https://lsjlt.com/news/39982.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 三、数据表的基本操作
    3.1、创建数据表  创建数据表指的是在已经创建好的数据库中建立新表。创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性(实体完整性、引用完整性、域完整性)约束的过程。创建表的语法格...
    99+
    2024-04-02
  • [MySQL]基本数据类型及表的基本操作
    哈喽,大家好!我是保护小周ღ,本期为大家带来的是 MySQL 数据库常用的数据类型,数据表的基本操作:创建、删除、修改表,针对修改表的结构进行了讲解,随后是如何向数据表中添加数据,浅浅的提了一下表中数据的查询,更多相关...
    99+
    2023-08-31
    mysql 数据库 服务器 Powered by 金山文档
  • 操作mysql数据表的基本方法
    本文主要给大家介绍操作mysql数据表的基本方法,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下操作mysql数据表的基本方法吧。1.创建数据表cre...
    99+
    2024-04-02
  • MySQL数据库和表的基本操作
    文章目录 一、数据库的基础知识背景知识数据库的基本操作 二、数据类型字符串类型数值类型日期类型 三、表的基本操作创建表查看表结构查看所有表删除表 一、数据库的基础知识 背景知...
    99+
    2023-09-08
    数据库 mysql 服务器
  • MYSQL对数据库和表的基本操作
    CREATE DATABASE testdb CHARSET=UTF8 创建一个数据库 名字叫做testdb USE testdb; 选择数据库 CREATE TABLE testTable1( -> id i...
    99+
    2020-05-25
    MYSQL对数据库和表的基本操作
  • 操作mysql数据库表的基本方法
    下面一起来了解下操作mysql数据库表的基本方法,相信大家看完肯定会受益匪浅,文字在精不在多,希望操作mysql数据库表的基本方法这篇短内容是你想要的。表的操作表示数据库存储数据的基本单位,由若干个字段组成...
    99+
    2024-04-02
  • mysql中数据表基本操作的示例
    这篇文章主要介绍mysql中数据表基本操作的示例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!案例:创建数据库company,按照下面两个表给出的表结构在company数据库中创建两...
    99+
    2024-04-02
  • mysql数据库基本操作(表结构)
    装包启服务后会自动生成相关的配置文件 首次运行时会自动生成 root 初始秘密初始密码在服务日志文件中查找 grep -i password /var/log/mysql.log 进去mysql mys...
    99+
    2024-04-02
  • 数据库的基本操作
    数据库的操作笔记:加油! 跳过授权登录:1,关闭mysql;mysqld --skip-grant-tables 重新启动客户端不用密码就可以登录 远程登录数据库: select&n...
    99+
    2024-04-02
  • 基于linux操作系统Mysql的基本操作(三)
    基于linux操作系统Mysql的基本操作(三) 知识点一:查看MYSQL数据库中所有用户命令: select distinct concat ('User:''',user,...
    99+
    2024-04-02
  • mysql数据表的基本操作之表结构操作,字段操作实例分析
    本文实例讲述了mysql数据表的基本操作之表结构操作,字段操作。分享给大家供大家参考,具体如下: 本节介绍: 表结构操作 创建数据表、 查看数据表和查看字段、 修改数据表结构 删除数据表 字段操作...
    99+
    2022-05-11
    mysql 数据表 表结构 字段
  • MySQL数据库和数据表的基本操作有哪些
    这篇文章主要介绍“MySQL数据库和数据表的基本操作有哪些”,在日常操作中,相信很多人在MySQL数据库和数据表的基本操作有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2024-04-02
  • MySQL数据库中数据表的基本操作有哪些
    这篇文章主要讲解了“MySQL数据库中数据表的基本操作有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL数据库中数据表的基本操作有哪些”吧!前言:库名、表名、列名等等不能和关键字...
    99+
    2023-06-21
  • MySQL 数据库中数据表超详细的基本操作
    目录1. 查看当前数据库中的表2. 创建表3. 查看指定表结构4. 删除表5. 往表中新增数据6. 查找表中的数据6.1 全列查询6.2 指定列查询6.3 查询字段为表达式6.4 给...
    99+
    2024-04-02
  • MySQL表的基本操作
    本篇内容主要讲解“MySQL表的基本操作”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL表的基本操作”吧! create table USER...
    99+
    2024-04-02
  • 数据库的基本操作2
    mysql-day03一、mysql存储引擎1.1 存储引擎介绍: 是mysql数据库软件自带的功能程序,每种存储引擎的功能和数据存储方式也不同存储引擎就处理表的处理器 1.2 查看数据库服务支持...
    99+
    2024-04-02
  • 二、数据库的基本操作
    MySQL命令主要分为以下几类:  DML:Data Manapulate Language: 数据操作语言(操作表中数据)    INSERT, REPLACE, UPDAT...
    99+
    2024-04-02
  • MySQL管理数据库、数据表、数据的基本操作是什么
    本篇内容主要讲解“MySQL管理数据库、数据表、数据的基本操作是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL管理数据库、数据表、数据的基本操作是...
    99+
    2024-04-02
  • Oracle数据库基本操作——表空间管理
    简介:ORACLE物理上是由磁盘上的以下几种文件:数据文件和控制文件和LOGFILE构成的表空间就只谈相关的数据文件首先明确概念:表空间是ORACLE内部定义的一个概念,是为了统一ORACLE物理和逻辑上的...
    99+
    2024-04-02
  • MySQL中怎么实现数据表基本操作
    MySQL中怎么实现数据表基本操作,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。数据表的基本操作1.主键约束要求主键列的数据唯一,并且不允...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作