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;

MySQL基础之第6章 创建、修改和删除表 .的更多相关文章

  1. MySQL:创建、修改和删除表

    其实对很多人来说对于SQL语句已经忘了很多,或者说是不懂很多,因为有数据库图形操作软件,方便了大家,但是我们不能忘记最根本的东西,特别是一些细节上的东西,可能你用惯了Hibernate,不用写SQL语 ...

  2. SQLite 入门教程(二)创建、修改、删除表 (转)

    转于 SQLite 入门教程(二)创建.修改.删除表 一.数据库定义语言 DDL 在关系型数据库中,数据库中的表 Table.视图 View.索引 Index.关系 Relationship 和触发器 ...

  3. MySQL根据表前缀批量修改、删除表

    注意:请先调试好,以及做好备份,再执行操作. 批量修改表 批量给前缀为 xushanxiang_content_ 的表增加一个 username 的字段: SELECT CONCAT('ALTER T ...

  4. Oracle 基本操作--数据类型、修改和删除表、增删改查和复制表

    一.Oracle基础数据类型:数据类型: 创建数据表时,设计数据表的结构问题,也就是设计及确定数据表中各个列的数据类型,是数值.字符.日期还是图像等其他类型. 因为只有设计好数据表结构,系统才会在磁盘 ...

  5. MySQL基础之第7章 索引

    第7章 索引 MySQL中,所有的数据类型都可以被索引,包括普通索引,唯一性索引,全文索引,单列索引,多列索引和空间索引等. 7.1.索引简介 7.1.1.索引的含义和特点 BTREE索引,HASH索 ...

  6. mysql基础知识之-数据库的创建、查看等常用操作

    命令创建mysql数据库: 先启动mysql数据库,连接数据库: mysql -uroot -p123456         (语法:mysql -u登录名 -p密码) 创建表: create dat ...

  7. MySQL基础之第17章 MySQL日志

    17.1.日志简介 二进制日志错误日志通用查询日志慢查询日志 17.2.二进制日志 二进制日志也叫作变更日志(update log),主要用于记录数据库的变化情况.通过二进制日志可以查询MySQL数据 ...

  8. [MYSQL][1]创建,修改,删除表

    查看有哪些数据库: SHOW DATABASES; 创建,删除数据库: CREATE DATAABASE mydb; DROP DATABASE mydb; 查看有哪些表: SHOW TABLES; ...

  9. mysql 修改 添加 删除 表字段

    添加表的字段    alter table 表名  add  字段名  字段的类型 例子:        alter table table1 add transactor varchar(10) n ...

随机推荐

  1. Codeforces400D Dima and Bacteria

    题意:给你一个无向有权的图,图上的点被分成了几类,对于同类的点你需要判断它们之间相互的最短距离是不是0.满足这个条件之后要输出的是类与类之间的最短距离的矩阵.点给到10^5这么多,判断同类的点显然不能 ...

  2. Thread的第四天学习

    线程通信 wait notify synchronized + 同对象 才可 互斥 锁不是放在线程上的,放在共享资源内部的. wait 线程等待 notify 线程唤醒

  3. linux 查看某一端口的占用情况

    查看某一端口的占用情况: lsof -i:端口号,例如查看端口21是否被占用 lsof -i: 实例:查看端口是否被占用,如果被占用结束掉该端口 [root@localhost splunk]# ls ...

  4. 素数筛法--SPOJ Problem 2 Prime Generator

    质数(prime number)又称素数,除了1和它本身外,不能整除以其他自然数,换句话说就是该数除了1和它本身以外不再有其他的因数:否则称为合数.最小的质数是2. 要判断一个整数N是不是质数很简单, ...

  5. MSRA面试总结

    http://blog.renren.com/share/405984844/16014442499 注:以下内容纯凭记忆,由于已经过去一个多月,不保证准确性.由于面试前没有签保密协议,本文透露了比较 ...

  6. (三)C#关于txt文件的读取和写入

    using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Tex ...

  7. junit浅学笔记

    JUnit是一个回归测试框架(regression testing framework).Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(Wh ...

  8. 严重: Catalina.stop: java.net.ConnectException: Connection refused: connect

    原因: 1.连接被拒绝,关闭的时候报错.是不是已经关闭了,你又关闭,他当然找不到了. 2.连接被拒绝有可能是服务端连接数到达最高了 3.服务器拒绝连接,ip地址是否写对,端口号正确与否,网络是否通畅, ...

  9. poj3468,poj2528

    其实这两题都是基础的线段树,但对于我这个线段树的初学者来说,总结一下还是很有用的: poj3468显然是线段树区间求和,区间更改的问题,而poj2528是对区间染色,问有多少种颜色的问题: 线段树的建 ...

  10. 亲测!Jquery2.0不支持IE8-了

    最近由于测试需要,Win7回退到了官方更新的IE8浏览器,惊人的发现: <script src="//cdn.bootcss.com/jquery/2.0.0/jquery.min.j ...