SQL学习记录

简介: 个人SQL学习记录

========================================================================================

========================================================================================

2017/09/11


一、创建表格

CREATE TABLE db(col1 textType, col2 textType, ....);

PRIMARY KEY 主键

二、删除表格

DROP TABLE db;

三、在db中插入数据

INSERT INTO db(col1, col2, ...) VALUES (val1, val2, ...);

四、删除db中的数据

DELETE FROM db WHERE condition;

五、查询db中的数据

1. 按条件查找

SELECT col1, col2, ... FROM db WHERE condition1 (AND/OR condition2) (IN (val1, val2, ...) (BETWEEN val1 AND val2) (LIKE condition) );

2. 按照某列的值分类

SELECT col1, col2, ... FROM db GROUP BY col1 (HAVING condition);

3. 按照升序/降序排列

SELECT col1, col2, ... FROM db WHERE condition (/GROUP BY col1) ORDER BY col ASC/DESC;

4. 查找某一列中有哪些值

SELECT DISTINCT col1 FROM db;

5. 对某列使用别名

SELECT col1 AS new_col_name FROM db;

六、更新表格中的数据

UPDATE db SET col = new_value WHERE condition;

七、函数

COUNT() -- 计算db中有多少项资料被选出

SUM() -- 计算db col栏的总数

AVG() -- 计算db col栏的平均值

MAX() -- 计算db col栏的最大值

MIN() -- 计算db col栏的最小值


之前参加某个公司的笔试题中有这么一个数据库的题

超市有一个数据库db:

customer      good       cnt

甲                  A             2

乙                  B             3

丙                  C             1

甲                  A             2

乙                  B             3

要求找出买了两种不同类型的顾客



SELECT customer FROM db GROUP BY customer HAVING COUNT(good) == 2;



==参加笔试的时候还没有学习过SQL,木有做出来19.gif


================================================================================

================================================================================

2017/9/13

这几天学了下python,附上上面数据库查询的python实现(插入代码中居然没有python选项。。)

import sqlite3

#create db
conn = sqlite3.connect('shop.db')
#achieve db cursor
cu = conn.cursor()

cur = cu.execute("select count(*) from sqlite_master where type = 'table' and name = 'shoplist'")
if cur.fetchone():
    #drop table
    cu.execute("drop table shoplist")
    conn.commit()

#create table
cu.execute("create table shoplist (customer text, good text, cnt integer)")
#insert data
cu.execute("insert into shoplist (customer, good, cnt) values ('甲', 'A', 2)")
cu.execute("insert into shoplist (customer, good, cnt) values ('乙', 'B', 3)")
cu.execute("insert into shoplist (customer, good, cnt) values ('丙', 'C', 1)")
cu.execute("insert into shoplist (customer, good, cnt) values ('甲', 'B', 2)")
cu.execute("insert into shoplist (customer, good, cnt) values ('乙', 'C', 3)")
conn.commit()

#select data
cursor = cu.execute("select customer from shoplist group by customer having count(good) == 2")
print("Customer bought two type good:")
for row in cursor.fetchall():
    print("customer =", row[0])

输出结果:

Customer bought two type good:
customer = 乙
customer = 甲


目录
相关文章
|
2月前
|
SQL 存储 关系型数据库
【MySQL基础篇】全面学习总结SQL语法、DataGrip安装教程
本文详细介绍了MySQL中的SQL语法,包括数据定义(DDL)、数据操作(DML)、数据查询(DQL)和数据控制(DCL)四个主要部分。内容涵盖了创建、修改和删除数据库、表以及表字段的操作,以及通过图形化工具DataGrip进行数据库管理和查询。此外,还讲解了数据的增、删、改、查操作,以及查询语句的条件、聚合函数、分组、排序和分页等知识点。
【MySQL基础篇】全面学习总结SQL语法、DataGrip安装教程
|
3月前
|
SQL 安全 前端开发
Web学习_SQL注入_联合查询注入
联合查询注入是一种强大的SQL注入攻击方式,攻击者可以通过 `UNION`语句合并多个查询的结果,从而获取敏感信息。防御SQL注入需要多层次的措施,包括使用预处理语句和参数化查询、输入验证和过滤、最小权限原则、隐藏错误信息以及使用Web应用防火墙。通过这些措施,可以有效地提高Web应用程序的安全性,防止SQL注入攻击。
105 2
|
8月前
|
SQL 存储 程序员
SQL查询的一些基本知识和学习指导
【6月更文挑战第17天】SQL查询核心包括基础选择、连接(JOIN)、子查询、聚合函数与GROUP BY、模糊匹配(LIKE)、分页与排序。JOIN操作连接多表,GROUP BY配合聚合函数做统计,LIKE用于模糊搜索。理解存储过程、触发器及自动增长列等进阶概念,通过实践提升SQL技能。
115 2
|
4月前
|
SQL 存储 数据库
SQL学习一:ACID四个特性,CURD基本操作,常用关键字,常用聚合函数,五个约束,综合题
这篇文章是关于SQL基础知识的全面介绍,包括ACID特性、CURD操作、常用关键字、聚合函数、约束以及索引的创建和使用,并通过综合题目来巩固学习。
105 1
|
6月前
|
SQL 存储 关系型数据库
PostgreSQL核心之SQL基础学习
PostgreSQL核心之SQL基础学习
87 3
|
8月前
|
SQL 存储 Java
SQL数据库学习指南:从基础到高级
SQL数据库学习指南:从基础到高级
|
7月前
|
SQL 存储 关系型数据库
关系型数据库SQL Server学习
【7月更文挑战第4天】
109 2
|
8月前
|
SQL 数据库
零基础学习数据库SQL语句之操作表中数据的DML语句
零基础学习数据库SQL语句之操作表中数据的DML语句
81 0
零基础学习数据库SQL语句之操作表中数据的DML语句
|
8月前
|
SQL 存储 关系型数据库
【数据库】SQL零基础入门学习
【数据库】SQL零基础入门学习
86 3
|
8月前
|
SQL 存储 关系型数据库
sql学习数据库
SQL(Structured Query Language)是用于管理关系型数据库的标准编程语言。学习SQL数据库涉及理解数据库的基本概念、SQL语言的结构和语法,以及如何使用SQL来查询、插入、更新

热门文章

最新文章