数据库:
数据库通常分为层次式数据库、网络式数据库和关系式数据库三种。
最常见的数据库模型主要是两种,即SQL关系型数据库和NoSQL非关系型数据库。
关系型数据库:Oracle、MySQL、DB2、Microsoft SQL Server、Microsoft Access等等
非关系型数据库
键值存储数据库(key-value):Redis
列存储(Column-oriented)数据库:HBase
面向文档(Document-Oriented)数据库:MongoDB
数据库的定义:数据库(Database,简称DB)是长期储存在计算机内、有组织的、可共享的大量数据集合
数据库管理系统(DBMS)是位于用户与操作系统之间的一层数据管理软件。
数据库系统(DBS),是由数据库及其管理软件组成的系统
数据库由表、关系以及操作对象组成
SQL指结构化的查询语言
SQL语句的分类:
DDL: 数据定义语言,用于创建数据库、表、列
创建:create 修改: alter 删除: drop
DML: 数据操纵语言 用于对表中的数据的添加、删除、修改、查询
DCL: 数据控制语言 用于授予和撤销权限
创建数据库:
create database bbs;
查看mysql中的数据库:
show databases;
使用当前数据库:
use 数据库名;
显示当前数据库中的所有表:
show tables;
删除数据库:
drop database bbs;
查看表结构:
desc emp;
复制一个表的结构和约束:
create table newemp like emp;
复制表结构及数据,但不复制约束:
create table 复制出的表 as select*from 原表
约束(是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性、唯一性)的分类:
主键: primary key 不允许重复,不允许出现空值,最多只允许一个主键
外键: foreign key references 主键表(字段)
唯一: unique 不允许重复,但可以有多个null 可以有多个唯一约束
非空: not null
自增: auto_increment 必须是整型,必须是主键
默认: default
额外向表中追加字段:
alter table dept add address varchar(100);
DML中对数据的插入:
全表插入: insert into 表名 values(值,值)
部分插入: insert into 表名(列名,列名) values(值,值)
对数据的更新:
update 表名 set 字段名=值,字段名=值 where 条件
对数据的删除:
delete from 表名 where 条件
limit 下标(从0开始) , 记录数 取出查询结果中的部分数据
分组:
select classid 班级编号,count(*) 人数 from stu group by classid having count(*)>1;
为表名或列名起别名: select 列名 新列名 from 表名 新表名
select 列名 as 新列名 from 表名 as 新表名
mysql中的比较运算符: = 等于 <>或!= 代表不等于
列名 between 值1 and 值2 等价于 列名>=值1 and 列名<=值2
like模糊查询: Select * from score where cno like ‘3%’
空值
IS NULL为空
IS NOT NULL不为空
多重条件
NOT与其它条件组合,表式反意
AND使多个条件同时满足(交集)
OR多个条件之一满足(并集)
distinct 去重复 select distinct upass from tbl_user;
case ...end 条件的用法:
select sno,cno,
case
when degree>=90 then 'A'
when degree>=80 then 'B'
when degree>=70 then 'C'
when degree>=60 then 'D'
else 'E'
end rank
from score
聚合函数:
COUNT(col)返回指定列中非NULL值的个数
AVG(col)返回指定数值列的平均值
MIN(col)返回指定数值列的最小值
MAX(col)返回指定数值列的最大值
SUM(col)返回指定数值列的所有值之