MYSQL
- 
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
descriptionVARCHAR(20); - 
alter table 表名 drop 列名
 - 
ALTER TABLE category DROP description;
 - 
alter table 表名 change 旧列名 新列名 类型(长度) 约束
 - 
ALTER TABLE category CHANGE
descriptiondescription2 VARCHAR(30); - 
alter table 表名 modify 列名 类型(长度) 约束;
 - 
ALTER TABLE category MODIFY
description2VARCHAR(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 '北京',
 - 
 
 - 
 
                    
                
                
            
        
浙公网安备 33010602011771号