设为首页 加入收藏

TOP

MySQL入门(一)(五)
2015-07-24 11:08:04 来源: 作者: 【 】 浏览:3
Tags:MySQL 入门
始使用该手工插入的值。在使用 AUTO_INCREMENT 列时可使用 last_insert_id() 函数获得最后一个 AUTO_INCREMENT 值。

2.4 default

使用 DEFAULT 指定某一列的默认值,默认值不能使用函数,只能使用常量。

2.5 引擎类型

目前所创建的表都以 ENGINE=InnoDB 结尾,与其他 DBMS 一样,MySQL 有一个具体管理和处理数据的内部引擎。在你使用 CREATE TABLE 语句时,该引擎具体创建表,而在你使用 SELECT 语句或其他语句进行数据处理时,该引擎在内部处理你的请求。MySQL 具有多种引擎,它打包多个引擎,这些引擎隐藏在MySQL服务器内,全都能执行SQL语句,各个引擎的功能和特性不同。
InnoDB是一个可靠的事务处理引擎,它不支持全文本搜索;
MEMORY在功能上等同于MyISAM,但由于数据存储在内存中,速度很快(特别适合于临时表);
MyISAM是一个性能极高的引擎,它支持全文本搜索,但不支持事务处理。
引擎类型可以混用,但是外键不能跨引擎。

2.6 更新表

使用 ALTER TABLE 语句,一般情况下,当表中存储数据后就不应该被更新。使用 ALTER TABLE 语句要小心。
给表添加一个列:

mysql> ALTER TABLE mytable -> ADD myaddress char(50);

删除刚刚添加的列:

mysql> ALTER TABLE mytable -> DROP COLUMN myaddress;

ALTER TABLE 常见的用途是来定义外键,如上面的代码所示。

2.7 删除表和重命名表

mysql> DROP TABLE mytable2;
mysql> RENAME TABLE mytable2 TO mytable;
这条语句删除 mytable2 表,删除表没有确认,也不能撤销,执行这条语句将永久删除该表。

三、插入更新删除数据

插入更新删除数据的代码参考上面 populate.sql

3.1 数据插入

插入完整的行

mysql> INSERT INTO mytable VALUES ( 1001,'Evan','male','ShangHai','12345');

这种方式必须按次序给出所有列的值,如果不想给值的可以给出 NULL ,这种方式依赖于表中的列次序,不可靠。
可靠的方式是给出每列的名字(可以不按照表中列的次序):

mysql> INSERT INTO mytable(name, address, phone, gender) VALUES('Ive', 'LuoYang', '887631', 'female');

也可以一次插入多行,像这样:

mysql> INSERT INTO mytable(name, address, phone, gender) -> VALUES('Unn', 'LuoYang', '887631', 'female'), -> ('Angle', 'QingDao', '23667', 'female');

插入检索出的数据

新建一个表 mytable_new ,把 mytable 里的数据导入到 mytable_new 中:

mysql> INSERT INTO mytable_new( myid, name, gender) -> SELECT myid, name, gender -> FROM mytable;

3.2 数据更新

基本的 UPDATE 语句由三部分构成:要更新的表,列名和他们的新值,确定要更新行的过滤条件。
更新某一行:

mysql> UPDATE mytable_new -> SET name = 'Lucy' -> WHERE myid = 1002;

一定要加上 WHERE 的过滤条件,否则此条语句会更新表中的所有行的 name 字段。
更新多个列:

mysql> UPDATE mytable_new -> SET name = 'Ann', -> myphone = '1324576' -> WHERE myid = 1002;

在用 UPDATE 语句进行更新多行的操作时,如果发生错误,则整个 UPDATE 更新操作将被取消,发生错误前已经更新过的列将恢复原来的值。为了在发生错误时继续进行更新可使用 IGNORE 关键字:

mysql> UPDATE IGNORE mytable_new ...

为了删除某个列的值,可设置为 NULL(假设允许为NULL):

mysql> UPDATE IGNORE mytable_new -> SET name = NULL -> WHERE myid = 1003;

3.3 数据删除

mysql> DELETE FROM mytable_new -> WHERE myid = 1004;

记得加上 WHERE 过滤条件,否则会删除表中所有的行。
DELETE 语句删除表中的某一行或者所有行,但不会删除表本身。
如果想删除表中的所有行可以使用更快的语句:

TRUNCATE TABLE

该语句实际上是删除表,然后在新建一个表。

使用插入更新删除语句时要特别小心,因为 MySQL 没有 undo 操作。

首页 上一页 2 3 4 5 下一页 尾页 5/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇mysql只导出表结构或数据 下一篇c++使用mysql的api连接相关问题

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·用 Python 进行数据 (2025-12-25 15:49:09)
·如何学习Python数据 (2025-12-25 15:49:07)
·利用Python进行数据 (2025-12-25 15:49:04)
·Java 学习线路图是怎 (2025-12-25 15:19:15)
·关于 Java 学习,有 (2025-12-25 15:19:12)