mysql之对表的操作

1. 表的基本概念

在数据库中,表是一种非常重要的数据库对象,是组成数据库的基本对象,由若干个字段组成,主要用来储存数据记录。

表中的数据库对象包含列,索引和触发器。

列:也称属性列,在具体创建表时必须指定列的名字和数据类型。

索引:是根据指定的数据库表列建立起来的顺序,提供了快速访问数据的途径且可监督表的数据,使其索引所指向的列中的数据不重复。

触发器:定义的事物命令的集合,当对一个表中的数据进行插入,更新或者删除时这组命令就会自动执行,可以用来确保数据的完整性和安全性。

2.创建表

CREATE TABLE t_dept(
deptno INT,
dbname VARCHAR(20),
loc VARCHAR(40)
);

3.查看表结构

3.1 DESCRIBE(DESC是简写)语句查看表定义

DESCRIBE t_dept;

3.2 SHOW CREATE TABLE语句查看表详细定义

SHOW CREATE TABLE  t_dept;

在显示详细定义信息时,可以使用";","\g"和"\G"符号来结束,为了让结果美观,便于查看,最好使用"\G"符号来结束,如下:

4. 删除表

DROP TABLE t_dept;

5. 修改表

5.1 修改表名

ALTER TABLE old_table_name RENAME [TO] NEW _table_name

5.2 增加字段

在表的最后一个位置增加字段:

ALTER TABLE table_name ADD 属性名 属性类型

在表的第一个位置增加字段:

ALTER TABLE table_name ADD 属性名 属性类型 FIRST

在表的指定字段之后增加字段:

ALTER TABLE table_name ADD 属性名 属性类型 AFTER 属性名

5.3 删除字段

ALTER TABLE table_name DROP 属性名

5.4 修改字段

修改字段的数据类型:

ALTER TABLE table_name MODIFY属性名 属性类型

修改字段的名字:

ALTER TABLE table_name CHANGE 旧属性名 新属性名  旧数据类型

同时修改字段的名字和属性:

ALTER TABLE table_name CHANGE 旧属性名 新属性名  新数据类型

修改字段的顺序:

ALTER TABLE table_name MODIFY 属性名1 数据类型 FIRST|AFTER 属性名2

6. 操作表的约束

对于已经创建好的表,虽然字段的数据类型决定了所能储存的数据类型,但是表中所储存的数据是否合法并没有进行检查。如果想针对表中的数据做一些完整性检查操作,可以通过表中的约束来完成。

6.1 MySQL支持的完整性约束

所谓表的完整性是指数据的准确性和一致性,而完整性检查就是指检查数据的准确性和一致性。

完整性约束
完整性约束关键字 含义
NOT NULL 约束字段的值不能为空
DEFAULT 设置字段的默认值
UNIQUE KEY(UK) 约束字段的值是唯一
PRIMARY KEY(PK) 约束字段为表的主键,可以作为该表记录的唯一标识
AUTO_INCREMENT 约束字段的值为自动增加
FOREIGN KEY(FK) 约束字段为表的外键

MySQL数据库管理系统不支持check约束,即可以使用check约束但是却没有任何效果。

根据约束数据列限制,约束可以分为单列约束(每个约束只约束一列数据)和多列约束(每个约束可以约束多列数据)。

6.2 设置非空约束(NOT NULL,NK)

create table table_name(
属性名  属性类型 NOT NULL,

...
);

6.3 设置字段的默认值(DEFAULT)

create table table_name(
属性名  属性类型 DEFAULT 默认值,

...
);

6.4 设置唯一约束(UNIQUE,UK)

create table table_name(
属性名  属性类型 UNIQUE,

...
);

如果想给设置唯一约束的字段的约束取一个名字,可以执行SQL语句CONSTRAINT:

create table table_name(
dbname 属性类型,

...
CONSTRAINT uk_dbname UNIQUE(dbname)
);

6.5 设置主键约束(PRIMARY KEY,PK)

设置主键约束时,必须满足主键字段的值是唯一,非空的。

单字段主键:

create table table_name(
属性名  属性类型 PRIMARY KEY,

...
);

如果想给设置单一主键的字段的约束取一个名字,可以执行SQL语句CONSTRAINT:

create table table_name(
dbname 属性类型,

...
CONSTRAINT pk_dbname PRIMARY KEY(dbname)
);

多字段主键:

当主键由多个字段组合而成时,需要通过SQL语句CONSTRAINT 来实现:

create table table_name(
属性名1 数据类型,
属性名2 数据类型,

...
CONSTRAINT 约束名 PRIMARY KEY(属性名1,属性名2)
);

6.6 设置字段值自动增长(AUTO_INCREMENT)

