MySQL中数据表的基本操纵

本文基于对国家863中部软件孵化器编著的《MySQL从入门大精通》一书的操作实践。

 一、创建数据表

数据表属于数据库,在创建数据表之前,应该使用语句 USE 数据库名  指定操作是在那个数据库中进行。

创建数据表的语句为CREATE TABLE ,语法规则如下:

1 CREATE TABLE 表名
2 (                //为括号
3  字段名1 数据类型 [列级别约束条件] [默认值],
4  字段名1 数据类型 [列级别约束条件] [默认值],
5 ......
6 [表级约束条件]
7 );             //要有分号

使用CREATE TABLE 创建表时,要注意一下几点:

(1)要创建表名,不区分大小写,不能使用SQL语言中的关键字,如DROP、ALTER等;

(2)数据表中每一个字段的名称和数据类型,如果要创建多个,要用逗号隔开。

1、主键约束

主键,又称主码,是表中一列或者多列的组合。主键约束(Primary Key Constraint)要求主键列的数据唯一,并且不允许为空。主键能够唯一标识表中的一条记录,可以结合外键来定义不同数据表之间的关系,并且可以加快数据库查询的速度。主键和记录之间的关系如同身份证和人之间的关系,它们之间一一对应。主键分为两种类型:单字段主键和多字段联合主键。

(1)单字段主键

a)在定义列的同时指定主键,语法规则如下:

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

b)在定义完所有列之后指定主键,语法格式如下:

PRIMARY KEY [字段名]

(2)多字段联合主键

语法规则如下:

PRIMARY KEY [字段1,字段2....,字段名n]

2、外键约束

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

创建外键的语法如下:

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

注意:子表的外键必须关联父表的主键,且关联字段的数据类型必须匹配,如果类型不一样,则创建子表是,就会出现错误提示。

3、非空约束

非空约束(NOT NULL Constraint)是指字段的值不能为空。语法规则如下:

字段名 数据类型 NOT NULL

4、唯一性约束

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

1)语法

字段名 数据类型 UNIQUE

2)语法

在定义往所有列之后指定唯一约束,语法如下:

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

5、默认约束

默认约束指定某列的默认值。语法如下:

字段名 数据类型 DEFAULT 默认值

注:UNIQUE和PRIMARY KEY的区别:

1)一个表可以有多个字段声明为UNIQUE,但是只能由一个PRIMARY KEY声明;

2)声明为PRIMARY KEY 的类不允许有空值,但是声明为UNIQUE的字段允许空值的存在。

6、设置数据表的属性值自动增加

在数据库应用中,希望在每次插入新记录时,系统自动生成字段的主键值。可以通过表主键添加AUTO_INCREMENT关键字来实现。

一个表只能由一个字段使用AUTO_INCREMENT约束,且该字段必须为主键的一部分。语法如下:

字段名 数据类型 AUTO_INCREMENT

然后对数据表中插入相应的数据以后看:

二、查看数据表结构

1、查看表基本结构

语法如下:

DESCRIBE(DESC) 表名;

2、查看表详细结构

语法格式如下:

SHOW CREATE TABLE <表名\G>;

三、修改数据表

1、修改表名

语法如下:

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

注:修改表名并不修改表的结构。

2、修改字段数据类型

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

3、修改字段名

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

4、添加字段

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

默认的添加位置是数据表的最后列

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

2)添加有完成约束条件的字段

3)在表的第一类添加一个字段

4)在表中指定列之后添加一个字段

5、删除字段

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

6、修改字段排序

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

7、修改表的存储引擎

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

8、删除表的外键约束

ALTER TABLE<表名>DROP FOREIGN KEY<外键约束名>;

四、删除数据表

DROP TABLE 表1,表2....

值得注意的是,删除数据表时,若有外键约束,应先删除约束条件,再删除主表。也可以先删除子表,再删除主表。

 总结:

1、数据表的修改用ALTER TABLE

2、数据表的删除用DROP

时间: 2024-10-10 05:30:24

MySQL中数据表的基本操纵的相关文章

MySQL中数据表的增操作

今天学习到表的增操作,写个博客总结一下,PS:下面所有的注释都是我在电脑上全部操作完成后,再复制到记事本上添加的.至于在执行的时候可不可以那样添加注释,就有待考证了. 选择库 mysql> show databases;#查看目前有哪些数据库存在 +--------------------+ | Database | +--------------------+ | information_schema | | ceshi_ku | | mysql | | performance_schema

