数据库知识

数据库知识

  • SQL语句
    • 1. 创建数据库
    • 2. 查看数据库
    • 3. 使用数据库
    • 4. 创建表
    • 5. 显示表结构
    • 6.修改表
    • 7.增删改查
    • 8.通配符
    • 9.过滤
    • 10.计算字段(使用as输出)
    • 11.函数
    • 12.分组GROUP BY
    • 13.子查询
    • 14.连接
      • 1.内连接查询(等值查询) inner join
      • 2.自连接
      • 3.自然连接
      • 4.外连接
    • 15.组合查询UNION

SQL语句

1. 创建数据库

create database [databasename];

在这里插入图片描述

2. 查看数据库

show databases;

数据库知识_第1张图片

3. 使用数据库

use databasename;

在这里插入图片描述

4. 创建表

create table sellingpoint(
id int not null primary key,
author varchar(100),
title varchar(200)); 

在这里插入图片描述

5. 显示表结构

desc tablename;

数据库知识_第2张图片

6.修改表

1.删除表

drop table tablename;

在这里插入图片描述
2. 清空表数据

truncate table tablename;

在这里插入图片描述
3. 增加列

alter table tablename add colname varchar(100);

在这里插入图片描述数据库知识_第3张图片
4.删除列
alter table tablename drop columnname;数据库知识_第4张图片
5.更改列属性

  • 只修改属性
alter table tablename modify columnname varchar(100) ...;
  • 修改列名
alter table tablename change name1 name2 varchar(100);//后面必须写上列的属性

在这里插入图片描述

  • 修改列名及属性
alter table change name1 name2 varchar(100);

在这里插入图片描述
数据库知识_第5张图片

7.增删改查

1.插入数据

  • 普通插入
insert into tablename(col1,col2,col3...) values (value1,value2,value3...)

数据库知识_第6张图片

  • 将一个表内容插入到另一个表

create

  • 将一个表某几列数据插入到另一个表
insert into mytable(col1,col2) select col1,col2 from mytable2;

2.删除数据

delete from tablename where ...

数据库知识_第7张图片
数据库知识_第8张图片
3.更改数据

update tablename set columename=' ' where ...

在这里插入图片描述
4.查询数据

  • 显示某几列信息
select col1,col2 from tablename where ...

数据库知识_第9张图片

  • 显示所有列信息
select * from sellingpoint where id=10;

数据库知识_第10张图片

  • distinct 用于显示具有不同列值的元素,只有所有列相同才判定为相同
select distinct col1,col2 from tablename where ...

数据库知识_第11张图片

  • limit 限制返回的行数,接收两个参数,第一个为起始行,默认为0,第二个为总行数
select * from tablename where ...  limit 3,4; //从查询到的结果的第3行开始,显示4行数据

数据库知识_第12张图片

  • count

count函数是用来统计表中或数组中记录的一个函数,

count(*) 它返回检索行的数目, 不论其是否包含 NULL值。

例如:SELECT COUNT(*) FROM sellingpoint;

COUNT(DISTINCT 字段),返回不同的非NULL值数目;若找不到匹配的项,则COUNT(DISTINCT)返回 0 。
数据库知识_第13张图片

  • count 与group配合
    COUNT( )和GROUP BY以各种方式分类你的数据
select col1,count(*) from sellingpoint where ... group by col1;

数据库知识_第14张图片

  • 升序 asc、降序desc
select col1,col2 from tablename where ... order by  colname desc/asc;

数据库知识_第15张图片

8.通配符

  • “%”:匹配大于等于0的任意字符,null不可以
select * from tablename where author like '刘%';

数据库知识_第16张图片

  • “_”:匹配一个字符
  • 使用like与not like匹配查询
select * from sellingpoint where author like '_永';
select * from sellingpoint where author not like '%永%';

数据库知识_第17张图片

9.过滤

数据库知识_第18张图片数据库知识_第19张图片

10.计算字段(使用as输出)

select col1*col2 as alias from selling2;

concat()用来连接字段,用trim清除字段的空格

select concat(trim(author),'+',trim(content)) from selling2 where ...;

数据库知识_第20张图片

11.函数

数据库知识_第21张图片
数据库知识_第22张图片
数据库知识_第23张图片
数据库知识_第24张图片

12.分组GROUP BY

把具有相同值的列放在同一组中,默认按分组字段排序,也可以选择按汇总字段排序。

select col1,count(*) as num from selling2 where id>5 group by author order by num;

规定

  • group by 在order by之前,在where之后
  • 可以用having过滤汇总字段,放在最后
select author,count(*) as num from selling2 
where id>3 
group by author
having num>2  
order by num ;

13.子查询

子查询中只能返回一个字段的数据。

可以将子查询的结果作为 WHRER 语句的过滤条件:
在这里插入图片描述

14.连接

连接用于连接多个表,使用join关键字,且条件语句用on不用where
可以替换子查询,且效率比子查询快

1.内连接查询(等值查询) inner join

select c.name,o.id, o.customers_name from customers as c inner join orders as o on c.name=o.customers_name;

数据库知识_第25张图片

2.自连接

自连接可以看成内连接的一种,只是连接的表是自身而已

3.自然连接

自然连接是把同名列通过等值测试连接起来的,同名列可以有多个。

内连接和自然连接的区别:内连接提供连接的列,而自然连接自动连接所有同名列。

SELECT A.value, B.value
FROM tablea AS A NATURAL JOIN tableb AS B;

4.外连接

外连接保留了没有关联的那些行。分为左外连接,右外连接以及全外连接,左外连接就是保留左表没有关联的行。
数据库知识_第26张图片数据库知识_第27张图片
数据库知识_第28张图片

15.组合查询UNION

连接两个查询数据,1.M行,2.N行,UNION:M+N行,不保留重复数据 ,UNION ALL:保留重复数据
数据库知识_第29张图片

你可能感兴趣的:(数据库,MySQL,Java)