值得收藏的SQL数据库基础总结

服务的启动和停止

停止数据库服务,在DOS下以管理员身份运行

net stop mysql

开启数据库服务,在DOS下以管理员身份运行

net start mysql

数据库的相关操作

连接数据库

mysql -uroot -p #回车输入密码即可

修改密码,把你自己的密码填到最后一个单引号内即可

alter user 'root'@'localhost' identified by 'root';

创建数据库

create database 数据库名;

创建数据库,判断不存在再创建

create database if not exists 数据库名;

显示所有数据库,其中四个是默认的

show databases;

使用数据库

use 数据库名;

删除数据库

drop database 数据库名;

删除数据库,判断存在再删除

drop database if exists 数据库名;

数据库表的相关操作

创建数据库表

create table 表名 (
	列名1 数据类型1,
	列名2 数据类型2,
	...
	列名n 数据类型n,
	primary key 列名(主键)
 );

查看数据库中所有表

show tables;

查看数据库表结构

desc 表名;

删除表

drop table 表名;

修改数据库表名

alter table 表名 rename to 新表名;

添加列

alter table 表名 add 列名 数据类型;

删除列

alter table 表名 drop 列名;

表中数据的相关操作

添加数据

insert into 表名(列名1,列名2,...列名n) values(1,2,...值n); #列名和值要相对应。
insert into 表名 values(1,2,...值n); #这里的值要包含表里的所有列。

删除数据

delete from 表名 where 条件; #删除满足条件的数据。
delete from 表名; #如果不写条件,则默认删除表里的所有数据。

修改数据

update 表名 set 列名1 =1, 列名2 =2,... where 条件; #这里是修改满足条件的数据。
update 表名 set 列名1 =1, 列名2 =2,...; #如果是不加条件,则修改所有的数据。

查询数据

select 列名 from 表名 #查询某列的数据。
select * from 表名 #查询所有列的数据。
select distinct 列名 from 表名 #查询去重后的数据。

条件语句(where)
为了演示的方便,这里查询出来的结果都用 * 来代替。
-

查询同时满足条件1和条件2的数据。

select * from 表名 where 条件1 and 条件2 

查询满足条件1或条件2的数据。

select * from 表名 where 条件1 or 条件2 

查询不满足条件1的数据。

select * from 表名 where not 条件1 

在这里插入图片描述
查询某列为空的数据。

select * from 表名 where 列名 is null; 

查询某列非空的数据。

select * from 表名 where 列名 is not null; 

查询某列在值1和值2之间的数据。

select * from 表名 where 列名 between1 and2; 

查询所有以hello开头的数据,like结合%使用,其中%代表0到任意个字符。

select * from 表名 where 列名 like 'hello%'; 

查询所有以hello开头并且后面只跟一个字符的数据,like结合_使用,_代表1个字符。

select * from 表名 where 列名 like 'hello_'; 

查询某列在某区域内的数据。

select * from 表名 where 列名in (1,2,...); 

排序和分页

排序关键词是order by,其默认是升序,如果想要降序,只需加上desc,其语法就是order by后面加上要排序的字段。

通过该列进行升序排序。

select * from 表名 order by 列名;

通过该列进行降序排序。

select * from 表名 order by 列名 desc;

查询索引从offset(第一个数据索引是0)开始,每页显示pagesize个元素。

select * from 表名 limit offset,pagesize;

查询出的用户表数据,从第1个用户开始显示,每页显示10个。

select* from user limit 0,10;

查询出的用户表数据,从第10个用户开始显示,每页显示10个。

select* from user limit 10,10;
  • 第一页 0,10
  • 第二页 10,10
  • 第三页 20,10
  • 第n页 (n-1) * 10,10

分组查询

分组查询的关键字是group by,还可以与聚合函数(count(),sum(),max()等)搭配使用,下面通过一个user表进行演示。

select 字段名 from 表名 group by 字段名
select 字段名 count(字段名) from 表名 group by 字段名

联表查询

联表查询主要包括内连接、外连接和子查询
首先我们进行讲解内连接(inner join也叫join),也是最常用的一种联表查询。
语法上有两种写法,一个是隐式,一个是显示的
隐式语法:select 字段… from 表1,表2… where 条件;
显示语法:select 字段… from 表1 [inner] join 表2… on 条件; 这里的方括号内的东西可以省略


外连接包括左外连接和右外连接,也称为左连接和右连接。所谓的左外连接(left join),也就是在内连接的基础上,又把左表中所有的信息打印出来了
语法:select 字段… from 表1 left join 表2 on 条件;

**右外连接(right join)**跟左连接差不多,就是在内连接的基础上把右边表的信息打印出来了
select 字段… from 表1 right join 表2 on 条件;
在这里插入图片描述
子查询,也就是查询中嵌套查询。

select 字段名 from 表名 where 条件;这里的条件可以是一个语句,例如
select 字段名 from user where age > (select age from user where name = ‘张三’);意思就是查询年龄大于张三的人的信息
如果条件里有多行单列的情况,可以通过in关键字
select * from user where age in (select age from user where name = ‘张三’ or name = ‘李四’);

  • 52
    点赞
  • 112
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贺志营

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值