SQL
Structured Query Language结构化查询语言,一门独立于数据库的操作命令,任何关系型数据库几乎都支持sql,
在不同的数据库管理系统(DBMS)存在细微差异
SQL分类
1.DDL数据定义语句(create,drop,alter...)2.DML数据操作语句(insert,update,delete,select 增删改查)
3.DCL数据控制语句(grant,revoke)
DDL语句使用
创建一个人事管理系统的数据库:OA
1.创建数据库实例
create database oa
2.使用数据库实例
use oa
3.创建数据表(员工表:工号,姓名,性别,职位,月薪)
create table emp
(
eno int,
ename varchar(32),
sex char(8),
ob varchar(16),
sal float
);
4.删除表中的指定列(前提是表中列没有数据)
alter table emp drop sex;
5.向表中新增一个列
alter table emp add dept varchar(16);
6.修改表中指定列的类型(前提是表中列没有数据)
alter table emp modify sal double;
7.删除表
drop table emp;
8.修改表中列名称
alter table emp change deptno dno int;
9.修改表名称
alter table emp rename to employee;
DML语句使用(数据操作语句)
1.向表中添加一条记录
insert into employee values(1,'唐僧','部门经理','110',18800.08,10);
insert into employee(eno,ename,sal) values(2,'孙悟空',800);
insert into employee(eno,ename) values(3,'猪八戒'),(4,'沙和尚'),(5,'白龙马');
2.删除数据
delete from employee where eno=2
3.修改数据
update employee set job='普通员工' where job is null;
4.查询数据
①单表查询
#显示所有员工信息
select * from emp
select eno,ename,job,phone,sal,dno from emp;
#查询所有的普通员工
select * from emp where job='普通员工';
#查询所有普通员工的姓名和月薪
select ename,sal from emp where job='普通员工';
#模糊查询,查询姓名中包含“悟”的员工
select * from emp where ename like '%悟%';
#模糊查询,查询姓名以“悟”结尾的员工
select * from emp where ename like '%悟';
#模糊查询,查询姓名长度为3个字符,中间为“悟”的员工
select * from emp where ename like '_悟_';
#模糊查询,查询姓名中不包含‘悟’的员工
select * from emp where ename not like '%悟%';
#查询1号部门中的所有员工
select * from emp where dno=1;
#查询月薪在5000~20000之间的所有员工的姓名和月薪以及部门号
select ename,sal,dno from emp where sal>=5000 and sal<=20000;
select ename,sal,dno from emp where sal between 5000 and 20000;
#查询1,2,3号员工的姓名,月薪,职位
select ename,job,sal from emp where eno in(1,2,3);
#查询除了1,2,3号员工以外的其他员工的姓名,月薪,职位,工号
select ename,job,sal from emp where eno not in(1,2,3);
②多表查询
select * from employee e, sal s where e.dno = s.dno;
数据完整性的维护 约束
主键约束 primary key
不为空约束 no null
唯一约束 unique
检查约束 check
外键约束 foreign key
触发器
#添加主键约束
alter table employee add constraint pk_eno primary key(eno);
#添加不为空约束同时设置默认值
alter table employee change ename ename varchar(32) not null default '匿名';
#添加不为空以及唯一约束
alter table department change dname dname varchar(32) not null unique;
#设置检查约束
alter table employee add constraint ck_sex check(sex in('男','女'));
#设置外键约束(被设置外键的列必须是另一个表的主键列)
alter table employee add constraint fk_dno foreign key(dno) references department(dno);