**~什么是数据库,什么是数据库管理系统,什么是sql,他们之间的关系是什么**
**数据库**:
英文单词database,简称DB . 按照一定格式存储数据的一些文件的组合。
顾名思义:存储数据的仓库,实际上就是一堆文件。这些文件中存储了具有特定格式的数据。
**数据库管理系统:**
databasemanagement,简称dbms
数据库管理系统是专门用来管理数据库中的数据的,数据库管理系统可以对数据库当中的数据进行增删改查。
常见的数据库管理系统统:Mysql 、oracle、ms、sqlserver、db2、sybase等
sql:结构化查询语言
程序员需要学习sql语句,程序员通过编写sql语句,然后dbms负责执行sql预计,最终来完成数据库长的增删改查操作。
sql是一套标准,程序员主要学习的就是sql语句,这个sql在mysql中可以使用,同事在oracle中也可以使用,在db2中也可以使用
三者之间的关系:
dbms>通过执行执行sql语句>操作数据库db
net stop 服务名称 停止
net start 服务名称 启用
关于sql语句的分类?
sql语句有很多,最好进行愤懑别类,这样更容易记忆。
分为:
DQL:
数据查询语言(分时带有select关键字的都是查询语句)
select....
DML:
数据操作语言(凡是对表当中的数据进行增删改的都是DML)
insert delete update
insert 增
delete 删
update 改
这个主要是操作表中的数据data.
DDL:数据定义语言
凡是带有create、drop、alter的都是DDL
DDL主要操作的是表的结构。不是表中的数据。
create:新建,等同于增
drop:删除
alter:修改
这个增删改和DML不同,这个主要是对表结构进行操作。
TCL:
是事务控制语言
包括:
事务提交:comnit;
事务回滚:roollback;
DCL:
是数据控制语言。
例如:授权grant、撤销权限revoke.....
select version(); 查看mysql数据库的版本号;
show databases; 查看自带数据库
ues 库名; 使用此数据库
create daatabase yinzhe; 创建数据库名字为yinzhe
show tables; 查看自带表
select * from biaoming; 从这个表里查询所有数据
desc biaoming; 看表的结构,类型
select database();查看当前使用数据库
select dname from dept; 查询部门名字
select deptno,dname from dept; 查询编号和部门名;两个字段用','隔开
select deptno,dname as deptname from dept; 给查询的列该别名 使用as关键字起别名。可以用空格代替
注意:在所有的数据库当中,字符串同意使用单引号括起来,单引号是标准,双引号在oracle数 据库中用不了,但是在mysql中可以使用。(双引号不标准)
select ename,sal*12 from emp; 查询员工名字和工资*112,就是员工的年薪
输出名字就是ename 和sal*12 如果不喜欢名字sal*12可以使用as该别名
select ename,sal*12 as '年薪' from emp; 如果是中文记得加单引号
select empno,ename,sal from emp where sal < 2000; 查询薪资小于2000的,员工编号,员工姓名
select empno,ename, sal from emp where ename = 'SMITH'//字符串使用单引号
或者select
empno,ename,sal
from
emp
where
sal between 2450 and 3000; 查询薪资在2450和3000之间的员工信息包括2450和3000;
select rand() from emp; 生成随机数
select round(rand()*100,0) from emp;100以内的随机数
ifnull 可以将null转换成一个具体值
ifnull 是空处理函数。专门处理空的。
在所有数据库中,只要有null参与的数学运算,最终结果就是null
select ename, sal + comm as salcomm from emp; 查询ename将薪资加补助输出salcomm有null的结果为null 数据库里有null就会输出空
计算每个员工的年薪 年薪 = (月薪 + 月补助)*12
select ename,(sal + comm) * 12 as yearsal from emp; 会查出null
select ename,(sal + ifnull(comm,0)) * 12 as yearsal from emp; ifnull函数用法:ifnull(数据,被当作哪个值)比如:如果"comm"为null的时候,把这个数据当作0
case(匹配某个东西)...when(当满足什么)...then(怎么作)...when...then...else(其他情况怎么做)...end
当员工的工作岗位是manager的时候,工资上调10%,当工作岗位是salesman的时候,工资上调50%,其他正常
select
ename,
job,
sal as oldsal,
(case job when 'manager'then sal*1.1 when 'salesman' then sal*1.5 else sal end) as newsal
from
emp;