Django 学习笔记-6 数据库-1-SQL 基础

数据库相关的几个名词:

  • DB: Database 数据库
  • DBMS: DataBase Management System 数据库管理系统
  • DBA: DataBase Administrator 数据库管理员
  • SQL: Structured Query Language 结构化查询语言

1. SQL 基础

1.1 SQL 的特点

  • 是关系数据库的标准语言
  • 简单易学,功能极强,完成核心功能只用了9个动词:
SQL 功能 动词
查询 SELECT
定义 CREATEDROPALTER
操纵 INSERTUPDATEDELETE
控制 GRANTREVOKE

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;

Django 学习笔记-6 数据库-1-SQL 基础

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
飞哥的头像 - 鹿快
评论 共3条

请登录后发表评论