MySQL学习之路_增删改查

来源:互联网 发布:java cs 编辑:程序博客网 时间:2024/06/05 07:20

在前面两篇博客已经说过数据库表相关的MySQL语句,点击MySQL学习之路-创建、使用库相关 和 MySQL学习之路_数据的组织方式-表传送过去查看。

插入

在表结构创建好之后,下一步就是往里面装数据了,往表里面装数据使用INSERT INTO语句完成。

INSERT INTO 表名 (字段) VALUES (值);

示例代码:

-- 创建一个数据库CREATE DATABASE db_tb1;-- 使用刚刚创建的数据库USE DATABASE example;-- 在当前数据库下创建表,确定表的字段-- 把id字段设置为主键和自动增加CREATE TABLE example  (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,  name VARCHAR(10) NOT NULL,  submission_date DATE NOT NULL);-- 往表插入数据INSERT INTO example (name, submission_date) VALUES ("张三", NOW());INSERT INTO example (name, submission_date) VALUES ('李四', "2016-11-10 9:55:56");

上述示例代码都有注释,很容易懂,就不多解释。
字段id设置为AUTO_INCREMENT的意思是,每插入一个数据,它的值就自动往上递增。
在插入数据里,插入列”’submission_date”’的是NOW()''',这是一个函数,代表当前时间,后一条插入语句的是一个代表日期的字符串,插入后,会被解析为'''DATE'''类型。 值得注意的是插入的值必须和写出的字段属性顺序一致,否则会发生错误,譬如INSERT INTO example (name, submission_date) VALUES (“张三”, NOW());,插入时不能这样
INSERT INTO example (name, submission_date) VALUES (NOW(), ‘张三’),这样是错的。
插入数据时,如果只插入了部分列数据,有部分没有指定,没有指定的列又不是
AUTO_INCREMENT ,那么它的值就是NULL“`。

查询行

在完成数据的插入后,还要查看数据是否已经插入,可以使用SELECT语句。

SELECT 列名 FROM 表名;

示例代码

SELECT name, submission_date FORM example;

上述示例代码查询表example两个字段namesubmission_date的数据,如果要查询全部的数据,那么把列名改为‘*’这个通配符,即可查询全部数据。

SELECT * FROM example;

也可以查询多张表的数据,多张表使用逗号隔开可以了。

修改数据

修改数据使用UPDATE语句。

UPDATE 表名 SET 修改列的值 WHERE 列的值;

SET语句指定要修改的列的值,WHERE限定要修改的列。

UPDATE example SET name='张思' WHERE id=1;

上面语句意思就是把表example字段id=1的行的name字段值设置为张思。如果没有WHERE字句,那么语句SET 后面列的所有的值都会被改为设置的值。
需要走注意的是,UPDATE语句只能更改数据,要更改列属性,譬如列名,列的数据类型等,请使用ALTER TABLE语句

删除行(记录)

在表中删除数据时,使用DELETE语句。

DELETE FROM 表名 WHERE 指定列值

示例代码:

DELETE FROM example WHERE name='张思';

删除examplename 字段为张思的记录,同样的,如果没有指定WHERE 子句,那么会删除表中所有记录。需要注意的是,DELETE语句只能删除表记录,不能删除表,删除表请用ALTER TABLE DROP 表名 语句

在删除一个表中所有记录时,除了可以使用不带WHERE 子句的DELETE语句,还可以使用TRUNCATE 语句。

TRUNCATE TABLE 表名;

上述语句删除指定表的所有记录。
TRUNCATEDELETE 的区别就是DELETE 语句在删除记录时,是一条一条的删除,而TRUNCATE 就比较粗暴,直接把整个表摧毁,再重建表结构来达到目的。这样做有什么好处呢?我觉得好处是显而易见的——关乎性能。如果一个数据库表内有上千万条记录,DELETETRUNCATE中,很明显选择后者,前者要逐条逐条去删除,而后者,直接摧毁表,在重建表结构,OK!完了,就这么简单。所以,删除整个表的时候,一般选择TRUNCATE

由于我自己也刚学,所以这里就只做个简单的介绍,但是,也难免有疏漏或者不严谨的地方,如有错误,敬请指正。

1 0