mysql的基础用法,增删查改。

数据库知识回顾
1,mysql的安装
2,通过工具:建库、建表、操作表(增删改查)
3,SQL语句(重点)
(1)插入语句

语法:insert into 表(列1,列2,...)values(值1,列2,...)
-- 标准的插入语句
INSERT INTO user_info(id,birthday,address,NAME)VALUES(3,'1992-1-1',6,'沙僧')
-- 使用自增列的插入语句
INSERT INTO user_info(NAME,birthday,address)VALUES('bajie','1998-3-5',7)
-- 省略列名的插入语句
INSERT INTO user_info VALUES(4,'白晶晶','1993-2-1',10)
-- 使用系统当前时间来插入日期
INSERT INTO user_info VALUES(5,'铁扇公主',NOW(),11)
-- 插入多行的插入语句
INSERT INTO user_info(NAME,birthday,address) VALUES('王五',NOW(),12),('哪吒',NOW(),68),('唐僧',NOW(),111)
-- 备份数据的插入语句
INSERT INTO user_bak(NAME,birthday) SELECT NAME,birthday FROM user_info

(2)修改语句

语法:update 表名 set 列1=值1,列2=值2 where 条件
UPDATE user_info SET NAME='齐天大圣',birthday=NOW(),address=6 WHERE id=1

(3)删除语句

语法:delete from 表名 where 条件
DELETE FROM user_info WHERE id IN(1,2,6)

4,SQL查询(重点掌握)
(1)基础查询
语法:select * from 表 where 条件 order by 排序列 limit 限制行数
– 查询表中所有数据

SELECT * FROM user_info;
-- 重命名查询 : as
SELECT NAME AS '姓名',birthday AS '生日',address AS '城市' FROM user_info;
-- 排序查询:order by
SELECT * FROM user_info ORDER BY birthday,address DESC
-- 限制行查询:limit m,n (m表示开始行,n表示查询的行数)
SELECT * FROM student_score ORDER BY score DESC LIMIT 3
查询的时候快一点(百度网页的例子)
-- 分页查询(page表示当前页,size表示每页显示的行数)
SELECT * FROM user_info LIMIT 5;
SELECT * FROM user_info LIMIT 5,9;
-- 分页SQL语句
SELECT * FROM user_info LIMIT size*(page-1),size
-- page=2,size=3
SELECT * FROM user_info LIMIT 3,3
3.
-- 模糊查询(like配合通配符:% 表示任意个字符  _ 表示任意一个字符)
-- 查询姓张的人
SELECT * FROM user_info WHERE NAME LIKE '张%';
-- 查询名字中含三的人
SELECT * FROM user_info WHERE NAME LIKE '%三%';
-- 查询姓张并且名是一个字的人
SELECT * FROM user_info WHERE NAME LIKE '张_';

(2)聚合函数查询

统计个数:count(*)
-- 用户表的总人数
SELECT COUNT(*) FROM user_bak;
SELECT COUNT(NAME) FROM user_bak; -- 不统计name为null的行
SELECT COUNT(NAME) FROM user_bak; -- 不统计name为null的行
-- 去重后统计:统计用户表中的人来自于多少个不同的城市
SELECT COUNT(DISTINCT address) FROM user_info;
求和统计:sum(数值列)
-- 求总分数
SELECT SUM(score) FROM student_score;
均值统计:avg(数值列)
-- 求平均分
SELECT AVG(score) FROM student_score;
求最大值:max(数值列)
SELECT MAX(score) FROM student_score;
求最小值:min(数值列
SELECT MIN(score) FROM student_score;
-- 求总分数
SELECT SUM(score) FROM student_score;
-- 求平均分
SELECT AVG(score) FROM student_score;
-- 求最值
SELECT MAX(score) FROM student_score;
SELECT MIN(score) FROM student_score;

(3)分组查询

select 聚合函数 from 表 group by 列名
-- 求每个城市的人数
SELECT address,COUNT(*) FROM user_info GROUP BY address;
-- 求每个城市的最大年龄
SELECT address,MAX(age) FROM user_info GROUP BY address;
-- 求男生和女生的人数
SELECT COUNT(*) FROM user_info WHERE sex='男'
SELECT COUNT(*) FROM user_info WHERE sex='女'
SELECT sex,COUNT(*) FROM user_info GROUP BY sex

(4)表连接查询
前提:表与表之间存在“主外键关系”

a,内连接
	select * from A inner join B on A.主键=B.外键
	select * from A,B where A.主键=B.外键
	-------------------------------------------------------------------------------------------
	-- 高效
	SELECT * FROM user_info INNER JOIN city_info ON user_info.address=city_info.cid;
	SELECT u.name,c.name FROM user_info u INNER JOIN city_info c ON u.address=c.cid;
	-- 语法简单
	SELECT NAME,cname FROM user_info u,city_info c WHERE u.address=c.cid;
b,外连接
  		SELECT NAME cname FROM user_info LEFT(RIGHT) JOIN city_info ON  uesr_info.address=city_info.cid;
  		左外连接看左表,以左表为主表。
  		右外连接看右表,以右表为主表,(这两个用聚合函数是,尤其是COUNT(根据情况加列),COUNT不统计NULL的个数。)

(5)子查询
–子查询的列和条件需要对应,一般情况下子查询的结果需要唯一。除非i IN 子查询
概念:一个查询语句嵌套在另一个查询语句中的查询。

SELECT * FROM user_info WHERE age=(SELECT age FROM user_info WHERE NAME = '张三');
SELECT * FROM user_info WHERE age IN (SELECT age FROM user_info WHERE NAME LIKE '张%');
SELECT pname AS '姓名',cname AS '球队', body AS '身体',shoot AS '投篮' FROM clubs c INNER JOIN (SELECT pname,body,shoot,control,cid FROM player p INNER JOIN abiilities a ON p.PID=a.PID  ) b ON c.cid=b.cid

以上是一些简单的mysql语句,希望可以帮到大家一点。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我! 毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值