MySQL数据库基本语法

一、什么是MySQL数据库?

MySQL是一个开源的关系型数据库管理系统,广泛应用于Web应用程序的开发中。它支持多种操作系统,包括Windows、Linux和Mac OS等。MySQL提供了一个可靠的、高性能的数据存储解决方案,并且支持多种编程语言,如Python、PHP、Java等。MySQL具有易于使用、稳定可靠、性能优越等特点,在Web开发领域被广泛应用。

二、MySQL语句

MySQL语句分为四大类:共九个动词

  • DDl (维护数据库的单位):create,alter,drop
  • DML(维护表中的数据) :insert,update,delete,
  • DQL(查询表中的数据) :select
  • DCL(给用户分配权限):grant,remove

1、DDL语句

一、创建数据库,表:

create database 数据库名;
Create table 表名 (字段名 字段类型 (10) 约束条件,
字段名 字段类型 (长度),
字段名 字段类型 (长度));

二、删除数据库,表:

drop database 数据库名;
drop table 表名;

三、修改表的单位:

1、修改表名:
alter table 旧表名 rename 新表名;
2、增加列:
alter table 表名 add column 字段名 字段类型 字段约束;
3、删除列:
alter table 表名 drop column 字段名;
4、改变列名:
alter table 表名 change 旧字段名 新字段名 字段类型和约束条件;

2、DMl语句

一、向表中添加数据:

insert into 表名(字段、字段、…)values(值、值…)

二、修改表中的数据:

update 表名 set 字段=新的值 where 条件

三、删除表中的数据:

delete from 表名 where 条件;

3、查询表中的数据:

