Mysql数据库知识点(一)

编程菜鸟互助学习圈,一起学编程

前面的文章中我们学习了

浅谈java final关键字

,今天二妹子和大家一起来梳理Mysql数据库知识点

1

管理数据库语句:

使用数据库:

use test;

添加数据库:

create database 数据库名;

create database test;

修改数据库:

alter database 数据库名;

alter database test;

删除数据库:

drop database 数据库名;

drop database test;

查看所有数据库:

show databases;

2

管理表语句:

添加数据表:

create table 表名(

列名 数据类型 数据约束,

列名 数据类型 数据约束

);

create table student(

name varchar(20) not null,

age int(4)

)

修改数据表:

alter table 表名;

1)在表中增加新字段

alter table student add colunm name varchar(20);

2)删除表中的字段

alter table student drop name;

3)修改表中字段的类型

alter table student modify name varchar(10);

删除数据表:

drop table 表名;

drop table student;

查看所有表:

show tables;

3

管理数据语句:

插入数据:

insert into 表名 (列1,列2...) values (值1,值2...);

insert into student (name,age) values ('张三',20);

更新数据:

update 表名 set 列=修改值 where 条件;

update student set name='李四' where name='张三';

删除数据:

delete from 表名 where 条件;

delete from student where name='李四';

查询数据:

selete * from 表名 where 条件;

selete * from student where name='张三';

4

各种查询语句:

查询时指定别名:

1) selete id AS '编号',name AS '姓名' from student;

2) selete id '编号',name '姓名' from student;(AS可以省略)

查询时合并列:

需求:查询每个学生的总分

selete name AS '姓名',(servlet+mysql) AS '总成绩' from student;

注意:合并列的字段必须是数值类型的字段

查询时去除重复(distinct):

需求:查询有哪些地区的学生

selete DISTINCT address from student;

另一种语法

selete DISTINCT(address) from student;

条件查询:

逻辑条件:and or

需求:查询学生的id为1,且姓名为张三的学生

selete * from student where id=1 and name='张三';(交集)

需求:查询学生的id为2,或姓名为张三的学生

selete * from student where id=2 or name='张三';(并集)

比较条件:> = (between and--在...之间 包前包后)

需求:查询servlet分数大于80分的学生

selete * from student where servlet>80;

需求:查询mysql分数小于或等于85分的学生

selete * from student where mysql

需求:查询servlet分数大于或等于80分,且小于或等于85分的学生

selete * from student where servlet>=80 AND servlet

代替上面语句的语法

selete * from student where servlet BETWEEN 80 AND 85;

需求:查询年龄不等于30的学生

selete * from student where age30;

判空条件:is null, is not null, =’’, ’’

Null:表示没有数据

空字符:表示有数据

需求:查询没有性别数据的学生(数据‘男’或‘女’)

selete* from student where gender IS NULL OR gender='';

需求:查询有性别数据的学生

selete * from student where gender IS NOT NULL AND gender'';

模糊条件:like

模糊替代符号:

%:替代任意个字符

_:替代一个字符

需求:查询姓“李”的学生

SELECT * FROM student WHERE NAME LIKE '李%';

需求:查询姓名中包含‘四’字的学生

SELECT * FROM student WHERE NAME LIKE '%四%';

需求:查询姓‘李’,全名只有两个字的学生

SELECT * FROM student WHERE NAME LIKE '李_';

聚合函数查询(用于统计结果)

Max()取最大值 min()取最小值 avg()取平均值 count()统计标的记录数量 sum()求和

需求:查询servlet的最高分

SELECT MAX(servlet) FROM student;

需求:查询mysql的最低分

SELECT MIN(mysql) FROM student;

需求:查询servlet的平均分

SELECT AVG(servlet) FROM student;

需求:查询当前有几个学生

SELECT COUNT(*) FROM student;

需求:查询servlet成绩的总和

SELETE SUM(servlet) from student;

分页查询(limit)

Limit起始行数,查询的行数

起始行数从0开始

需求:查询第1,2条数据

SELECT * FROM student LIMIT 0,2;

分页查询需知道:当前页码,每页显示条数

结论分页查询当前页数据:select * from student limit (当前页码-1)*每页显示条数,每页显示条数;

需求:学生共20条数据,每页显示5条,共4页

查询第3页(第11到15条)的学生数据:select * from student limit 10,5;

查询后排序(order by)

DESC:降序。数值从大到小,字母z-a

ASC:升序。数值从小到大,字母a-z

默认情况下,按照插入的顺序排序

需求:按照id的升序排序

select * from student order by id asc;

需求:按照servlet成绩降序排序

select * from student order by servlet desc;

多个排序条件的情况:先按照前面的条件排序,当出现重复记录,再按照后面的条件排序

需求:按照age升序,再按照servlet成绩升序排序

select * from student order by age asc,servlet asc;

分组查询(group by)

需求:查询每个地区有多少人

SELECT address,COUNT(*) FROM student GROUP BY address;

需求:统计男女的人数

注意:where条件必须放在group by 分组之前

SELECT gender,COUNT(*) FROM student WHERE gender IS NOT NULL AND gender'' GROUP BY gender;

分组后筛选(having)

需求:查询哪些地区的人数是大于2个的地区

查询哪些地区多少人 2)筛选人数大于2的地区

注意:having使用在group by分组之后,对分组后的条件进行筛选

SELECT address,COUNT(*) FROM student GROUP BY address HAVING COUNT(*)>2;

未完待续......

我们下次继续啃。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180612G1K0VV00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券