6.1、创建表

6.1.1、创建表的语法形式

CREATE TABLE 表名 ( 属性名 数据类型 [完整性约束条件],
属性名 数据类型 [完整性约束条件],
......

属性名 数据类型
);

完整性约束条件表:
PRIMARYKEY                 主键
FOREIGNKEY                 外键
NOTNULL                     不能为空
UNIQUE                        唯一索引
AUTO_INCREMENT              自动增加
DEFAULT                        默认值

CREATE TABLE example0 (id INT,
                              name VARCHAR(20),
                              sex    BOOLEAN
                           );

6.1.2、设置表的主键

单字段主键
属性名数据类型 PRIMARY KEY
CREATE TABLE example1( stu_id  INT PRIMARY KEY,
                          stu_name  VARCHAR(20),
                           stu_sex BOOLEAN,
                    );

多字段主键
PRIMARY KEY(属性名1, 属性名2…属性名n)
CREATE TABLE example2(stu_id INT,
                           course_idINT,
                           gradeFLOAT,
                           PRIMARY KEY(stu_id, course_id)
                          );

6.1.3、设置表的外键

CONSTRAINT 外键别名 FOREIGN KEY (属性1.1, 属性1.2,…, 属性1.n)
         REFERENCES表名(属性2.1, 属性2.2,…, 属性2.n)

CREATE TABLE example3(stu_id INT,
                           course_idINT,
                           CONSTRAINTc_fk FOREIGN KEY (stu_id, course_id)
                           REFERENCESexample2(stu_id, course_id)
                    );

6.1.4、设置表的非空约束

CREATE TABLE example4(id INT NOT NULL PRIMARYKEY,
                           name VARCHAR(20)NOT NULL,
                           stu_id INT,
                           CONSTRAINTd_fk FOREIGN KEY(stu_id),
                           REFERENCE Sexample1(stu_id)
                                     );

6.1.5、设置表的唯一性约束

属性名 数据类型 UNIQUE
CREATE TABLE example5(id INTPRIMARY KEY,
                           stu_id INT UNIQUE,
                           name VARCHAR(20) NOT NULL
                    );

6.1.6、设置表的属性值自动增加

属性名 数据类型 AUTO_INCREMENT
CREATE TABLE example6(id INT PRIMARY KEY AUTO_INCREMENT,
                           stu_id INTUNIQUE,
                           name VARCHAR(20)NOT NULL
                    );

6.1.7、设置表的属性的默认值

属性名 数据类型 DEFAULT 默认值
CREATE TABLE example7(id INT PRIMARY KEY AUTO_INCREMENT,
                           stu_id INTUNIQUE,
                           name VARCHAR(20) NOT NULL.
                           english VARCHAR(20) DEFAULT 'zero',
                           computer   FLOAT DEFAULT 0
                          );

6.2、查看表结构

6.2.1、查看表基本结构语句DESCRIBE

DESC 表名

desc example1

6.2.2、查看表详细结构语句SHOW CREATE TABLE

SHOW CREATE TABLE 表名;

SHOW CREATE TABLE example example1\G;

6.3、修改表

6.3.1、修改表名

ALTER TABLE 旧表名 RENAME [TO] 新表名;
DESC example0;
ALTER TABLE example0 RENAME TO user;

6.3.2、修改字段的数据类型

ALTER TABLE 表名 MODIFY 属性名数据类型;
DESC user;
ALTER TABLE user MODIFY name VARCHAR(30);
DESC user;

6.3.3~6.3.6、字段及数据类型的增、删,改以及改变位置\

ALTER TABLE 表名 ADD 属性名1 数据类型 [完整性约束条件] [FIRST|AFTER属性名2];
ALTER TABLE 表名 DROP 属性名;
ALTER TABLE 表名 CHANGE 旧属性名新属性名 新数据类型;

利用上面的语句可以增加,删除,修改字段。修改字段名,数据类型,和位置

6.3.7、更改表的存储引擎

ALTER TABLE 表名ENGINE=INNODB|MYISAM|MEMOERY;
SHOW CREATE TABLE user\G;
ALTER TABLE user ENGINE=MyISAM;

6.3.8、删除表的外键约束

ALTER TABLE表名 DROP FOREIGN KEY 外键别名 ;
SHOW CREATE TABLE example3\G;
ALTER TABLE example3 DROP FOREIGN KEY c_fk;
SHOW CREATE TABLE example3\G;

6.4、删除表

6.4.1、删除没有被关联的普通表

DROP TABLE 表名;
DESC example5;
DROP TABLE example5;
DESC example5;

6.4.2、删除被其他表关联的父表

删除外键后再删除表

DROP TABLE example1; -- 报错
SHOW TABLE example4\G;
ALTER TABLE example4 DROP FOREIGN KEY d_fk;
SHOW TABLE example4\G;
DROP TABLE example1;
DESC example1;

最新文章

  1. BZOJ4620: [Wf2016]What Really Happened on Mars?
  2. MySQL主备停机步骤与注意事项
  3. Shell概述
  4. hdu 3917 Road constructions 最大权闭合子图
  5. div居中的三种方法
  6. codeforces 653D. Delivery Bears 网络流
  7. Python 内嵌函数运用(探究模块)
  8. echarts常用方法(一)
  9. vuex2.0 基本使用(3) --- getter
  10. KVM虚拟化研究-1
  11. beego的https和http同时启用
  12. Scala集合(二)
  13. centos6.6安装hadoop-2.5.0(一、本地模式安装)
  14. Spark安装过程纪录
  15. pandas 语句
  16. IPMI相关漏洞利用及WEB端默认口令登录漏洞
  17. Java学习--使用 Math 类操作数据
  18. Vim 字符集问题
  19. 【DeepLearning学习笔记】Neurons神经元
  20. 《C#高效编程》读书笔记02-用运行时常量(readonly)而不是编译期常量(const)

热门文章

  1. NGINX的奇淫技巧 —— 6. IF实现数学比较功能 (1)
  2. How do you design object oriented projects?
  3. HDU1251 统计难题 Trie树
  4. PhotoSwipe简介(PhotoSwipe是一个适合在触摸屏手机上使用的相册展示包)
  5. POJ3414Pots
  6. Java并发包中常用类小结(二)
  7. MyBatis,动态传入表名,字段名的解决办法
  8. 使用WM_COPYDATA跨进程发送数据
  9. eclipse 中忽略jsp, xml文件中的报错信息
  10. 关于为什么java需要垃圾回收