首页 > 数据库 >SQL的使用总结

SQL的使用总结

时间:2022-12-15 16:49:05浏览次数:40  
标签:总结 SQL t2 t1 dept 名称 使用 id 字段名

select * from emp
select * from dept
select * from job
select * from salarygrade



-- 1.查询所有员工信息。查询员工编号,员工姓名,工资,职务名称,职务描述
SELECT
	t1.mgr,
	t1.ename,
	t1.salary,
	t2.jname,
	t2.description
FROM
	emp AS t1,
	job AS t2
WHERE
	t1.job_id = t2.id 
-- 2.查询员工编号,员工姓名,工资,职务名称,职务描述,部门名称,部门位置
SELECT
	t1.ename,
	t1.salary,
	t2.jname,
	t2.description,
  t3.dname,
  t3.loc
FROM
	emp AS t1,
	job AS t2,
  dept AS t3
WHERE
	t1.job_id = t2.id and 
  t1.dept_id = t3.id


-- 3.查询员工姓名,工资,工资等级
SELECT
	t1.ename,
	t1.salary,
  t2.grade
FROM
	emp AS t1,
  salarygrade as t2
where t1.salary BETWEEN t2.losalary and hisalary
	

-- 4.查询员工姓名,工资,职务名称,职务描述,部门名称,部门位置,工资等级
SELECT
	t1.ename,
	t1.salary,
  t2.jname,
	t2.description,
  t3.dname,
  t3.loc,
  t4.grade
FROM
  emp AS t1,
	job AS t2,
  dept AS t3,
  salarygrade as t4
WHERE
	t1.job_id = t2.id 
   and 
  t1.dept_id = t3.id
 and t1.salary BETWEEN t4.losalary and t4.hisalary

-- 5.查询出部门编号、部门名称、部门位置、部门人数
SELECT
	t1.*, COUNT(t2.id) 部门人数
FROM
	dept AS t1,
	emp AS t2
WHERE
	t2.dept_id = t1.id
GROUP BY
	t2.dept_id



SELECT dept.*,t1.num 
from dept,(select dept_id,COUNT(*) num from emp GROUP BY  dept_id) t1
where t1.dept_id = dept.id



  

SQL总结:
********************************************************************************
           1.ddl语句: 操作数据库或表
               //创建数据库
             create Database if not 数据库名称;
              
               //删除数据库
             drop database if exists 数据库名称

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

               //查看数据库
              show database

               //查看当前使用的数据库
              select database()

               

---------------------------------------------------------------------
               //查询该数据库下的所有表
               select tables
               
               //查询表结构
               desc 表的名称
           
               //创建表
                create table 表的名称(字段1名称 数据类型  约束 ,
																			字段2名称 数据类型  约束,
																			字段3名称 数据类型  约束
                                      ) 

               //删除表
                drop table if exists 表的名称

               //修改表的名称
               alter table 表的名称 rename to 新的表名
            
               //添加列
              alter table 表的名称 add 列名 数据类型;
      
               //修改列的数据类型
               alter table 表的名称 modify 列名 新的数据类型;

               //修改列的名称以及数据类型
                alter table 表的名称 change 列名 新列名 新数据类型

               //删除列
              alter table 表的名称 drop 列名 ;      
             

  

********************************************************************************
           2.dml语句:对数据进行操作
             //添加数据【指定列添加】
            insert into 表的名称 (字段名1,字段名2,字段名3,……)
                           values(字段名1值,字段名2值,字段名3值,……)

            //添加数据【给全部列添加数据】
            insert into 表的名称 values(字段名1值,字段名2值,字段名3值,……)

						//添加数据【给全部列添加数据,多条数据同时添加】
            insert into 表的名称 values(字段名1值,字段名2值,字段名3值,……),
																				(字段名1值,字段名2值,字段名3值,……),
																				(字段名1值,字段名2值,字段名3值,……);
 
            //修改数据【指定列修改】
						update  表的名称 set 列名1=值1,列名2=值2,列名3=值3,……
             where 条件【不指定条件就会将所有行的数据全部更改】

            //删除数据
             delete from 表的名称 where 条件【不指定条件就会将所有行的数据删除】
 


********************************************************************************
           3.dql语句:数据库查询语言
                     ①select  from              查询
                     ②distinct                  去重
                     ③as                        别名

                     ④条件{
                             > 									大于
                            >=                  大于或等于
                            != / <>             不等
                            <                   小于
                            <=                  小于或等于
                            between …… and ……    在……范围内
                            in()                 多选一
                            like                 模糊查询【_代表单个任意字符 %代表多个任意字符】
                            is null/is not null  不为空
                            and /&&               和
                             or /||               或
                             not/!               非
                           }

											⑤排序 order by 【ASC升序 DESC降序】

                      ⑥聚合函数{
                             count()  统计数量【不统计为null的列】
                             max()      最大值
                             min()      最小值
                             sum()      求和
                             avg()      平均值
                           }
                      ⑦分组  group by
                 
                      ⑧分组后限定条件  having
                      ⑨分组前的限定条件 where 

                      ⑩分页查询 limit 起始索引 , 查询条目数;


                  

