前天周四去图书馆借书,由于对于数据库不是特别关注,所以只象征性的借回一本Ben Forta的 《MySQL 必知必会》(MySQL Crash Course),32K,241页。由于有必要学学MySQL,所以它也就马上派上了用场。稍微看了前几章,感觉这书名翻译的真不干脆,照我说就直译《MySQL的速成班》(GOOGLE直译 =。=)。
但是麻雀虽小,五脏俱全,书中的东西还是挺多的,前2章讲的是SQL和MySQL的介绍,好吧,我从来没有对任一软件的介绍上心过,所以这两章也是基本浏览 |_O_O_| 。由于每一章的内容很简略,所以,我决定把每一章的心得和实际应用记下来。
书中建议: 1、SQL语句不区分大小写,因此SELECT与select 是相同的。但许多SQL开发人员喜欢对所有SQL关键字使用大写,而对于所有列和表名使用小 写,这样做使代码更易于阅读和调试。 2、在处理SQL语句时,其中所有的空格都被忽略,SQL语句可以在一行上给出,也可以分成许多行,多数SQL开发人员认为将SQL语句分成多行更容易阅读和调试。
第三章:使用MySQL
使用你的用户名与密码连接MySQL,一般默认用户名为“ROOT”,密码如果没有配置则为空。
选择数据库使用“USE”关键字,如:
USE test;
显示信息用 “SHOW”关键字,如:-- 显示数据库列表 SHOW DATABASES; -- 显示数据库中的表 SHOW TABLES; -- 显示表中信息 SHOW COLUMNS FROM table; -- 等价于 DESC table; -- 以下语句平时本人较少用,记录在此以备不时之需 -- 显示服务器状态 SHOW STATUS; -- 显示特定数据库或表的创建语句 SHOW CREATE DATABASE db; SHOW CREATE TABLE table; -- 显示授权用户 SHOW GRANTS; -- 显示服务器错误或警告消息 SHOW ERRORS; SHOW WARNINGS;
第四章:检索数据
先建一个表,建表语句如下:
CREATE TABLE 'test' ( 'user_id' int NOT NULL AUTO_INCREMENT, 'user_name" varchar(20) NOT NULL, PRIMARY KEY ('user_id') )ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
插入数据,我的插入语句是:INSERT INTO test VALUES (NULL,'a'), (NULL,'a'), (NULL,'b'), (NULL,'b'), (NULL,'c'), (NULL,'c');
用“SELECT”关键字对表1数据进行检索,输出如下:
+------------+-------------------+ 表1
| user_id | user_name |
------------------------------------
| 1 | a |
| 2 | a |
| 3 | b |
| 4 | b |
| 5 | c |
| 6 | c |
+---------------------------------+
关键字"DISTINCT":返回查询列中不同值的记录。
SELECT DISTINCT user_name FROM test;
关键字"LIMIT":返回不多于限制的记录。
-- 限制返回记录数为2 SELECT * FROM test LIMIT 2; -- 从第四条记录处开始返回2条记录 SELECT * FROM test LIMIT 3,2; -- 等价于 SELECT * FROM test LIMIT 2 OFFSET 3;
第五章:排序检索数据
在MySQL中用检索出来的记录是默认是以记录插入先后升序排列。
我们可以使用"ORDER BY"子句来对输出结果进行排序。
SELECT user_name FROM test ORDER BY user_id;
-- 对多个列进行排序 SELECT user_name FROM test ORDER BY user_id,user_name;
关键字 "DESC":让返回结果以降序结果排列。SELECT * FROM test ORDER BY user_id DESC;
使用上面的查询语句查询出来的结果是按user_id降序排列,那user_name呢?是升序还是降序?请试一下下面的查询语句,试着分析一下会是什么返回结果:SELECT * FROM test ORDER BY user_name DESC LIMIT 2 OFFSET 1 ;
关于《MySQL 必知必会》的学习1
最新推荐文章于 2024-09-12 12:42:46 发布