SQL总结


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
	分页限定

约束

外键约束

数据库设计

多表查询

内连接

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

显式内连接
select 字段列表 from 表1 [inner] join 表2 on 条件;

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

外连接

左外连接
select 字段列表 from 表1 left [outer] join 表2 on 条件;
右外连接
select 字段列表 from 表1 right [outer] join 表2 on 条件;

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

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

子查询

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

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

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

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

3、多行duolie:作为虚拟表

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

事物

1、开启事务

start transaction; 或者 begin;

2、提交事务

commit;

3、回滚事务

rollback;

4、事务的特性

5.事务提交

mysql事务默认自动提交

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