sql10——创建和操纵表

创建表

创建表有两种方式,其一是使用具有交互式创建和管理表的工具,其二是理由语句操纵。用语句操纵表的时候必须给出表的名字、表中列的名字和定义。

CREATE TABLE customers(
	custid int not null  auto_increment,
	custname char(50) not null,
	custadddress char(50) null,
	custcity char(50) null,
	custemail char(50) null,
    PRIMARY KEY(custid)
);

注意:
1、如果你想在一个表不存在的时候创建它,应该在表名的后面家一个IF NOT EXISTS,这样不检查已有表的模式是否和打算创建的表的模式相匹配,知识检查表名是否存在,并且在表名不存在的时候创建它。
2、每个表的列或是null或是not null,不允许null值得列不接受该列没有值的行。含有not null的关键字会组织没有值的列。空串’ '在not null列里是允许的,因为空串也是一个有效的值而不是无值。
3、 PRIMARY KEY(…,…,…)主键可以是一列或多列
4、每个表只允许一个auto_increment,它必须被索引。它告诉MySQL本列每当增加一行的时候自动增量,每次实行一个insert语句操作的时候自动对该列增量,并把该列赋予下一个可用的值。如例子里每一行分配一个唯一的custid,从而可以用做主键值。

CREATE TABLE oederitems(
	ordernumber int not null,
	orderitem int not null, 
	quantity  int  DEFAULT 1,
	productid char(20) not null,
	itemprice DECIMAL(8,2) not null,
	customerid char(20) not null
  PRIMARY KEY(ordernumber)
);

注意default关键字指定MySQL在插入行时候没有给出值,就使用默认的值。

更新表

在理想状态下表中存储数据之后,就不太需要更新,所以表的设计过程需要大量时间考虑以便后期不对该表进行大的改动。

ALTER TABLE orderitems
ADD itemsize CHAR(20);

ALERT语句常见用途就是用来定义外键,关联多个表。

ALTER TABLE orderitems
ADD CONSTRAINT customerid FOREIGNKEY (custtid)
references customers(custid)

删除表

DROP TABLE orderitems;

重命名表

RENAME TABLE orderitems TO orderinformation;

引擎类型

和其他DBMS,MySQL有一个具体管理和处理数据的内部引擎,多数的时候引擎都隐藏在DBMS当中不需要过度关注。但是MySQL和其他不同在于,它具有多种引擎,这些引擎都隐藏在MySQL的服务器里,全都可以执行create table、select等命令。
不同的引擎有不同的功能和特性,为不同的任务选择正确的引擎可以活动更好的性能和灵活性。
常见引擎:
InnoDB是一个可靠的事务处理引擎,不支持全文本搜索。
MEMORY在功能上等于MyISAM,但是寓于数据存储在内存而不是磁盘,因此运行速度快,特别适合临时表。
MyISAM是一个性能极高的引擎,支持全文本搜索,但不支持事务处理。

猜你喜欢

转载自blog.csdn.net/matthewchen123/article/details/107833724