mysql小知识笔记

来源:互联网 发布:用友软件代理商名单 编辑:程序博客网 时间:2024/06/05 07:53

记忆的小船说翻就翻,特别是代码的巨轮,说沉就沉。所以好记性不如烂笔头,前段时间感觉对mysql数据库的基础知识不扎实,所以查找各个资料做了个小总结笔记,方便下次查阅,有错误的地方希望大家多给给意见。

概要:
1.关于插入语句的三种方式
2.更新的单表和多表操作
3.删除的单表和多表操作
4查询,以及查询常见的几个关键字用法(WHERE,GROUP,HAVING,ORDER BY,LIMIT)
5.子查询
6.连接

1插入语句:
在mysql中插入数据的语句有三种方式:
(1)INSERT [INTO] tab_name [(col_name,….)] {VALUES | VALUE} ({expr | DEFAULT},…),(…),…
此方法可一次性插入多条数据
(2)INSERT [INTO] tab_name SET col_name={expr | DEFAULT},…
与第一种方法的区别在于此方法可以使用子查询,一次只能插入一条数据
(3)INSERT [INTO] tab_name [col_name,…..] SELECT…
此方法可以将查询的结果插入在指定的数据表中。

2 更新记录
(1)单表记录
UPDATE [Low_PRIORITY] [IGNORE] table_reference
SET col_name={expr | DEFAULT}
[,col_name2={expr | DEFAULT}]….
[WHERE where_condition]

如:1.UPDATE users set age=age+5;
2. UPDATE users set age=age+10 where id%2=0;
(2)多表更新记录
此处要用到连接,语法格式为:
UPDATE tbl1 AS A INNER JOIN tbl2 AS B
ON A.goods.cates=B.cates_name
SET A.goods_cate=cate_id;

3.删除记录
(1)单表删除
语法:
DELETE FROM tbl_name [WHERE where_condition]

如:DELETE FROM users WHERE id=6;
(2)多表删除

4.查询语句SELECT
语法:
SELECT select_expr [,select_expr…..]
[
FROM table_references
[WHERE where_condition ]
[GROUP BY {col_name | Position } [ASC | DESC]]
[HAVING where_condition]
[ORDER BY {col_name | expr | Position | } [ASC | DESC] ,…..]
[LIMIT { [ offset,} row_count | row_count OFFSET offset } ]
]
select_exper: 查询表达式
每一个表达式表示想要的一列,必须有至少一个。
每个列之间以英文逗号隔开。
星号( * )表示所有列,
查询表达式可以使用AS关键字为其赋予别名。

WHRER:
条件过滤,表达式中可以使用mysql支持的函数和运算符(数学,字符);

GROUP BY:
查询结果分组
语法:[GROUP BY {col_name | position} [SAC | DESC ],….]

HAVING:
分组条件,条件必须要满足两个要求中的一个,第一:此条件要出现在查询语句中,或者在聚会函数内。

ORDER BY:
对查询结果进行排序:
[ORDER BY { col_name | expr | position } [ ASC | DESC ],…. ]

LIMIT:
限制查询结果返回的数量
语法:
[ LIMIT { [offset, ] row_count | row_count OFFSET offset}]
举个栗子:
SELECT * FROM users LIMIT 2;
查询从第一条数据开始的两条数据
SELECT * FROM users LIMIT 2,3;
查询从第三条数据开始的3条数据

5.子查询(SubQuery)
是指出现在其他SQL语句中的select语句
如:SELECT * FROM t1 WHERE col1=( SELECT col2 FROM t2);

注意的地方:
1,子查询指嵌套在查询内部,且必须始终出现在园括号内
2.子查询可以包含多个关键字条件,如 DISTINCT GROUP BY ORDER BY LIMIT 函数等
3 子查询外层查询可以是select, update, delect, insert into
4.返回值可以是标量,一行,一列,或子查询

引起子查询有三种方式:
(1)使用比较运算符的子查询
=、> 、<、>= 、<= 、<> 、!= 、<=>
语法结构:
operand comparision_operator subquery
可以用 ANY SOME ALL 来修饰比较运算符
(2)由 [NOT] IN 引发的子查询
语法结构:
operand comparision_operator [NOT ] IN (subquery) =ANY
(3)由 [NOT] EXISTS 引发的子查询
此子查询较少用,如果查询返回任意行则将返回true,不然返回false

6 连接
MYSQL在select语句,多表更新,多表删除中均支持JOIN操作
注意的地方:
使用ON关键字来设定连接条件,也可以使用WHERE来代替
通常使用ON关键字来设定连接条件,使用WHERE关键字来进行结果集记录的过滤。
连接可大致分为 内连接,左外连接,右外连接
内连接: INNER JOIN
显示符合条件的数据
左外连接:
显示左表的全部记录及右表符合连接条件的记录
右外连接:可借鉴左外连接参考

0 0
原创粉丝点击