关于《MySQL 必知必会》的学习1

        前天周四去图书馆借书,由于对于数据库不是特别关注,所以只象征性的借回一本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 ;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值