内容简介:最近刚刚开始学习所有的 SQL 语句都以下列关键字之一开始:有一点需要特别注意:
最近刚刚开始学习 Mysql ,然而学习 MySql 必经的一个过程就是 SQL语句 ,只有按照文档从头开始学习 SQL 语句。学习的过程是痛苦的,但是学完的成果是甘甜的。
SQL 语法
所有的 SQL 语句都以下列关键字之一开始: SELECT、INSERT、UPDATE、DELETE、ALTER、DROP、CREATE、USE、SHOW ,并以一个分号( ; )结束。
有一点需要特别注意: SQL 不区分大小写,也就是说 SELECT 和 select 在 SQL 语句中有相同的含义。然而, MySQL 在表的名称方面并不遵循此规定。所以,如果你在使用 MySQL 的话,你需要在程序中严格按照它们在数据库中名字进行使用。
SQL语句 中使用 * 代表通配符。
SELECT
SELECT 关键字用来从数据中查询数据。
语法
SELECT 查询字段 FROM 表名; // 在 loglists 表中查询 id,name 两个字段 SELECT id,name FROM `loglists`;
SELECT DISTINCT
SELECT DISTINCT 语句用于返回唯一不同的值。
语法
SELECT DISTINCT 查询字段 FROM 表名; // 查询 loglists 表中 content,name 全部不相同数据 SELECT DISTINCT content,name FROM `loglists`;
若 SELECT DISTINCT 查询多个字段的话,会根据当前的这些字段中的值全部不相同的数据。在使用时需要注意的是,不要把唯一主键作为查询条件。
WHERE
WHERE 子句用于提取那些满足指定标准的记录。
语法
SELECT 查询字段 FROM 表名 WHERE 查询条件; // 查询 loglists 表中 content为111 的数据,查询字段包括 content,name,id SELECT content,name,id FROM loglists WHERE content="111";
AND
第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
语法
SELECT 查询字段 FROM 表名 WHERE 条件 AND 条件; // 查询 loglists 表中 content="111" 并且 id<=150 的数据,查询字段包括 id,content,name SELECT id,content,name FROM loglists WHERE content="111" AND id<=150;
如果有多个条件可以连续 AND 查询。
OR
第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。
语法
SELECT 查询字段 FROM 表名 WHERE 条件 OR 条件; // 查询 loglists 表中 content="111" 或 id<=150 的数据,查询字段包括 id,content,name SELECT id,content,name FROM loglists WHERE content="111" OR id<=150;
如果有多个条件可以连续 OR 查询。
AND 与 OR 同时使用。
// 查询 loglists 表中 content="111" 并且 id<=150 或者 name="111" 的数据,查询数据包括 id,content,name SELECT id,content,name FROM loglists WHERE content="111" AND id<=150 OR name="111";
ORDER BY
ORDER BY 关键字用于对结果集进行排序。
- 先将查询值这一列排序,同为
CN的排前面,同属USA的排后面。 - 然后在同属
CN的这些多行数据中,再根据alexa值的大小排列。 -
ORDER BY排列时,不写明ASC DESC的时候,默认是ASC。
ASC 降序
DESC 升序
语法
SELECT 字段 FROM 表名 ORDER BY 字段 ASC|DESC; // 查询 loglists 包括字段 id,content,name // 先将 name 降序排列,把查询的数据再按照content查询分区块,按升序排序 SELECT id,content,name FROM loglists ORDER BY name ASC,content DESC;
INSERT INTO
INSERT INTO 语句用于向表中插入新记录。
语法
INSERT INTO 表名 (添加字段) VALUES (值);
// 向 loglists 中添加一条数据 字段为 name,content,text 值为 "aaron","my's aaron","haha"
INSERT INTO loglists (name,content,text) VALUES ("aaron","my's aaron","haha");
下面这种也是插入一条数据带有条件查询
// 向 loglists 中插入一条数据 // 插入的数据为 loglists 表中 content = 123 的结构 INSERT INTO loglists SELECT * FROM loglists WHERE content = "123";
上面这种写写法需要注意:
主键
UPDATE
UPDATE 语句用于更新表中的记录。
语法
UPDATE 表明 SET 更新数据(name="liergou") WHERE 条件; // 更新loglists表 // name="liergou",text="eroguzi",content="ok" // 根据 id=1 或 text="999" // 查找数据并更新 UPDATE loglists SET name="liergou",text="eroguzi",content="ok" WHERE id=1 OR text="999";
DELETE
DELETE 语句用于删除表中的记录。
语法
DELETE FROM 表名 WHERE 查询条件; // 删除 loglists 中 id=1 或 text="angie" 的数据 DELETE FROM loglists WHERE id=1 OR text="angie";
删除所有数据:
DELETE FROM table_name; DELETE * FROM table_name;
++友情提示:在删除记录时要格外小心!因为不能重来!++
LIMIT
截取查询数据。
语法
SELECT 字段 FROM 表名 ORDER BY 查询字段 ASC LIMIT 截取位数; // 在 loglists 表中 // 按id降序排列,截取1-3位 SELECT * FROM loglists ORDER BY id ASC LIMIT 3;
如果 LIMIT 后面只有一个数则默认为 1-n 之间。
在看 SQL 语句的时候看到有个一 TOP 语句,但是在 Mysql 使用的时候,报错。
Mysql 中实现类似 TOP 语句:
SELECT * FROM loglists ORDER BY id ASC LIMIT 1,3;
LIKE
LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。
语法
SELECT 字段 FROM 表名 WHERE 搜索字段 LIKE 条件; // 查询 loglists 表中 text 字段 // text含有a字母 // 包含所有字段 SELECT * FROM loglists WHERE name LIKE "%a%";
模糊搜索规则:
a a a a a a
IN
IN 操作符允许在 WHERE 子句中规定多个值。
语法
SELECT 字段 FROM 表名 WHERE 查询字段 in 查询条件;
// 在 loglists 查询 name 字段为 a 或 b的数据
SELECT * FROM loglists WHERE name in ("a","b");
若不使用 IN 操作符也是可以实现的:
SELECT * FROM loglists WHERE name="a" OR name="b";
这样的写法与上面是等价的。
BETWEEN
BETWEEN 操作符用于选取介于两个值之间的数据范围内的值。
语法
SELECT 字段 from 表明 WHERE 条件字段 BETWEEN 条件1 AND 条件2; // 在 loglists 表中查询 id 为 9-11之间的数据 SELECT * from loglists WHERE id BETWEEN 9 AND 11;
JOIN 与 INNER JOIN
join 用于把来自两个或多个表的行结合起来。 INNER JOIN1 产生的结果集中,是表1和表二2的交集。
语法
SELECT 字段(loglists.id) FROM 表1 INNER JOIN 表2 ON 条件;
// 查询 loglists 与 children 表
// loglists.id 与 children.cid 相同的数据
// 查询字段为
// loglists.id,
// loglists.name,
// children.age,
// loglists.content,
// loglists.text
SELECT
l.id,
l.name,
c.age,
l.content,
l.text
FROM
loglists AS l
INNER JOIN
children AS c
ON
l.id = c.cid;
LEFT JOIN
LEFT JOIN 关键字从左表( table1 )返回所有的行,即使右表( table2 )中没有匹配。如果右表中没有匹配,则结果为 NULL 。
语法
SELECT 字段 FROM 表1 LEFT JOIN 表二 ON 条件;
// 查询 loglists 与 children 表
// loglists.id 与 children.cid 相同的数据
// 查询字段为
// loglists.id,
// loglists.name,
// children.age,
// loglists.content,
// loglists.text
SELECT
l.id,
l.`name`,
c.age,
l.text,
l.content
FROM
loglists AS l
LEFT JOIN
children AS c
ON
l.id = c.age;
查询数据如下:
| id | name | age | text | content |
|---|---|---|---|---|
| 12 | aaron | 12 | 简介 | 什么都没有 |
| 13 | angie | null | 简介 | 有点东西 |
RIGHT JOIN
RIGHT JOIN 关键字从右表( table2 )返回所有的行,即使左表( table1 )中没有匹配。如果左表中没有匹配,则结果为 NULL 。
语法
SELECT 字段 FROM 表1 RIGHT JOIN 表二 ON 条件;
// 查询 loglists 与 children 表
// loglists.id 与 children.cid 相同的数据
// 查询字段为
// loglists.id,
// loglists.name,
// children.age,
// loglists.content,
// loglists.text
SELECT
l.id,
c.age,
l.`name`,
l.text,
l.content
FROM
loglists AS l
RIGHT JOIN
children AS c
ON
l.id=c.age;
查询数据如下:
| id | name | age | text | content |
|---|---|---|---|---|
| 12 | aaron | 12 | 简介 | 什么都没有 |
| null | null | 55 | null | null |
| null | null | 77 | null | null |
总结
简单的做了一些笔记,虽然很基础个人觉得很实用,如果哪里有错误,请在下方留言指正,我会尽快做出修改。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- TiDB入门(四):从入门到“跑路”
- MyBatis从入门到精通(一):MyBatis入门
- MyBatis从入门到精通(一):MyBatis入门
- Docker入门(一)用hello world入门docker
- 赵童鞋带你入门PHP(六) ThinkPHP框架入门
- 初学者入门 Golang 的学习型项目,go入门项目
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Pro JavaScript Techniques
John Resig / Apress / 2006-12-13 / USD 44.99
Pro JavaScript Techniques is the ultimate JavaScript book for the modern web developer. It provides everything you need to know about modern JavaScript, and shows what JavaScript can do for your web s......一起来看看 《Pro JavaScript Techniques》 这本书的介绍吧!