MySQL中数据表的查操作

查询数据表的全部内容 mysql> show tables;#查看当前数据库下的所有表 +--------------------+ | Tables_in_ceshi_ku | +--------------------+ | biao | | ceshi_biao | +--------------------+ 2 rows in set (0.00 sec) mysql> select * from biao;#查看该表所有的内容,*代表通配符,在这里是代表所有的列 +------+-

mysql中数据表

概述: 数据表(或称表)是数据库中最重要的组成部分之一,是其他对象的基础. 关系型数据库就是一张二维表格 行称之为记录 列称之为字段 打开数据库:USE+数据库名称 查看所选择的数据库  SELECT  DATABASE(); 创建数据表 CREATE TABLE [IF NOT EXISTS] table_name(column_name data_type,..) 查看数据表是否存在,SHOW TABLES [FROM db_name] [LIKE 'pattern' | WHERE exp

修改MySql中数据表和字段的字符集和排序规则

由于数据库中的数据表和表字段的字符集和排序规则不统一,找了很多帖子,最后发现如下脚本很好用. 用法儿是:先执行如下脚本生成修改数据表和表字段的脚本,然后再执行这些生成的脚本. 1. 修改指定数据库中所有varchar类型的表字段的字符集为UTF8,并将排序规则修改为utf8_general_ci SELECT CONCAT('ALTER TABLE `', table_name, '` MODIFY `', column_name, '` ', DATA_TYPE, '(', CHARACTER

(jsp+servlet+html+jdbc)修改mysql中数据表信息

步骤: 以下没写到的都是之前两个的代码没变 注意:一定要导入.jar包 1.创建一个Java EE工程 2.在之前的all.jsp中加两条代码,如下图:---all.jsp 3.再建一个修改页面,如下图:----edit.jsp 图中value="<%=c.getCustomerID()%>和其他那些相同的意思是:获取新参数信息 <input type="hidden" name="CustomerID" value="<

MySQL查询数据表中数据记录(包括多表查询)

MySQL查询数据表中数据记录(包括多表查询) MySQL查询数据表中数据记录(包括多表查询) 转自:http://www.baike369.com/content/?id=5355 在MySQL中创建数据库的目的是为了使用其中的数据. 使用select查询语句可以从数据库中把数据查询出来. select语句的语法格式如下: select selection_list // 要查询的内容,选择哪些列 from table_list // 从什么表中查询,从何处选择行 where primary_

MySQL中多表删除方法(转载)

如果您是才接触MySQL数据库的新人,那么MySQL中多表删除是您一定需要掌握的,下面就将为详细介绍MySQL中多表删除的方法,供您参考,希望对你学习掌握MySQL中多表删除能有所帮助. 1.从MySQL数据表t1中把那些id值在数据表t2里有匹配的记录全删除掉 DELETE t1 FROM t1,t2 WHERE t1.id=t2.id 或DELETE FROM t1 USING t1,t2 WHERE t1.id=t2.id 2.从MySQL数据表t1里在数据表t2里没有匹配的记录查找出来并

mysql修改数据表名

在使用mysql时,经常遇到表名不符合规范或标准,但是表里已经有大量的数据了,如何保留数据,只更改表名呢? 可以通过建一个相同的表结构的表,把原来的数据导入到新表中,但是这样视乎很麻烦. 能否简单使用一个SQL语句就搞定呢?当然可以,mysql5.0下我们使用这样的SQL语句就可以了. ALTER  TABLE table_name RENAME TO new_table_name 例如 ALTER  TABLE admin_user RENAME TO a_user mysql修改数据表名

MySQL对数据表进行分组查询(GROUP BY)

MySQL对数据表进行分组查询(GROUP BY) GROUP BY关键字可以将查询结果按照某个字段或多个字段进行分组.字段中值相等的为一组.基本的语法格式如下: GROUP BY 属性名 [HAVING 条件表达式] [WITH ROLLUP] 属性名:是指按照该字段的值进行分组. HAVING 条件表达式:用来限制分组后的显示,符合条件表达式的结果将被显示. WITH ROLLUP:将会在所有记录的最后加上一条记录.加上的这一条记录是上面所有记录的总和. GROUP BY关键字可以和GROU