********************************************************************************
           4.dcl:数据控制语言
                 grant                   授权
                 set                     设置
                 @@autocommit            自动提交事务
                 begin                   开启事务
                 commit                  提交事务
                 rollback                回滚事务
           


							事务的四大特征:AICO  原子性【要么同时成功,要么都失败】
																		一致性【数据总量不变】
																		隔离性【开启多个事务查询数据】
																		持久性【通过commit提交或rollback回滚实现数据更新】

							默认自动提加事务【要手动提交事务方法--》set @@autocommit =0 默认是1】
																一旦设置为手动提交事务则必须自主提交,不然数据无法更新




////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 多表查询: 1.内连接 inner join on 【inner可以不写】 2.外连接 left join【左连接:查询左表的全部数据以及与右表交集部分数据】 right join【右连接:查询右表的全部数据以及与右表交集部分数据】 3.子查询 =(子查询语句【子查询语句输出的是单列单行数据时使用=】) in(子查询语句【子查询语句输出的是单列多行数据时使用in】) 约束: 1.非空约束 not null 2.唯一约束[自动添加] unique [auto_increment] 3.主键约束 primary key 4.默认约束 default 5.外键约束 constraint 外键名称 foreign key(外键字段名) references 主表名(主表列名) 数据库设计: 1.一对一 【例如:用户 和 用户详情 一对一关系多用于表拆分,将一个实体中经常使用的字段放一张表, 不经常使用的字段放另一张表,用于提升查询性能】 实现方式: 在任意一方加入外键,关联另一方主键,并且设置外键为唯一(UNIQUE) 2.一对多 【例如:部门 和 员工 一个部门对应多个员工,一个员工对应一个部门】 实现方式: 在多的一方建立外键,指向一的一方的主键 3.多对多 【例如:商品 和 订单 一个商品对应多个订单,一个订单包含多个商品】 实现方式: 建立第三张中间表,中间表至少包含两个外键,分别关联两方主键

 

标签:总结,SQL,t2,t1,dept,名称,使用,id,字段名
From: https://www.cnblogs.com/Lucky-only/p/16985396.html

相关文章

  • 数据分析之numpy使用
    dataanalysis什么是数据分析是把隐藏在一些看似杂乱无章的数据背后的信息提炼出来,总结出所研究对象的内在规律使得数据的价值最大化分析用户的消费行为制定促销......
  • 反编译apk_apktool使用
    apktool下载地址https://ibotpeaches.github.io/Apktool/install/安装说明至少已安装Java1.8吗?java-version在命令行/命令提示符下执行是否返回1.8或更高?如果没......
  • MySQL数据管理
    MySQL数据管理1.外键(了解)在创建表的时候,增加约束CREATETABLE`grade`( `gradeid`INT(10)NOTNULLAUTO_INCREMENTCOMMENT'年级id', `gradename`VARCHAR(50)N......
  • vue Socket-io使用
    api文档:https://socket.io/docs/v4/client-api/只需要下载它socket.io-client最新版本,可以不用vue-socket-io"socket.io-client":"^4.5.4",连接socketimport{io......
  • 待验证总结
    ​​1、避免过多if-else的几种方法 ​​2、​​ideapom.xml依赖版本号报错​​3、​​记录一个IDEA中MAVEN更新私服jar,download不下来的原因​​4、​​Java如何比较两......
  • 字节输入流读数据 使用字节数组
    importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.IOException;publicclassTest4{publicstaticvoidmain(String[]args)th......
  • SQL优化篇之-如何减少耗时查询的调用次数
    背景在查询语句中,如果Select子句中,调用较为耗时的函数或子查询,比较各种SQL语句的编写方案,得出其中最优选择。一、数据准备,SQL语句模拟较耗时的用户函数或子查询......
  • mysql binlog日志自动清理及手动删除
    说明当开启mysql数据库主从时,会产生大量如mysql-bin.00000*log的文件,这会大量耗费您的硬盘空间。如:mysql-bin.000001mysql-bin.000002mysql-bin.000003mysql-bin.0......
  • 【转】使用 UPX 压缩可执行文件
    URL:https://cloud.tencent.com/developer/article/1997890使用UPX压缩可执行文件发布于2022-05-0920:34:03阅读1.4K0 UPX 可以有效地对可执行文件进行压......
  • Fckeditor使用手册
    Head:<scripttype="text/javascript"src="editor_path/fckeditor.js"></script>Html:<textareaid="content"name="content"style="width:100%"></textarea>Javascript:va......