热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

数据库相关的几个名词: DB: Database 数据库 DBMS: DataBase Management System 数据库管理系统 DBA: DataBase Administrato

数据库相关的几个名词:

  • 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 基础

推荐阅读
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • C# 7.0 新特性:基于Tuple的“多”返回值方法
    本文介绍了C# 7.0中基于Tuple的“多”返回值方法的使用。通过对C# 6.0及更早版本的做法进行回顾,提出了问题:如何使一个方法可返回多个返回值。然后详细介绍了C# 7.0中使用Tuple的写法,并给出了示例代码。最后,总结了该新特性的优点。 ... [详细]
  • Oracle分析函数first_value()和last_value()的用法及原理
    本文介绍了Oracle分析函数first_value()和last_value()的用法和原理,以及在查询销售记录日期和部门中的应用。通过示例和解释,详细说明了first_value()和last_value()的功能和不同之处。同时,对于last_value()的结果出现不一样的情况进行了解释,并提供了理解last_value()默认统计范围的方法。该文对于使用Oracle分析函数的开发人员和数据库管理员具有参考价值。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • Java学习笔记之使用反射+泛型构建通用DAO
    本文介绍了使用反射和泛型构建通用DAO的方法,通过减少代码冗余度来提高开发效率。通过示例说明了如何使用反射和泛型来实现对不同表的相同操作,从而避免重复编写相似的代码。该方法可以在Java学习中起到较大的帮助作用。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • MySQL外键1对多问题的解决方法及实例
    本文介绍了解决MySQL外键1对多问题的方法,通过准备数据、创建表和设置外键关联等步骤,实现了用户分组和插入数据的功能。详细介绍了数据准备的过程和外键关联的设置,以及插入数据的示例。 ... [详细]
  • Python SQLAlchemy库的使用方法详解
    本文详细介绍了Python中使用SQLAlchemy库的方法。首先对SQLAlchemy进行了简介,包括其定义、适用的数据库类型等。然后讨论了SQLAlchemy提供的两种主要使用模式,即SQL表达式语言和ORM。针对不同的需求,给出了选择哪种模式的建议。最后,介绍了连接数据库的方法,包括创建SQLAlchemy引擎和执行SQL语句的接口。 ... [详细]
  • Day2列表、字典、集合操作详解
    本文详细介绍了列表、字典、集合的操作方法,包括定义列表、访问列表元素、字符串操作、字典操作、集合操作、文件操作、字符编码与转码等内容。内容详实,适合初学者参考。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
author-avatar
mobiledu2502926247
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有