创建和操作表
创建表
使用交互式创建和管理表工具 直接使用MySQL语句创建 表创建基础
CREAT TABEL 创建表
新表名字在关键词 CREATE TABLE 之后给出 表列的名字何定义用逗号隔开 eg:
CREATE TABLE IF NOT EXISTS vocstable(
rowid INT(11) NOT AUTO_INCREMENT
stationCode INT(11) NOT NULL,
city VARCHAR(16) CHARACTER SET utf8L,
stationName VARCHAR(20) CHARACTER SET utf8,
instrumentCode INT(11) NOT NULL DEFAULT 1,
dateTime DATETIME NOT NULL,
lon FLOAT(10),
lat FLOAT(10),
PRIMARY KEY(stationCode,dateTime)
) ENGINE=InnoDB;
创建表时注意:每列的定义以列名开始,他在表中必须具有唯一性,后跟列的数据类型,表的主键在创建表时使用 PRIMARY KEY 指定 仅仅想在一个表不存在 时创建,则使用 CREAT TABLE IF NOT EXISTS 使用NULL
NULL 定义列中可以存在缺测值 NOT NULL 定义列中不可以存在缺测值 主键
主键必须是唯一的,即表中的每个行必须具有唯一的主键值,主键可以是多个列的组合 AUTO_INCREMENT
DEFAULT
定义默认值,当该值缺测时,采用DEFAULT指定的数值作为默认值 引擎类型
如果不设定默认引擎,多数使用的时MyISAM InnoDB是一个可靠的事务处理引擎,不支持全文搜索 MEMORY在功能上等同于 MyISAM,但是由于数据储存在内存中,速度快 MyISAM性能极高,支持全文搜索,但是不支持事务处理
更新表
ALTER TABLE
在ALTER TABLE 之后要给出更改表名 所作更改的列表 ALTER TABLE vendors ADD vend_phone CHAR(20)
给 vendors增加一个名为vend_phone的列,必须明确其数据类型 ALTER TABLE vendors DROP COLUMN vend_phone
ALTER TABLE 一种常见的用途是定义外键
ALTER TABLE orderitems ADD CONSTRAINT fk_ordertiems_others FOREIGN KEY(order_num) REFERENCES orders (order_num); 使用表操作时要时刻谨记,MySQL数据库操作不可以撤销,在进行试验前需要先将表备份 删除表
重命名表
RENAME TABLE customers2 TO coutomers 可以对多个表进行重命名
RENAME TABLE customers2 TO coutomers, order2 TO order
插入数据
插入数据
INSERT:
插入完整的行 插入行的一部分 插入多行 插入某些查询的结果 插入完整的行
INSERT INTO customer VALUES (NULL, ‘PeP E. LAPew’, ‘100 Main Stree’, ‘Los Angels’,‘CA’) 插入语句一般不产生输出 安全INSERT方式 INSERT INTO customer ({columns names}) VALUES ({values}) 省略列
该列定义为允许NULL值 在表定义中给出默认值,这表示如果不给出值,将使用默认值 提升整体性能
可以通过在INSERT INTO中间添加LOW_PRIORITY,指示MySQL降低INSERT的优先级 INSERT LOW_PRIORITY INTO 插入行
INSERT INTO {tablename} (coulmns names) VALUES (valuseLs1), (valuesLs2) 插入检索出的数据
采用 INSERT与SELECT 结合的方式 INSERT INTO customers({columns name}) SELECT {columns name} FROM custnew 当然 SELECT的所有子句均可以结合进行操作
跟新或删除数据
更新数据 可以使用 UPDATE语句
UPDATE语句要包括:
要更新的表 列命和他们的新值 确定更新行的过滤条件 UPDATE customers SET cust_email = ‘elmer@fudd.com’ WHERE cust_id=10005
其中SET cust_email = ‘elmaer@fudd.com’ 指定更新的值 更新多个列,只需要单个SET命令
UPDATE customers SET cust_name=‘The Fubbs’, cust_email=‘elmaer@fubb.com’ WHERE cust_id=10005; IGNORE关键词
UPDATE IGNORE customers 在插入多行是出现一个错误时,忽略,继续进行后续的操作 删除数据
从一个表中删除数据,使用DELETE
DELETE 不可以随便使用
DELETE FROM customers WHERE cust_id=10006 更快的删除
TRUNCATE TABLE 删除原有的表并重新创建一个表 更新和删除的原则
结合WHERE,如何不结合,则表中所有的数据都将被删除或者更新 保证每个表都有主键,尽可能像WHERE子句那样使用它 在对UPDATE或者DELETE语句使用WHERE字句前,应该先用SELECT进行测试,保证过滤的为正确信息