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

 一、创建数据表

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

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

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

使用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

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

  1. 查看MYSQL中数据表占用的空间

    由于数据太大了.所以MYSQL需要瘦身,那前提就是需要知道每个表占用的空间大小. 首先打开指定的数据库: use information_schema; 如果想看指定数据库中的数据表,可以用如下语句: ...

  2. MySQL中数据表的查操作

    查询数据表的全部内容 mysql> show tables;#查看当前数据库下的全部表 +--------------------+ | Tables_in_ceshi_ku | +------ ...

  3. MySql中数据表增加字段很慢怎么办

    正确的做法是这样,对于数据量很大的表,需要添加所有或者修改字段的做法是如下: 1.先创建一张一样的表 create table new_tb like tb_old; 2.修改创建表的字段 alter ...

  4. mysql中数据表记录的增删查改(2)

    select `数据表.字段1`, group_concat(`数据表.字段2`) from `数据表` group by `数据表.字段1` order by `数据表.字段1` desc; sel ...

  5. mysql中数据表记录的增删查改(1)

    数据记录的增删改查 insert into `数据表名称` (`字段名称`, ...) values ('1', ...); delete from `数据表名称` where 子句; update ...

  6. MySQL中数据表的增操作

    今天学习到表的增操作,写个博客总结一下,PS:以下所有的凝视都是我在电脑上所有操作完毕后,再拷贝到记事本上加入的.至于在运行的时候可不能够那样加入凝视,就有待考证了. 选择库 mysql> sh ...

  7. 给MySQL中数据表添加字段

    添加一个char字段: mysql> alter table stock add src char(20); Query OK, 3766 rows affected (0.65 sec) Re ...

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

    MySQL查询数据表中数据记录(包括多表查询) 在MySQL中创建数据库的目的是为了使用其中的数据. 使用select查询语句可以从数据库中把数据查询出来. select语句的语法格式如下: sele ...

  9. MySQL为数据表的指定字段插入数据

    username not null 没有默认值/有默认值   insert不插入username字段 均不报错 2014年07月23日21:05    百科369 MySQL为数据表的指定字段插入数据 ...

随机推荐

  1. C#中Mutex的用法

    C#中Mutex是互斥锁,位于System.Threading 命名空间中. 顾名思义,它是一个互斥的对象,同一时间只有一个线程可以拥有它,该类还可用于进程间同步的同步基元. 如果当前有一个线程拥有它 ...

  2. vim分屏功能总结

    vim的分屏功能 总结起来,基本都是ctrl+w然后加上某一个按键字母,触发一个功能.(1)在shell里打开几个文件并且分屏: vim -On file1 file2 ... vim -on fil ...

  3. Unity AssetBundle工作流

    一.创建AssetBundle 1.在资源的Inspector视图下有一个AssetBundle的UI,第一个选项表示AssetBundle名称,第二个用于设置AssetBundle Variant, ...

  4. 「日常训练」Kefa and Dishes(Codeforces Round #321 Div. 2 D)

    题意与分析(CodeForces 580D) 一个人有\(n\)道菜,然后要点\(m\)道菜,每道菜有一个美味程度:然后给你了很多个关系,表示如果\(x\)刚好在\(y\)前面做的话,他的美味程度就会 ...

  5. 「日常训练」Woodcutters(Codeforces Round 303 Div.2 C)

    这题惨遭被卡..卡了一个小时,太真实了. 题意与分析 (Codeforces 545C) 题意:给定\(n\)棵树,在\(x\)位置,高为\(h\),然后可以左倒右倒,然后倒下去会占据\([x-h,x ...

  6. 程序迭代时测试操作的要点(后端&前端)

    今晚直播课内容简介,视频可点击链接免费听 <程序迭代时测试操作的要点(后端&前端)> ===== 1:迭代时后台涉及的操作有哪些?如何进行 a.更新war包:用于访问web\app ...

  7. 关于TensorFlow的GPU设置

    摘自:https://blog.csdn.net/byron123456sfsfsfa/article/details/79811286 1.  在使用GPU版的TensorFlow跑程序的时候,如果 ...

  8. windows编程常见数据类型

    windows编程常见数据类型, 总结一下方便查阅: 类型 对应指针 描述 ATOM . typedef WORD ATOM; BOOL LPBOOL 布尔类型,值要写成TRUE或FALSE,实际上是 ...

  9. Beta版本软件使用说明

    北京航空航天大学计算机学院 远航1617 小组 产品版本: Beta版本 产品名称:Crawling   is going on 文档作者:杨帆 文档日期:2013/12/24 1.   引言 1.1 ...

  10. c# throw抛出上一个异常

    catch(exception e) { throw; } 不仅抛出这次的异常,也抛出之前的异常. 用法示例:函数A调用函数B,A用到此throw时,B中发生的异常也会继承过来. catch(exce ...