-
DB :“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此 独立的数据集合。
-
DB类型
-
关系数据库 :MySQL,Oracle数据库
-
非关系型数据库:BigTable(Google)
-
-
DBA : 数据库管理员
-
DBMS : 数据库管理系统:数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使 用和维护数据库,简称DBMS。
-
DBAS : 数据库应用系统:数据库应用系统(DBAS)是在数据库管理系统(DBMS)支持下建立的计算机应用系统,简写为
DBAS。
-
SQL : 结构化查询语言:
-
数据库中以表为组织单位存储数据。表中有行和列,我们叫做记录和字段
SQL语句
-
SQL分类:
-
数据定义语言:简称DDL(Data Definition Language),用来定义数据库中的对象:数据库,表,列等。关键字:create,alter,drop, show等
-
n 数据操作语言:简称DML(Data Manipulation Language),用来对数据库中表的记录进行更新。关键字:insert,delete,update等
-
数据控制语言:简称DCL(Data Control Language),用来定义数据库的访问权限和安全级别,及创建用户。
-
n 数据查询语言:简称DQL(Data Query Language),用来查询数据库中表的记录。关键字:select,from,where等
-
-
1.1.1 SQL通用语法
-
SQL语句可以单行或多行书写,以分号结尾
-
可使用空格和缩进来增强语句的可读性
-
l MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。例如:SELECT * FROM user。
-
同样可以使用/**/的方式完成注释 在Sqlyog中也可以是 #或者- -注释一行
-
l MySQL中的我们常使用的数据类型如下
-
DDL之数据库操作
-
创建数据库(增):
-
create database 数据库名 character set 字符集;
-
-
查看数据库(查)
-
show databases;
-
show create database 数据库名;
-
-
删除数据库(删)
-
select database();
-
1.1 DDL之表操作:table
-
创建表
-
create table 表名(
字段名 类型(长度) [约束],
字段名 类型(长度) [约束],
...
);
类型:
varchar(n) 字符串
int 整形
double 浮点
date 时间
timestamp 时间戳
约束(后期讲解,现在先知道):
primary key 主键,被主键修饰字段中的数据,不能重复、不能为null。
-
例如:
# 创建分类表
CREATE TABLE category (
cid VARCHAR(100) primary key, # 分类ID
cname VARCHAR(100) # 分类名称
);
-
-
查看表
-
show tables;
-
desc 表名;
-
-
删除表
-
drop table category;
-
-
修改表(只改名字)
-
rename table 表名 to 新表名;
-
RENAME TABLE category TO category2;
-
DDL之表结构操作:列
-
对表的结构进行操作(主要是操作表中的列)
-
alter table 表名 add 列名 类型(长度) [约束]
-
ALTER TABLE category ADD
description
VARCHAR(20); -
alter table 表名 drop 列名
-
ALTER TABLE category DROP description;
-
alter table 表名 change 旧列名 新列名 类型(长度) 约束
-
ALTER TABLE category CHANGE
description
description2 VARCHAR(30); -
alter table 表名 modify 列名 类型(长度) 约束;
-
ALTER TABLE category MODIFY
description2
VARCHAR(50) NOT NULL;
-
-
约束
-
primary key 主键,值唯一,并且不能为空
-
auto_increment 自动增长,数据可以由MySQL系统自己维护
-
DML数据操作语言
-
插入表记录:insert(增)
-
insert into 表 (字段1,字段2,字段3..) values (值1,值2,值3..);
-
值与字段的数据类型必须对应,个数相同,类型相同
-
值的数据大小必须在字段的长度范围内
-
除了数值类型外,其它的字段类型的值必须使用引号引起。(建议单引号)
-
如果要插入空值,可以不写字段,或者插入null
-
Into 不是必须的,可以省略不写
-
-
更新表记录:update(改)
-
update 表名 set 字段名=值,字段名=值,...;
-
列名的类型与修改的值要一致.
-
修改值得时候不能超过最大长度.
-
除了数值类型外,其它的字段类型的值必须使用引号引起
-
-
删除记录:delete(删)
-
delete from 表名 [where 条件];
-
DQL数据查询语言
-
语法:select [distinct] * | 列名1,列名2 from 表 [where 条件]
注 :
[] 可有可无
| 或者
-
select * from product;
-
SELECT * FROM product WHERE price != 800
-
-
排序
-
SELECT * FROM 表名 ORDER BY 排序字段ASC|DESC;
ASC 升序 (默认)
DESC 降序
-
SELECT DISTINCT price FROM product ORDER BY price DESC
-
-
聚合
-
count:统计指定列不为NULL的记录行数;
-
sum,max,min,avg
-
SELECT COUNT(*) FROM product;
-
-
分组
-
SELECT 字段1,字段2… FROM 表名GROUP BY分组字段 HAVING 分组条件;
-
having与where的区别:
-
having是在分组后对数据进行过滤.where是在分组前对数据进行过滤
-
having后面可以使用统计函数过滤数据where后面不可以使用统计函数。
-
-
-
分页查询
-
SELECT 字段1,字段2... FROM 表明 LIMIT M, N ;
M: 整数,表示从第几条索引开始,计算方式 (当前页-1)*每页显示条数
N: 整数,表示查询多少条数据
-
SELECT 字段1,字段2... FROM 表明 LIMIT 0,5 ;
-
SQL约束
-
数据完整性
-
实体完整性: 对数据行的约束,比如:主键约束,唯一约束
-
域完整性: 对数据列的约束,比如:该列的数据类型, 默认约束,非空约束
-
引用完整性: 外键约束(多表的关系)
-
-
主键约束
-
主键必须是唯一的值。
主键列不能是 NULL 值。
每个表都应该有且只能有一个主键。
-
添加主键约束
-
方式一:创建表时,在字段描述处,声明指定字段为主键:Id_P int PRIMARY KEY,
-
方式二:创建表时,在constraint约束区域,声明指定字段为主键:
-
CREATE TABLE Person100(
FirstName varchar(255),
LastName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT pk_PersonID PRIMARY KEY (FirstName,LastName)
);
-
方式三:创建表之后,通过修改表结构,声明指定字段为主键:
-
-
删除主键约束
-
ALTER TABLE Person102 DROP PRIMARY KEY ;
-
-
自动增长列
-
P_Id int PRIMARY KEY AUTO_INCREMENT,
-
-
非空约束NOT NULL
-
LastName varchar(255) NOT NULL,
-
添加非空约束 ALTER TABLE student MODIFY LastName varchar(255) NOT NULL
-
-
唯一约束
-
UNIQUE 约束唯一标识数据库表中的每条记录。
UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。
PRIMARY KEY 拥有自动定义的 UNIQUE 约束。
请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。
-
Id_P int UNIQUE
-
CREATE TABLE Person13(
Id_P int,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT UNIQUE (Id_P)
) ;
-
ALTER TABLE Persons4 ADD [CONSTRAINT 名称] UNIQUE (Id_P)
-
-
删除唯一约束
-
ALTER TABLE Person DROP INDEX 约束名称
-
-
默认约束
-
address varchar(255) DEFAULT '北京',
-
ALTER TABLE Person MODIFY Address VARCHAR(255) DEFAULT '北京'
-