-
GROUP BY
查询结果分组
[GROUP BY {col_name|position} [ASC|DESC],...]
SELECT sex FROM users GROUP BY sex;
查看全部 -
WHERE 条件表达式
对记录进行过滤,如果没有指定where子句,则显示所有记录。
在where表达式中,可以使用MySQL支持的函数或运算符。
查看全部 -
显示当前服务器版本:SELECT VERSION( ) ;
显示当前日期时间:SELECT NOW( ) ;
显示当前用户:SELECT USER( ) ;
MySQL语句的规范:
关键字与函数名称全部大写
数据库名称、表名称、字段名称全部小写
SQL语句必须以分号结尾
查看全部 -
DELETE FROM users WHERE id = 6;
SELECT * FROM users;
查看全部 -
ppt截图
查看全部 -
//UPDATE users set age = age +5;
//UPDATE users SET age = age - id, sex=0;
//UPDATE users SET age = age +10 WHERE id % 2 = 0;
SELECT * FROM users;
查看全部 -
storaged process和 storaged function区别
查看全部 -
增insert
更update
删delete
查select
数据的记录操作:
增:INSERT
更:UPDATE
删:DELETE
查:SELECT
1.插入记录:
INSERT [INTO] tb1_name [(col_name,...)] {VALUES | VALUE} ({expr | DEFUALT},...),(...),...
注意:如果col_name被省略,意味着所有的列都要依次被赋值,不可以省略;
对于默认编号(AUTO_INCREMENT)的字段,使用NULL/DEFUALT进行插入;
而且插入的记录是识别算术,函数和字符表达式的
(2)INSERT [INTO] tb1_name SET col1_name={expr | DEFAULT}, ...
如:INSERT users2 SET username='***',password='****';
说明与第一种不同之处在于:此方法可以使用子查询(SubQuery)
(3)INSERT [INTO] tb1_name [(col_name, ...)] SELECT ...
此方法可以讲查询结果插入到指定数据表中
2.单表更新(当插入时,记录有错误或更改字段值):
UPDATE [LOW_PRIORITY] [IGNORE] table-reference SET col_name={expr1| DEFUALT}, [col_name2={expr | DEFUALT}]...[WHERE where
_condition]如果省略where条件的话就是所有条件都将更新:如UPDATE users SET age=age+id,sex=0; 然后select * FROM users查看结果。
或者:UPDATE users SET age=age+10,WHERE id % 2 = 0;
可看见:1.更新多条记录; 2. 也可用来修改命令。
3.删除记录:
单表删除:
DELETE FROM tb1_name [WHERE where_condition]
如:删除第六条记录:DELETE FROM users WHERE id = 6; 而后再添加记录:INSERT users VALUE(NULL,'111','222',33,NULL); 那么该条记录不会填充到第六条,而是以顺序填到最后一个
条件表达式
对记录进行过滤,如果没有指定WHERE子句,则显示所有记录。
在WHERE表达式中,可以使用MySQL支持的函数或运算符。4.查找记录
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后面可以省略:如SELECT VERSION();/SELECT NOW();/SELECT 3+5;/SELECT id,username FROM users;/SELECT username,id FROM users;
所以查询顺序影响结果的输出顺序!!!
*表示所有的列
可以在查询的列前面加上表名+. 如:SELECT users.id,user2.password FROM users;
当列名称复杂时可以用别名:如 SELECT users.id AS usersid, users.username AS uname FROM users;(注意一下AS)
所以查询的别名也影响输出结果的列名!!!
查询结果分组:[GROUP BY {col_name | position} [ASC | DESC], ... ]
ASC 升序;DESC 降序;
如:SELECT sex FROM users GROUP BY sex/"位置"; 查看性别的分组结果。(一般指定名称就行)
在GROUP BY 进行分组的时候,还可以进行设置分组条件:[HAVING where_condition]
如:SELECT sex FROM users GROUP BY 1 HAVING age > 35; 这个语句错误,原因是sex里面没有age,所以更正为:SELECT sex,age FROM users GROUP BY 1 HAVING age > 35;或者采用聚合函数(max,min,sum等) 如 SELECT sex FROM users GROUP BY 1 HAVING count(id)>=2;
还可以对查询分组的结果进行排序:
[ORDER BY {col_name | expr | position} [ASC | DESC], ...]
如:SELECT * FROM users ORDER BY id age DESC; 默认是升序。
除了返回记录的排序还可以对记录进行限制查询结果的数量:
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
如:SELECT * FROM users LIMIT 2; 返回两条记录;
SELECT * FROM users LIMIT 2,2;返回的是偏移值(索引号)为2的记录开始的两条记录(不管升序还是降序,第一条记录的索引号都是0);
插入记录:
INSERT [INTO] tbl_name SET col_name={expr | DEFAULT),...
说明:与第一种方式的区别在于,此方法可以使用子查询(SubQuery)(他可以将查找的数据插入到指定数据表)如:INSERT test(username) SELECT username FROM users WHERE age >= 30; 查找username表里的age>=30的username,插入到test表中的username列————综合一点的
查看全部 -
SET NAMES gbk;
NAMES 命令???
查看全部 -
传入变量怎么写
查看全部 -
正确的做法
查看全部 -
居然还需要修改delimeter 两条斜线
查看全部 -
注意returns和return的区别
查看全部 -
聚合函数一定只有一个返回值
查看全部 -
Select * from test where first_name is NULL
查看全部
举报