数据库相关的几个名词:
- DB: Database 数据库
- DBMS: DataBase Management System 数据库管理系统
- DBA: DataBase Administrator 数据库管理员
- SQL: Structured Query Language 结构化查询语言
1. SQL 基础
1.1 SQL 的特点
- 是关系数据库的标准语言
- 简单易学,功能极强,完成核心功能只用了9个动词:
SQL 功能 | 动词 |
---|---|
查询 | SELECT |
定义 |
CREATE 、 DROP 、 ALTER
|
操纵 |
INSERT 、 UPDATE 、DELETE
|
控制 |
GRANT 、 REVOKE
|
1.2 SQL 基本语法:
- SQL 的注释是以两个连字符(
--
)开头的 - 每个命令都要以分号结尾
- SQL 不区分关键字的大小写,但遵循大写关键字的书写惯例,有助于将关键字和数据库、表、列名区分开来
- 但是 SQL 对数据库名、表名、列名都是区分大小写的
- 每条命令是可以换行的
-- 创建一个数据库
CREATE DATABASE databaseName;
-- 删除一个数据库
DROP DATABASE databaseName;
-- 显示所有可用的数据库
SHOW DATABASE;
-- 使用已存在的名为 employees 数据库
USE employees;
-- 从当前数据库 employees 的 departments 表中选取所有行和列
SELECT * FROM departments;
-- 检索所有行,但只选取 dept_no 和 dept_name 两列
SELECT dept_no,
dept_name FROM departments;
-- 检索所有列,但只选取 5 行
SELECT * FROM departments LIMIT 5;
-- 从 departments 表中检索 dept_name 列的值,其中 dept_name 的值包含字符串 'en'
SELECT dept_name FROM departments WHERE dept_name LIKE '%en%';
-- 从 departments 表中检索所有列,其中 dept_name 列的值以 'S' 开头,并紧随其后为4个字符
SELECT * FROM departments WHERE dept_name LIKE 'S____';
-- 从 titles 表中选取 title 值并去重
SELECT DISTINCT title FROM titles;
-- 从 titles 表中选取 title 值并去重,同时还要以 title 排序(区分大小写)
SELECT DISTINCT title FROM titles ORDER BY title;
-- 显示 departments 表的行数
SELECT COUNT(*) FROM departments;
-- 选取 employees 表中的 emp_no、first_name 和 last_name 列,
-- titles 表中的 title、from_date、to_date 列,
-- 要满足一个条件: employees 表中的 emp_no 要和 titles 表中的 emp_no 相等
-- 从上述结果中选取 10 行
SELECT e.emp_no, e.first_name, e.last_name,
t.title, t.from_date, t.to_date
FROM titles AS t
INNER JOIN employees AS e
ON e.emp_no = t.emp_no LIMIT 10;
-- 在当前数据库中创建一个名为 names 的表,
-- 这张表有两个字段 first_name 和 last_name, 它们的数据类型都为 VARCHAR 且最大字符长度为 20
CREATE TABLE names (first_name VARCHAR(20), last_name VARCHAR(20));
-- 向 names 表中添加一条数据
INSERT INTO names VALUES('Donald', 'Chamberlin');
-- 将 names 表中所有 last_name 为 Chamberlin 的行中的 first_name 改为 Edward
UPDATE names SET first_name='Edward' WHERE last_name='Chamberlin';
-- 删除 names 表中所有 last_name 以 'C' 开头的行
DELETE FROM names WHERE last_name LIKE 'C%';
-- 删除 names 表中所有行,只保留一张空表
DELETE FROM names;
-- 删除整个 names 表
DROP TABLE names;
网友评论