SQL知识点

本文详细介绍了SQL语言的基础知识,包括四大组成部分:DDL、DML、DQL和DCL。讲解了如何创建、删除、修改和查询数据库及数据表,并提供了数据插入、更新和删除的示例。同时,阐述了数据查询的各种技巧,如单表查询、多表查询、子查询和排序等,是学习SQL操作的实用教程。
摘要由CSDN通过智能技术生成

SQL(Structured Query Language)结构化查询语言,用于编程和管理关系数据库中的保存数据。SQL由四个部分组成:数据定义语言(Data Definition Language,DDL)、数据操纵语言(Data Manage Language,DML)、数据查询语言(Data Query Language,DQL)、数据控制语言(Data Control Language,DCL)。

数据库 增删改查(CUDR)
1、创建数据库db1
create database db1;
2、删除数据库db1
drop database db1;
3、修改数据库字符编码为gbk
alter database db1 character set 'gbk';
4、切换当前数据库为db2
use db2;
数据表 增删改查(CUDR)
语法:
create table 表名(
	字段1 类型(长度) 约束,
	字段2 类型(长度) 约束,
	...,
	字段n 类型(长度) 约束
)
1、创建表table1
create table table1(
	id int primary key,
	name varchar(20) not null
	);
2、删除表table1
drop table table1;
3、修改表table1
alter table table1 add name varchar(20) not null;增加字段
alter table table1 drop column name;删除字段
alter table table1 alter column name char(10);修改字段类型
数据 增删改查(CUDR)
语法:
insert into 表名(字段1,字段2,...,字段n) values(值1, 值2, ...,值n)

1、表table1增加一行数据
insert into table1(id, sex) values(2, 'man');

语法:
updata 表名 set 字段1=值1, 字段2=值2,...,字段n=值n [where]

2、更新table1中字段id=2那一行,设置字段id=3
update table1 set id=3 where id=2;

语法:
delete from 表名 [where]

3、删除table1表中id=3的那一行
delete from table1 where id=3;
4、删除表table中所有数据
delete from table1;

语法:
select [distinct] * from 表名
select [distinct] 字段1,字段2,... from 表名

5、简单查询表table1中的id,name字段的所有不重复数据
select distinct id, name from table1;
6、查询table1中所有不重复字段数据
select distinct * from table1;
数据查询*****

1、单表查询

1、查询的列可以运算
select name, math+10 from stu;

2、使用as 别名,同时as可以省略
select name as n,math, english from stu;
select nam n, math, english from stu;

3、使用where条件过滤
select name, math, english from stu where name='Li Ming';

4、使用oreder by [desc]进行排序,desc为降序,默认升序
select name, math, english from stu where name='Li Ming' order by math desc, english desc;

5、使用group by进行分组,having进行条件过滤
获取不同产品的总价
select product, sum(price) from orders group by product;
获取不同产品,且产品总价大于100的产品总价
select product, sum(price) from orders group by product having sum(price) > 100;

2、多表查询(需要有外键)

1、普通内连接,使用inner join ... on
select * from dept iner join emp on dept.did=emp.dno;

2、隐式内连接,不使用inner join ... on
select * from dept, emp where dept.did=emp.dno;

3、左外连接,使用left [outer] join ... on
select * from dept left outer join emp on dept.did=emp.dno;
select * from dept left join emp on dept.did=emp.dno;

4、右外连接,使用right [outer] join ... on
select * from dept right outer join emp on dept.did=emp.dno;
select * from dept right join emp on dept.did=emp.dno;

5、全外连接,使用full [outer] join ... on
select * from dept full outer join emp on dept.did=emp.dno;
select * from dept full join emp on dept.did=emp.dno;

3、子表查询(查询的内容需要另一个查询的结果)

1、查询比子表eid大的所有字段
select * from emp where eid > (select eid from emp where eid='2344');
2、any表示任意
select * from emp where eid > any(select eid from emp where eid='2344');
3、all表示全部
select * from emp where eid > all(select eid from emp where eid='2344');
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

不负韶华ღ

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

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

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

打赏作者

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

抵扣说明:

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

余额充值