SQL语言汇总

这篇文章主要将sql查询系统的总结了一下,有需要的铁子可以来瞅一瞅
在这里插入图片描述

什么是Sql语言

Codd基于对关系模型的定义,他提出了一种叫作DSL/Alpha的语言,用于操作关系数据表中的数据。在Codd的论文发表后不久,IBM委托一个小组根据Codd的想法建立一个原型。这个小组创建了DSL/Alpha的简化版本SQUARE。经过对SQUARE的改进,产生了SEQUEL语言,最终该语言被命名为SQL。尽管SQL最初是用于操作关系型数据库中的数据,但如今已经演变为一种可以处理各种数据库技术的语言(正如你将在本书结尾看到的)。SQL现在已有40多年的历史,其间经历了很大的变化。20世纪80年代中期,美国国家标准协会(American National Standards Institute,ANSI)开始制定SQL语言的第一个标准,该标准最终于1986年发布。随后经过改进,陆续在1989年、1992年、1999年、2003年、2006年、2008年、2011年、2016年发布了新版本。在改良核心语言的同时,SQL语言中还添加了一些新特性,引入了面向对象功能等。之后的标准侧重于相关技术的集成,比如可扩展标记语言(XML)和JavaScript对象表示法(JSON)。SQL与关系模型相辅相成,因为SQL查询的结果就是数据表(在该上下文中,也叫作结果集)。所以,在关系型数据库中,新的永久性数据表可以通过存储查询的结果集来创建。同样,查询可以使用永久性数据表和其他查询的结果集作为输出(我们会在第9章讨论相关细节)。G15e">最后强调一点:SQL并不是某种缩写[尽管很多人坚持认为它表示“Structured Query Language”(结构化查询语言)]。在提及该语言时,可以使用独立的字母(S.Q.L)或使用“sequel”。

sql基础增删改查

增添数据
insert into 表名(列名)values(值)
insert into js(js,par,time,place,img) values (?,?,?,?,?)
可以批量添加
insert into 表名(列1,列2…)values (值1,值2…),(值1,值2…);

删除数据
delete from 数据库名 where 类型=’‘;删除类型的…的记录
delete from did where id=?

修改数据
UPDATE 表名 [SET 列 1=新值 1 ,列 2 = 新值 2,…WHERE 条件;
#修改编号为100 的员工的工资为 25000
UPDATE t_employees SET SALARY = 25000 WHERE EMPLOYEE_ID = ‘100’;

查询数据
select 类型 from 数据库名;查询数据库中某个列名
select idu from did where id=?
select *form数据库名;表示查询所有的列
select * from did

sql进阶查询

分开查询

select * from employees where salary>(select salary from employees where last_name=‘Bruce’)

子查询(作为一张表)
SELECT 列名 FROM(子查询的结果集)WHERE 条件;
查询员工表中工资排名前 5 名的员工信息
1.先排序
select employee_id,first_name,salsry from t_employees ordrer by salary desc;
select employee_id,first_name,salsry from (排序表) limit 0,5
2.拼接表
union 规则:列数必须相同,union all不去重
将2个表拼接
select *from A union select * from B
查询员工id是101的薪水,名字,部门名称,部门所在国家
三表查询,多表联查(有相同内容前面加表名.)
要求:所有链表必须有相同列的内容(列名称可以不相同),两两之间比较然后用and链接
select employee_id, last_name,salary,department_name,country_id from employees e,departments d,locations l
where e.department_id=d.department_id and d.location_id=l.location_id;

内连接 99
inner join,inner 可以省略
on 连接条件
多表链接也是两两join
查询员工id是101的薪水,名字,部门名称
select employee_id, last_name,salary,department_name from employees e inner join departments d
on e.department_id=d.department_id;

外链接 92
left/right outer join 另外一张表
当展示null时一般使用外连接
查询所有 有男朋友的女生名字和其男朋友的名字 假如没有男朋友就显示null
select girl,boy from girl g left outer join boy b on g.boyfriend_id=b.id;
注意:left/right那一边就是主表,另外一边不是主表则显示null,主表信息必须全部展示

对mysql数据库表的操作

清空数据,清空整张表(不是删除表!!!)
delete from 表名
truncate table 表名

创建表
create table
CREATE TABLE people (age INT, name CHAR(20));

约束
主键 PRIMARY key 唯一 非空
create table 表名 (id int PRIMARY key,name varchar(20),age int );
create table students(id int PRIMARY key,name varchar(20),age int ,sex varchar(20));

主键自增 (前提是int类型的)
PRIMARY key auto_increment 当不输入是也会自动输入(1,2,3…)
create table 表名 (id int PRIMARY key auto_increment,name varchar(20),agr int );

唯一约束
unique
create table 表名 (id int PRIMARY key auto_increment,name varchar(20),agr int ,phone char(11) UNIQUE);

非空约束
not null
create table 表名 (id int PRIMARY key,name varchar(20) not null,agr int );

默认约束值
default
create table 表名 (id int PRIMARY key auto_increment,name varchar(20),agr int default 18 );

外键约束 保证引用完整性
用来在两个表的数据之间建立链接,它可以是一列或者多列。一个表可以有一个或多个外键。
CONSTRAINT fk_boy_id FOREIGN key(boyfriend_id) REFERENCES boy(id)

添加列
alter table 表名 ADD gradeid int;

修改一个列
alter table 表名 modify … varchar()
修改课程表中课程名称长度为10个字符
alter table subject modify subjectName varchar(10);

修改表名
alter table 旧表名 rename 新表名;

删除列
alter table 表名 drop 列;

删除表
删除学生表
DROP TABLE subject

复制表
CREATE TABL 新表 SELECT * FROM 旧表

最后

我将这个总结放到百度网盘中如果有想下载的可以直接冲!!!
链接:https://pan.baidu.com/s/1PNCMiCZCz2NLuCOqxFt1Dg
提取码:0136
—————————————————————手动分割————————————————————

记得!记得!记得!不懂的话评论区或者私信问我哈铁铁们!
由于开摆原因所以停更了一年,我尽量每周发布2~3篇文章,有问题大家可以一起讨论

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

java缝合怪

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

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

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

打赏作者

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

抵扣说明:

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

余额充值