MySQL基础之第6章 创建、修改和删除表 .
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章 创建、修改和删除表 .的更多相关文章
- MySQL:创建、修改和删除表
其实对很多人来说对于SQL语句已经忘了很多,或者说是不懂很多,因为有数据库图形操作软件,方便了大家,但是我们不能忘记最根本的东西,特别是一些细节上的东西,可能你用惯了Hibernate,不用写SQL语 ...
- SQLite 入门教程(二)创建、修改、删除表 (转)
转于 SQLite 入门教程(二)创建.修改.删除表 一.数据库定义语言 DDL 在关系型数据库中,数据库中的表 Table.视图 View.索引 Index.关系 Relationship 和触发器 ...
- MySQL根据表前缀批量修改、删除表
注意:请先调试好,以及做好备份,再执行操作. 批量修改表 批量给前缀为 xushanxiang_content_ 的表增加一个 username 的字段: SELECT CONCAT('ALTER T ...
- Oracle 基本操作--数据类型、修改和删除表、增删改查和复制表
一.Oracle基础数据类型:数据类型: 创建数据表时,设计数据表的结构问题,也就是设计及确定数据表中各个列的数据类型,是数值.字符.日期还是图像等其他类型. 因为只有设计好数据表结构,系统才会在磁盘 ...
- MySQL基础之第7章 索引
第7章 索引 MySQL中,所有的数据类型都可以被索引,包括普通索引,唯一性索引,全文索引,单列索引,多列索引和空间索引等. 7.1.索引简介 7.1.1.索引的含义和特点 BTREE索引,HASH索 ...
- mysql基础知识之-数据库的创建、查看等常用操作
命令创建mysql数据库: 先启动mysql数据库,连接数据库: mysql -uroot -p123456 (语法:mysql -u登录名 -p密码) 创建表: create dat ...
- MySQL基础之第17章 MySQL日志
17.1.日志简介 二进制日志错误日志通用查询日志慢查询日志 17.2.二进制日志 二进制日志也叫作变更日志(update log),主要用于记录数据库的变化情况.通过二进制日志可以查询MySQL数据 ...
- [MYSQL][1]创建,修改,删除表
查看有哪些数据库: SHOW DATABASES; 创建,删除数据库: CREATE DATAABASE mydb; DROP DATABASE mydb; 查看有哪些表: SHOW TABLES; ...
- mysql 修改 添加 删除 表字段
添加表的字段 alter table 表名 add 字段名 字段的类型 例子: alter table table1 add transactor varchar(10) n ...
随机推荐
- uva 1344
这本来是暑假集训做过的一个题 现在做来 就三种情况 1.田忌最快的比齐王最快的快 就用最快的比最快的 2.田忌最慢的比齐王最慢的快 就用最慢的比最慢的 3.上两种情况都不符合 用田忌最慢的去比齐王最快 ...
- 清除目录下的SVN信息
今天需要迁移一个版本库中的子目录到新的版本库中,以为不需要保留日志信息,所以只需拿最新的代码提交就可以. 对于清除目录下的SVN信息,在网上找一些方法,并实践执行了下: 在linux下 删除这些目录是 ...
- 帝国cms如何调用栏目别名作为分类标题?[!--classname--]标签不能用
用帝国cms建站安全性和生成速度会比dedecms好些,但ecms有个比较不方便的地方就是后台默认模板栏目那边没有一个seo标题设置的输入框,列表模板用的是[!--pagetitle--]标签,那么分 ...
- 【C++基础】 指针&字符串&数组
先贴代码,总结以后再写,和5中内存分配方式密切相关 PS: str 返回整个字符串,str[0],*str返回首字符h char *strA(){ char str[]="hello!&qu ...
- 暑假集训单切赛第二场 UVA 10982 Troublemakers
题意:将点放在两个集合,同一个集合的边保留,不同集合的边删去,使得边至少减少一半. 输出任何一种方案即可.如果不能,输出Impossible 思路:设如果两个人为一对捣蛋鬼,则two[i][j]=t ...
- Javascript 绝对定位和相对定位
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- POJ1789Truck History
题意 : 说实话,题意我没看懂,后来让人给我讲的样例..... 4 aaaaaaa baaaaaa abaaaaa aabaaaa 0 这个样例的话,就是输入n下面n行,每行7个字母,让你依次选两行进 ...
- 通过一个简单的数据库操作类了解PHP链式操作的实现
class Model{ public $table; //操作的表; private $opt; //查询的参数; private $pri; //表的主键; private $lastSql; / ...
- Python 中的 TK编程
可爱的 Python:Python 中的 TK编程 http://www.ibm.com/developerworks/cn/linux/sdk/python/charm-12/ python che ...
- VCL源码分析方法论(以TButton.Caption属性的由来为例)
最近一段时间似乎流行源码分析:)我也来谈谈在过去一段时间里对VCL源码的分析方法方面的一点体会,本文将不探讨VCL类库的构架和设计模式方面的东本,只是以我们常见的控件属性/方法的实现过程作简单的说明, ...