SQL总结

265 阅读4分钟
title: SQL总结
date: 2022-04-30 16:59:10
tags:

SQL通用语法

1.SQL语句可以单行或多行书写,以分号结尾。

2.MYSQL数据库的SQL语句不区分大小写,关键字建议适用大写。

3.注释

(1) 单行注释:-- 注释内容(两个横杠一个空格+注释内容) 或 #注释内容(MYSQL特有)

(2) 多行注释: /* 注释 */

对 MYSQL 的 windows命令

1、启动mysql服务

net start mysql 启动 mysql 服务
net stop mysql 关闭 mysql 服务

2、进入mysql,输入密码:

mysql -hlocalhost -uroot -proot 进入mysql数据库,其中-h表示服务器名,localhost表示本地;
-u为数据库用户名,root是mysql默认用户名;-p为密码,如果设置了密码,可直接在-p后直接输入。
​
mysql -u root -p;

对数据库的操作

1、查看所有数据库

mysql> show databases;

2、创建数据库

mysql> create database 数据库名称
如果数据库已经存在,则会报错
可使用
mysql> create database if not exists; 数据库名称

3、删除数据库

drop database 数据库名称;
drop database if exists 数据库名称;

4、使用数据库

使用数据库 use 数据库名称;

5、查看当前使用的数据库

select database();

对表的操作

· 创建(create)

·查询(retrieve)

·修改(update)

·删除(delete)

1、创建(create)

创建表

create table 表名(
        字段名1 数据类型1,
        字段名2 数据类型2,
        ...
        字段名n 数据类型n
);

最后一行末尾不能加逗号

2、查询(retrieve)

查询当前数据库下所有表名称

show tables;

查询表结构

desc 表名称;

3、修改(update)

修改表名

alter table 表名 rename to 新的表名;

添加一列

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

修改数据类型

alter table 表名 modify 列名 新数据类型;

修改列名和数据类型

alter table 表名 change 列名 新列名 新数据类型;

删除列

alter table 表名 drop 列名;

4、删除(delete)

删除表

drop table 表名;
drop table if exists 表名;

对数据的操作

添加数据

1、给指定列添加数据

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

2、给全部列添加数据

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

3、批量添加数据

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

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

修改数据

1、修改表数据

update 表名 set 列名1=值1,列名2=值2,...[where 条件];

修改语句如果不加条件,则所有数据都将被修改!

删除数据

1、删除数据

delete from 表名 [where 条件];

删除语句如果不加条件,则所有数据都将被删除

查询数据

select
	字段列表
from
	表名列表
where
	条件列表
group by
	分组字段
having
	分组后条件
order by
	排序字段
limit
	分页限定

image.png

约束

image.png

外键约束

image.png

数据库设计

image.png

多表查询

内连接

隐式内连接
select 字段列表 from1,表2... where 条件;

显式内连接
select 字段列表 from1 [inner] join2 on 条件;

内连接相当于查询A B 交集数据

外连接

左外连接
select 字段列表 from1 left [outer] join2 on 条件;
右外连接
select 字段列表 from1 right [outer] join2 on 条件;

左外连接 :相当于查询A表所有数据和交集部分数据

右外连接 :相当于查询B表所有数据和交集部分数据

子查询

子查询根据查询结果不同,作用不同; 1、单行单列:作为条件值,使用=,!=,>,<等进行条件判断

select 字段列表 fromwhere 字段名 = (子查询);

2、多行单列:作为条件值,使用in等关键字进行条件判断

select 字段列表 fromwhere 字段名 in (子查询);

3、多行duolie:作为虚拟表

select 字段列表 from (子查询) where 条件;

事物

1、开启事务

start transaction; 或者 begin;

2、提交事务

commit;

3、回滚事务

rollback;

4、事务的特性

image.png

5.事务提交

mysql事务默认自动提交

-- 查看事物的默认提交方式
select @@autocommit;
-- 1 自动提交 0 手动提交
-- 修改事务提交方式
set @@autocommit = 0;