目录
1. 数据库概述
什么是数据库
- 是一个存储数据的仓库。
- 本质上是一个文件系统,是以文件的方式存在服务器的电脑上的。
- 所有的关系型数据库都可以使用通用的SQL语句进行管理,即数据库管理系统 DBMS DataBase Management System。
数据库相关概念
- 数据库 DataBase(DB):存储数据的仓库,数据是有组织的进行存储。
- 数据库管理系统 DataBase Management System (DBMS):操纵和管理数据库的大型软件。
- SQL Structured Query Language:操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准,结构化查询语言。
2. SQL介绍
2.1 SQL概述
SQL作用:
- 是一种所有关系型数据库的查询规范,不同的数据库都支持。
- 通用的数据库操作语言,可以用在不同的数据库中。
- 不同的数据库 SQL 语有一些区别,如:MySQL与Oracle
SQL语句分类:
- Data Definition Language (DDL 数据定义语言), 如: 建库,建表
- Data Manipulation Language(DML 数据操纵语言),如: 对表中的记录操作增删改
- Data Query Language(DQL 数据查询语言),如: 对表中的查询操作
- Data Control Language(DCL 数据控制语言),如: 对用户权限的设置
2.2 DDL
2.2.1 DDL操作数据库
- 创建数据库:
- CREATE DATABASE 数据库名; ;
- CREATE DATABASE IF NOT EXISTS 数据库名;
- CREATE DATABASE 数据库名 CHARACTER SET 字符集;
- 查看数据库:
- show databases;
- show create database 数据库;
- 修改数据库:
ALTER DATABASE
数据库名
DEFAULT CHARACTER SET
字符集;
- 删除数据库:
DROP DATABASE
数据库名;
- 使用数据库:
- SELECT DATABASE();
- USE 数据库名;
2.2.2 DDL操作表结构
- 创建表:
CREATE TABLE
表名
(
字段名
1
字段类型
1
,
字段名
2
字段类型
2
)
;
- 查看表:
- 查看某个数据库中的所有表:SHOW TABLES;
- 查看表结构:DESC 表名;
- 查看创建的SQL语句:SHOW CREATE TABLE 表名;
- 快速创建一个表结构相同的表:
CREATE TABLE
新表名
LIKE
旧表名;
- 删除表:
- DROP TABLE 表名;
- DROP TABLE IF EXISTS 表名;
- 修改表结构:
- 添加表列: ALTER TABLE 表名 ADD 列名 类型;
- 修改列类型: ALTER TABLE 表名 MODIFY 列名 新的类型;
- 修改列名: ALTER TABLE 表名 CHANGE 旧列名 新列名 类型;
- 删除列: ALTER TABLE 表名 DROP 列名;
- 修改表名: RENAME TABLE 表名 TO 新表名;
- 修改字符集: ALTER TABLE 表名 character set 字符集;
2.3 DML操作表中数据
2.3.1 插入操作:
- 插入记录:
INSERT
[
INTO
]
表名
[
字段名
]
VALUES
(
字段值
)
;
- 插入全部字段:
INSERT INTO
表名
(
字段名
1
,
字段名
2
,
字段名
3
...
)
VALUES
(
值
1
,
值
2
,
值
3
)
;
INSERT INTO
表名
VALUES
(
值
1
,
值
2
,
值
3
...
)
;
- 插入部分数据:
INSERT INTO
表名
(
字段名
1
,
字段名
2
, ...
)
VALUES
(
值
1
,
值
2
, ...
)
;
2.3.2 蠕虫复制:
蠕虫复制:将一张已经存在的表中的数据复制到另一张表中。
- INSERT INTO 表名1 SELECT * FROM 表名2;
- INSERT INTO 表名1(列 1, 列 2) SELECT 列1, 列2 FROM 表2;
2.3.3 更新表记录
UPDATE 表名 SET 字段名=值 WHERE 字段名=值;
2.3.4 删除表记录
- DELETE FROM 表名 [WHERE 条件表达式]
- TRUNCATE TABLE 表名; // truncate相当于删掉表的结构,再创建一张新表。
2.4 DQL查询表中数据
- 简单查询:
- SELECT * FROM 表名;
- SELECT 字段名 1, 字段名 2, 字段名 3, ... FROM 表名;
- 指定列的别名进行查询:
- SELECT 字段名 1 AS 别名, 字段名 2 AS 别名... FROM 表名;
- SELECT 字段名 1 AS 别名, 字段名 2 AS 别名... FROM 表名 AS 表别名;
- 清除重复值:
SELECT DISTINCT
字段名
FROM
表名;
- 条件查询:
- SELECT 字段名 FROM 表名 WHERE 条件;
- SELECT 字段名 FROM 表名 WHERE 字段 in (数据 1, 数据 2...);
- SELECT 字段名 FROM 表名 WHERE 字段 BETWEEN 数据1 AND 数据 2;
- SELECT * FROM 表名 WHERE 字段名 LIKE '通配符字符串' ;
- 排序
SELECT 字段名 FROM 表名 WHERE 字段=值 ORDER BY 字段名 [ASC|DESC];
asc: 升序,默认值; desc: 降序;
- 分组:
SELECT 字段 1,字段 2... FROM 表名 GROUP BY 分组字段 [HAVING 条件];
- limit语句:
LIMIT offset
, length;
//限制查询记录的条数