1、数据库的基本类型

1.关系数据库

特点:以表和表的关联构成的数据结构

优点:能表达复杂的数据关系。强大的查询语言,能精确查找想要的数据

缺点:读写性能比较差,尤其是海量数据的读写。数据结构比较死板

用途:存储结构复杂的数据

代表:Oracle、MySql、Sql Server

2.非关系型数据库

特点:简单的结构存储数据,文档型,键值对

优点:格式灵活,海量数据读写效率很高

缺点:难以表示复杂的数据结构,对于复杂查询效率不好

用途:存储结构简单的数据

代表:MongoDB,Redis,Membase

3.面向对象数据库

2、数据库术语

DB: database 数据库

DBA:database administrator 数据库管理员

DBMS:database management system 数据库管理系统

DBS:database system 数据库系统

3、数据库基本语句

1.创建库

create database db1 charset utf8;

2.查找库

show create database db1;

3.切换当前库  

use db1;

 4.删除库

drop database db1;

4、表记录的增删改查

1.增 CREATE

增加一条数据:
INSERT INTO student ( 字段1, 字段2,字段3,字段4... )
VALUES (值1,值2,值3,值4...);

增加多条数据(用,分隔开即可):
INSERT INTO student ( 字段1, 字段2,字段3,字段4... )
VALUES (值1,值2,值3,值4...),
(值1,值2,值3,值4...);

2.改 UPDATE

UPDATE student SET `字段`='值'    //修改字段的所有值
WHERE id=num;                    //修改增加条件

3.删 DELETE

ELETE FROM 表名             //清空
WHERE name='值';        //增加条件删除

4.查 select

4.1单表查询

select

*,as,case,distinct

from

where

=,in,is,is not,>,<,>=,<=,between,like,and,or

order by

asc 升序,desc降序

limit(n,m)

n,m 跳过n条数据,取出m条数据

运行顺序

from -> where -> select -> order by -> limit

4.2联表查询

左连接

左外连接,left join

右连接

右外连接,right join

内连接

inner join

5.练习语句

单表查询
-- 1. 查询user表,得到账号为admin,密码为admin的用户
-- 登录

SELECT * FROM `user` WHERE loginId = 'admin' and loginPwd = 'admin' 

-- 2. 查询员工表,按照员工的入职时间降序排序,并且使用分页查询
-- 查询第3页,每页5条数据

SELECT * FROM `employee`  ORDER BY joinDate DESC LIMIT 10,5

-- 3. 查询工资最高的女员工

SELECT * FROM employee WHERE `ismale` = 0 AND salary=(select max(salary)from employee)

联表查询
-- 1. 创建一张team表,记录足球队
-- 查询出对阵表

SELECT t1.name,t2.name FROM team as t1 , team as t2 WHERE t1.name != t2.name

-- 2. 显示出所有员工的姓名、性别(使用男或女显示)、入职时间、薪水、所属部门(显示部门名称)、所属公司(显示公司名称)

SELECT e.name'姓名', CASE ismale WHEN 1 THEN "男" ELSE "女" END as '性别',e.joinDate'入职时间',e.salary'薪资',d.`name`'部门',c.`name`'公司' FROM employee as e INNER JOIN department as d ON e.deptId = d.id INNER JOIN company as c ON c.id = d.companyId;

-- 3. 查询腾讯和蚂蚁金服的所有员工姓名、性别、入职时间、部门名、公司名

SELECT e.name '姓名',CASE ismale WHEN 1 THEN "男" ELSE "女" END as '性别',e.joinDate '加入时间',e.salary '薪资',d.`name`'部门',c.`name`'公司' FROM company as c INNER JOIN department as d ON c.id = d.companyId INNER JOIN employee as e ON d.companyId = e.deptId WHERE c.id in (1,3)

-- 4. 查询百里半教学部的所有员工姓名、性别、入职时间、部门名、公司名

SELECT e.name'姓名',e.ismale'性别',e.joinDate'入职时间',d.name'部门',c.name'公司' FROM company as c INNER JOIN department as d ON c.id = d.companyId INNER JOIN employee as e ON e.deptId = d.id WHERE c.`name` = "百里半" and d.`name` = "教学部"

-- 5. 列出所有公司员工居住的地址(要去掉重复)

SELECT DISTINCT location FROM employee

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