您的位置:首页 > 数据库 > MySQL

数据库MySQL简单操作(二)

2017-09-13 20:42 387 查看
一、数据的增删改查
1.1 插入记录

1.1.1插入单条数据
INSERT INTO 表名 (字段名1,字段名2,……,字段名N)
VALUES (字段1值,字段2值,……,字段N值);
①这是把所有的字段都带上

INSERT INTO student (id,`name`,pwd,age,flush_time,record)
VALUES
(1,'李荣','2212o1uwi2ui2',23,'2017-09-13 20:03:45',
'大家伙,你们好,我是李荣,毕业于城市学院1014班,我的爱好是篮球,羽毛球,football,basketball、tennis and so on');




②如果是所有字段都会有,而且是对应数据表字段的顺序,那么可以不写(字段名1,字段名2,……,字段名N),如:



③如果并不是按照字段顺序并且也不是所有字段都要填入值,那么要列出你要填写的字段和其顺序:
INSERT INTO 表名 (字段名n,字段名m,……,字段名x)
VALUES (字段n值,字段m值,……,字段x值);



我们将刚才三种情况下插入的数据进行查询,结果如下:



由于我设置id为主键,并且自增长,而且flush_time也是如果没有写入值,则写入默认值2000-01-01 00:00:00。

1.1.2插入多条数据
当列出字段及其顺序时,后面的记录字段的顺序必须保持一致。








1.2 单表查询
1.2.1查询所有字段和所有记录
SELECT * FROM 表名;



1.2.2查询想要的字段
SELECT 字段1,字段2,字段3…… FROM 表名;




1.2.3条件查询
SELECT * FROM 表名 WHERE 条件表达式 [AND|OR 条件表达式1……];
如下面几种情况:

#带关系表达式(等于、不等于,大于、小于、大于等于、小于等于)查询
SELECT * FROM 表名 WHERE 字段值 = '某符合条件值' ;



#带IN关键字的查询
SELECT * FROM 表名 WHERE 字段值 [NOT] IN (字段值1,字段值2,……);



NOT IN:



#带BETWEEN的范围查询
SELECT 字段1,字段2,…… FROM 表名 WHERE 某字段 [NOT] BETWEEN 左值 AND 右值;







#带LIKE的查询
SELECT 字段1,字段2,…… FROM 表名WHERE 字段 LIKE '字符串';
其中字符串可以是这样的:(_:表示有且仅有一位,%:表示0位或多位)
a_:表示以字母a开头的两位字符串;



a%:表示以a开头的一位及以上字符串;



a_%:表示以a开头的两位及以上字符串,至少两位。以此类推。



_a:以a结尾的两位;




%a:以a结尾的一位或多位:



_a_:……,可自行脑补。

#空值查询
SELECT 字段1,字段2,…… FROM 表名 WHERE 字段 IS [NOT] NULL;







#带AND|OR的多条件查询:



#去重复查询
SELECT DISTINCT 字段 FROM 表名;

原本是这样的:






#分组查询 GROUP BY 一般与聚合函数一起使用。

常用:

SELECT 字段n,GROUP_CONCAT(字段m) FROM 表名 GROUP BY 字段n;










#LIMIT查询分页
SELECT 字段1,字段2,…… FROM 表名 LIMIT 起始位(从0开始),查询记录的条数。




1.2.4sql语句中的聚合函数
比如:COUNT(字段名'):根据某一字段来统计总数







还可以根据分组来分别计算总和:




#SUM('字段名')求和函数




根据年龄来分组,并且计算每一个组内人数和年龄之和(还有年龄总和和人数总和):






#AVG(字段)平均值函数






#MAX(字段)最大值
找出最大值,不过我这里还想知道年龄最大的人的姓名,sql语句如下:



#最小值MIN('字段名')




多表查询我们下一个博客再写。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql 数据库