《MySQL必知必会》读书笔记(一)

来源:互联网 发布:2015中国经济数据公布 编辑:程序博客网 时间:2024/06/15 19:37

第一章 了解SQL

SQL是结构化查询语言(Structured Query Language)的缩写。
ORM(Object/Relationship Mapping):对象/关系映射

ORM MySQL 类 表 一个对象 行(表中的一条记录) 属性(字段) 列(表中的一个字段) 属性的类型 列的数据类型

第二章 MySQL简介

用mysql的简单命令行登录mysql:

mysql -u ben -p123456 -h myserver -P 9999

如果是本地的数据库的话,我习惯上写:

mysql -u root -p123456

注意两点
1. p和密码之间不能有空格
2. 最后不要加分号(;)

第三章 使用MySQL

在写sql时,把MySQL的关键字大写

第四章 检索数据

4.1 SELECT语句

为了使用SELECT检索表数据,必须至少给出两条信息
1. 想选择什么(SELECT prod_name)
2. 从什么地方选择(FROM products)

4.2 检索单个列

sql语句编写习惯:
1. 许多SQL开发人员喜欢对所有SQL关键字使用大写,而对所有列和表名使用小写,这样做使代码更易于阅读和调试。
2. 多数SQL开发人员认为将SQL语句分成多行更容易阅读和调试。

4.3 检索多个列

当心逗号

SELECT prod_id, prod_name, prod_priceFROM products;

4.4 检索所有列

第一个通配符:*(星号)
如果给定一个通配符(*),则返回表中所有列。

SELECT *FROM products;

4.5 检索不同的行

distinct只返回不同的值。如果使用DISTINCT关键字,它必须直接放在列名的前面。

SELECT DISTINCT vend_idFROM products;

注意
不能部分使用DISTINCT:DISTINCT关键字应用于所有列而不仅是前置它的列。如果给出SELECT DISTINCT vend_id, prod_price,除非指定的两个列都不同,否则所有行都将被检索出来。(如果n条记录中这两列的内容是一样的时候,把重复的去掉,只留下一条)

4.6 限制结果

先来看下面几条sql语句和结果
1. 不带LIMIT,使用ORDER BY字句,使得结果可以比较

SELECT prod_nameFROM productsORDER BY prod_name;
prod_name 行号 .5 ton anvil 0 1 ton anvil 1 2 ton anvil 2 Bird seed 3 Carrots 4 Detonator 5 Fuses 6 JetPack 1000 7 JetPack 2000 8 Oil can 9 Safe 10 Sling 11 TNT (1 stick) 12 TNT (5 sticks) 13

注意:行0->检索出来的第一行为行0而不是行1,。因此,LIMIT 1,1将检索出第二行而不是第一行。
2. LIMIT 5

SELECT prod_nameFROM productsORDER BY prod_nameLIMIT 5;
prod_name 行号 .5 ton anvil 0 1 ton anvil 1 2 ton anvil 2 Bird seed 3 Carrots 4

3. LIMIT 3, 4指示MySQL返回从行3开始的4行。第一个数为开始位置,第二个数为要检索的行数。

SELECT prod_nameFROM productsORDER BY prod_nameLIMIT 3,4;

推荐MySQL 5的LIMIT语法:

SELECT prod_nameFROM productsORDER BY prod_nameLIMIT 4 OFFSET 3;

LIMIT 4 OFFSET 3意为从行3开始取4行。

prod_name 行号 Bird seed 3 Carrots 4 Detonator 5 Fuses 6

4.7 使用完全限定的表名

SELECT product.prod_nameFROM crashcourse.products;

product.prod_name:完全限定的列名
crashcourse.products:完全限定的表名
给表起别名的时候会用到,ORM框架也经常用到。

0 0
原创粉丝点击