1.查询表中所有数据
Select * from 表名 * 代表所有列(是一种通配符)XML可扩展的志标语言标记
2.查询表中指定列不是所有行
Select 字段,字段 from 表名
3.按条件查询需要使用条件子句(所有的条件都是应用的某一列上的)
Select * from 表名 where 条件
4.按比较条件< = > != 查询的语句 (=属于精确查询速度比较快)
Select * from 表名 where 字段名 比较条件 比较值
5.按确定范围比较 between and not between and
Select * from 表名 where 字段名 between 开始的范围值 and 结束的范围值
6.按确定集合比较 in 和 not in
Select * from 表名 where 字段名 in(包含的值1,包含的值2,包含的值3)
7.按照字符匹配(模糊查询适用于字符类型的字段)like 来检索
Select * from 表名 where 字段名 like 检索值% (代表我查询以检索值开头的数据)
Select * from 表名 where 字段名 like %检索值 (代表我查询以检索值结尾的数据)
Select * from 表名 where 字段名 like %检索值%(代表我查询包含检索值内容的数据)
8. 按照多重条件查询 and 和 or(引发SQL注入问题)
全是真则为真
Select * from 表名 where 字段名 比较条件1 比较值1 and 比较条件2 比较值2
有一个是真则为真
Select * from 表名 where 字段名 比较条件1 比较值1 or 比较条件2 比较值2
9 . 聚合函数的使用求表中一共有多少条记录 count(
Select count(
) from 表名
Select SUM(age) FROM student //求和 必须应用到数值类型的字段上
Select AVG(age) FROM student//求平均值
Select MAX(age) FROM student//求最大值
Select MIN(age) FROM student//求最小值
10. 去掉重复的关键字 distinct
Select distinct 字段 from 表名
11. 分组平且筛选条件
SELECT NAME,COUNT( *) FROM student GROUP BY NAME HAVING COUNT( * ) >1
分页查询
SELECT * FROM student LIMIT 0,3;
排序查询 正序asc 逆序 desc
SELECT * FROM student WHERE xueyuan = ‘计算机’ ORDER BY age DESC

三、测试

现有如下表:
图书表:book
在这里插入图片描述
读者表:reader
在这里插入图片描述

借阅记录表:check_out
在这里插入图片描述

-- 1.查询所有图书记录、查询所有借阅记录、查询所有读者信息,采用字段选择和通配符选择!
select b_code,b_name,b_author,b_publish,b_pubdate,b_price from book;
select * from book;
select r_code,r_name,r_sex,r_dep from reader;
select * from reader;
select b_code,r_code,borrow_date,return_date from check_out;
select * from check_out;
-- 2.查询图书馆中的书籍都有哪些出版社?
select distinct b_publish as '出版社' from book;
-- 3.查询出版日期在2008年至2010年之间的所有图书
select b_name FROM book where b_pubdate between '2008-1-1' and '2010-12-31';
-- 4.查询部门是财务部、人事部、培训部的读者信息!
select * from reader where r_dep='人事部'or r_dep='财务部' or r_dep='培训部';
-- 5.查询所有姓张的读者详细信息!
select * from reader where r_name like '张%';
-- 6.查询所有未归还图书的借阅记录详情!
select * from check_out where return_date is null;
-- 7.查询读者中人事部的读者有多少个、查询作者姓李的图书共有多少本!
select r_dep,count(r_code) from reader where r_dep='人事部' group by r_dep;
select count(b_code) from book where b_author like '李%' 
-- 8.查询《幻城》这本书总计价格是多少?(建议数据录入的时候有不少于三本《幻城》)
select b_name,sum(b_price) from book where b_name='《幻城》' group by b_name;
-- 9.查询《幻城》这本书平均价格是多少?
select b_name,avg(b_price) from book where b_name='《幻城》' group by b_name;
-- 10.查找最贵的一本《幻城》的信息 !
select * from book where b_price=(select max(b_price) from book where b_name ='《幻城》');
-- 11.查询借阅日期在2011年10月的前3条记录
select * from check_out where borrow_date like '2011-10%' limit 0,3;
-- 12.查询所有图书并按出版日期排序、查询2011年的全年借阅记录,并按借阅日期倒序排序
select * from book order by b_pubdate desc;
select * from check_out where borrow_date like '2011%' order by borrow_date desc;
-- 13.统计读者群体中各个部门的人数
select r_dep,count(r_code) from reader GROUP BY r_dep;
-- 14.统计2010年的借阅记录,查看每个图书编号都被借出去过多少次,并按照这个次数从大到小排序,以便了解书籍的畅销程度!
select b_code,count(b_code) from check_out group by b_code order by count(b_code) desc;
-- 15.统计读者群体中各个部门的女性群体数量
select r_dep,count(r_code) from reader where r_sex='女' GROUP BY r_dep;
-- 16.查询年龄最大的员工姓名
select name,max(age) from employee group by name order by max(age) desc limit 0,1;

现有员工employee表:
在这里插入图片描述

-- 1.写出sql语句,查询所有年龄大于20岁的员工
select Name from employee where age>20;
-- 2.写出sql语句,查询所有年龄小于25岁的女性员工
select Name from employee where sex='女' and age<25;
-- 3.写出sql语句,统计男女员工各有多少名
select sex,count(id) from employee group by sex;
-- 4.写出sql语句,按照年龄倒序获取员工信息
select Name,Sex,Age,Address from employee order by Age desc;
-- 5.写出sql语句,获取员工中哪个姓名具有重名现象
select Name,count(id) as num from employee group by Name having count(id)>1;
-- 6.写出sql语句,查询所有姓张的员工
select name from employee where name like '张%';
-- 7.写出sql语句,查询住址为北京的前3条记录
select * from employee where address='北京' limit 0,3;
-- 8.写出sql语句,查询员工总数
select count(id) as zs from employee;
-- 9.写出sql语句,修改员工张四的住址为南京
update employee set address = '南京' where name = '张四';
-- 10.写出sql语句,删除年龄大于24岁的女员工
DELETE FROM employee WHERE age > 24 AND sex = '女'
  • 32
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值