
MySQL基础
文章平均质量分 50
「已注销」
这个作者很懒,什么都没留下…
展开
-
DQL:相关子查询与不相关子查询
1.不相关子查询引入:查询薪资比"clark"高的所有员工信息select sal from emp where ename="clark";-- 查询薪资为2450select * from emp where sal>2450也可以这样写select * from emp where sal>(select sal from emp where ename="clark")特点:含有多个select,先执行子查询再执行外查询,其中子查询可以独立运行,即:不相干子查询(1)单原创 2021-08-29 15:16:16 · 425 阅读 · 0 评论 -
DQL:多表查询与自连接查询
1.多表查询eg: 查询员工的编号,姓名,薪水,部门编号,部门名称,薪水等级信息(涉及dept表,emp表,salgrade表)select e.empno,e.ename,e.sal,d.deptno,d.dname,sg.*from emp eleft join dept don (e.deptno=d.deptno)join salgrade sgon(sal between losal and hisal)2.自连接查询查询员工的姓名,编号,上级编号,上级姓名(包括没有上级的原创 2021-08-29 11:27:45 · 200 阅读 · 0 评论 -
DQL:内连接查询与外连接查询
1.内连接查询:实际开发中往往需要针对两张甚至更多张数据表进行操作,而这多张表之间需要使用主键和外键关联在一起,然后使用连接查询来查询多张表中满足要求的数据记录。在SQL99中,连接查询需要使用join关键字实现。内连接查询的类型: cross natural using on(1)交叉连接(0CROSS JOIN):对两个或多个表进行笛卡尔积操作, 笛卡尔积不管是否匹配,都连接。没有实际意义,有理论意义。笛卡尔积便于理解连接查询的原理select *from dept cross j原创 2021-08-29 10:31:02 · 645 阅读 · 0 评论 -
DQL:group by和having子句
练习一:统计各个部门的平均工资,且只显示2000以上的方法一:使用group byselect avg(sal),deptno,max(sal)from empgroup by deptnohaving avg(sal)>2000order by max(sal) desc;方法二:使用where子句(不可取,错误的方法,因为where中不能使用多行函数)select deptno,avg(sal) ,count(1),max(sal)from emp where avg原创 2021-08-27 15:43:49 · 272 阅读 · 0 评论 -
DQL:单行函数与多行函数
1.单行函数:每一条记录输入值进行计算,并得到相应的计算结果,并返回给用户,即每条记录作为一个输入参数,经过函数计算得到每 条记录的计算结果。 常用的单行函数主要包括字符串函数、数值函数、日期与时间函数、流程函数以及其他函数。(1)字符串函数(部分):lower(str) upper(str) substring(str,index1,index2)select ename,job,lower(ename),upper(ename),lower(job) from emp;-- 大小写转换原创 2021-08-27 14:28:01 · 526 阅读 · 0 评论 -
DQL:简单的select语句书写(含where子句)
省略了展示向表中插入数据的语句create table DEPT(-- 部门表DEPTNO INT(2) NOT NULL, -- 部门编号 DNAME VARCHAR(14),-- 部门名称LOC VARCHAR(13)-- 部门地址);ALTER TABLE DEPT ADD CONSTRAINT PK_DEPT PRIMARY KEY (DEPTNO);CREATE TABLE EMP(-- 员工表EMPNO INT(4) PRIMARY KEY,-- 编号ENAME VARC原创 2021-08-26 17:06:38 · 179 阅读 · 0 评论 -
表的约束2与外键策略
首先,创建一张学生表和一张班级表,使它们通过班级编号产生关联(班级编号作为学生表的外码)1.外键的两种创建方式CREATE TABLE t_class(cno int(4) primary key auto_increment, -- 班级编号(主码)cname varchar(10) not null,-- 班级名称room char(4) -- 教室);create table t_student(sno int(6) primary key auto_increment,sname原创 2021-08-26 16:22:31 · 161 阅读 · 0 评论 -
表的约束1
1.列级约束create table student(-- 列级约束sno int(6) primary key auto_increment, -- 主键 自增name varchar(10) not null,-- 非空sex char(1) default"男" check(sex="男"||sex="女"),-- 默认值 check约束age int(2) check(age>18&&age<50),enterdate date,classname v原创 2021-08-26 15:09:23 · 128 阅读 · 0 评论 -
DML与DDL
首先,创建一张学生表studentcreate table student(sno int(6),-- 学号name varchar(10),sex char(1),age int(2),enterdate date,classname varchar(10), -- 课程名称email varchar(16) );desc student;-- 查看表的结构show create table student; --查看建表语言表结构如下:1.DML(针对表中的记录,数据):i原创 2021-08-26 13:42:53 · 91 阅读 · 0 评论 -
MySQL常识
1.数据库系统由数据库(DB),数据库管理系统(DBMS),数据库应用程序(DBAS),数据库管理员(DBA),最终用户组成。其中DBMS是基础及核心,这里指的DBMS指的是MySQL.2.MySQL使用SQL语言,属于关系型DBMS,具有跨平台,轻量级,低成本,开放源代码的特点。3.MySQL的默认端口33064....原创 2021-08-26 10:13:19 · 261 阅读 · 0 评论