AUTO_INCREMENT是MySQL唯一拓展的完整性约束,当为数据库表中插入新纪录时,字段上的值会自动生成唯一的ID。一个数据库表中只能有一个字段使用该约束,该字段的数据类型必须是整数类型。由于设置AUTO_INCREMENT约束后的字段会生成唯一的ID,所以该字段也经常会设置成PK主键。

create table table_name(
属性名  数据类型 AUTO_INCREMENT,

...
);

6.7 设置外键约束(FOREIGN KEY,FK)

前面的完整性约束都是在单表中进行设置,而外键约束则保证多个表(通常为两个表)之间的参照完整性,即构建于两个表的两个字段之间的参照关系。

create table table_name(
属性名 数据类型,
属性名 数据类型,

...
CONSTRAINT 外键约束名 FOREIGN KEY(属性名1) REFERENCES 表名 (属性名2)
);
时间: 2024-10-10 23:56:36

mysql之对表的操作的相关文章

mysql对表的操作

mysql对表的操作 表的概念 表示包含数据库中所有数据的数据库对象.表中的数据库对象包含列.索引.触发器.其中触发器是指用户定义的事务命令集合,当对一个表中的数据进行插入.更新或者删除时,这组命令就会自动执行,可以确保数据的安全性和完整性. 创建表 create table tableName( 属性名 字段类型, 属性名 字段类型, -- 属性名 字段类型 ); 最后一个字段类型后面没有逗号,整个语句的小括号后边有分号. 例如:创建一个数据库,并且创建一张表: create database

进击的Python【第十二章】:mysql介绍与简单操作,sqlachemy介绍与简单应用

进击的Python[第十二章]:mysql介绍与简单操作,sqlachemy介绍与简单应用 一.数据库介绍 什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据.我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢.所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量.所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来

MySQL对库的操作

    单机程序(自己DB) 单机程序(公用DB) MySQL:假设是用于管理文件的一个软件,数据库就像windows上的文件夹,表就是文件夹里面的文件,可以用MySQL的各种SQL语句管理这些文件夹,文件,,, 对数据库的操作:    文件夹 show databases; use dataname;  show tables; select * from 表名; select name,age,id,password from 表名; use mysql; create database d

Hibernate 中对表的操作

Hibernate CRUD testing Hibernate 中对表的操作, add,load,update,delete,list,pager(分页) package org.test.test; import java.text.SimpleDateFormat; import java.util.List; import org.hibernate.Session; import org.junit.Test; import org.zttc.itat.model.User; impo

mysql数据库很简单操作

进入linux系统 root   >/usr/bin/mysql -u root mysql>show databases;                    #查看数据库 mysql>use  testtable;                        #testtable 为所要查看的库,应用数据库 mysql>show tables;                          #查看所有表 mysql>desc abc_table          

Mysql安装和基础操作

1.环境检查: 先检查是否已经安装了:rpm -qa |grep mysql ---两个都检查下,查看mysql是否安装 rpm -qa |grep MySQL若安装有可删除:rpm -e ****** 2.安装:1)安装前准备:mkdir usr/mysql cd进入该目录,上传安装包到/usr/mysql目录下2)安装:rpm -ivh MySQL-server-5.0.16-0.i386.rpm rpm -ivh MySQL-elient-5.0.16-0.i386.rpm3)验证安装是否

【代码学习】MYSQL数据库的常见操作

============================== MYSQL数据库的常见操作 ============================== 一.mysql的连接与关闭 -h:指定所连接的服务器位置 -u:数据库的用户名 -p:数据库的密码 1 mysql -u 用户名 -p //连接数据库 2 密码 3 exit //关闭数据库 1 mysql_connect($host,$user,$password); //连接数据库 2 mysql_close() //关闭数据库 二.创建数据

linux系统上Mysql数据库导入导出操作

需求:把MySQL数据库目录中的dz数据库备份到/home/dz_bak.sql ,然后再新建一个数据库dzbak,最后把/home/dz_bak.sql 导入到数据库dzbak中.操作如下:以下操作均在终端命令行下进行 1.mysqldump -u root -p dz > /home/dz_bak.sql        #导出数据库     123456     #输入数据库密码     扩展:     mysqldump -u root -p dz pre_portal_comment >

MYSQL数据库学习----MYSQL数据库、表操作和引擎区别

MYSQL数据库的操作 一:查看MYSQL中所有的数据库 SHOW DATABASES; 二:创建数据库 CRETAE DATABASE 数据库名称; 三:删除数据库 DROP DATABASE 数据库名称; 四:查看数据库支持的存储引擎 SHOW ENGINES; 四:连接MYSQL数据库 USE 数据库名称; MYSQL数据库中表的操作 一:查看数据库中的所有表格 SHOW TABLES: 二:查看表格的结构 DESC 表名称;(基本结构): 或 SHOW CREATE TABLE 表名称;