0%

常用SQL语句

SQL是什么

SQL是一种结构化查询语言(或者说一种访问和操作数据库的语言)

SQL的作用

使用SQL对关系型数据库中的数据进行定义和操作的语言

SQL 面向数据库执行查询 在数据库中插入新的记录 更新数据库中的数据 从数据库删除记录

SQL 可创建新数据库 在数据库中创建新表 在数据库中创建视图

SQL 可以设置表、存储过程和视图的权限

SQL的特点

SQL语言简洁,语法简单,好学好用 SQL是一种结构化查询语言

SQLite 存储数据类型

每个存储在 SQLite 数据库中的值都具有以下存储类之一:

数据类型 描述

NULL ( null )值是一个 NULL 值。

INTEGER ( integer ) 值是一个带符号的整数,根据值的大小存储在 1、2、3、4、6 或 8 字节中。

REAL ( real )值是一个浮点值,存储为 8 字节的 IEEE 浮点数字。

TEXT (text)值是一个文本字符串,使用数据库编码(UTF-8、UTF-16BE 或 UTF-16LE)存储。

BLOB( blob ) 值是一个 blob 数据,完全根据它的输入存储。

SQLite 的存储类稍微比数据类型更普遍。INTEGER 存储类,例如,包含 6 种不同的不同长度的整数数据类型。

SQL语句的种类

SQL语句主要分两部分,DDL DML DQL

DDL(Data Definition Langunumber、数据定义语句)

DDL是我们创建和删除数据库

DDL 创建,删除和修改数据库中的表 (create table或 drop table)

DDL用来创建 和删除索引(搜索键 )

DML(Data Manipulation Langunumber、数据操作语句)

DML是我们对数据库进行SELECT-获取数据,INSERT INTO-插入数据,

UPDATE-更新数据, DELETE-删除数据的执行语句

DQL(Data Query Langunumber、数据查询语句)

可以用于查询获得表中的数据

关键字select是DQL(也是所有SQL)用得最多的操作

其他DQL常用的关键字有where,order by,group by和having

DDL语句的基本使用

删除表

DROP TABLE IF EXISTS ‘表名’;

创建表

CREATE TABLE IF NOT EXISTS ‘表名’ ( ‘字段名’ 类型(INTEGER, REAL, TEXT, BLOB) NOT NULL 不允许为空 PRIMARY KEY 主键 AUTOINCREMENT 自增长, ‘字段名2’ 类型, … )

具体使用:

CREATE TABLE IF NOT EXISTS ‘t_people’ ( “id” INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, “name” TEXT, “number” INTEGER, “height” REAL )

语句说明

  • CREATE TABLE:创建一张表
  • IF NOT EXISTS:不存在则创建
  • ‘t_people’:表的名称
  • NOT NULL:不允许为空
  • PRIMARY KEY:主键
  • AUTOINCREMENT:自动增加
  • ‘id’ INTEGER:有一个ID字段,类型是INTEGER

DML语句的基本使用

插入数据

INSERT INTO ‘t_people’ (name, number, height) VALUES (‘why’, 18, 1.88);

语句说明

1
2
3
4
5
6
7
8
9
10
11
INSERT INTO: 插入数据
‘t_people’: 在哪一个表中插入数据
(数据的字段): 给哪些字段插入数据
VALUES (‘why’, 18, 1.88): 插入的具体值
更新数据
UPDATE ‘t_people’ SET 字段 = ‘值’ WHERE 条件判断;
语句说明
UPDATE: 跟新数据
‘t_people’: 在哪一个表中更新数据
SET 字段 = ‘值’: 更新怎样的数据
WHERE 条件判断: 更新哪些数据

具体使用

1
2
3
4
5
UPDATE t_people SET name = ‘a’ WHERE number = 14;
UPDATE t_people SET name = ‘b’ WHERE number is 20;
UPDATE t_people SET name = ‘c’ WHERE number < 20;
UPDATE t_people SET name = ‘d’ WHERE number < 100 and score > 60;
UPDATE t_people SET name = ‘ly’;

删除数据

1
2
DELETE FROM t_people;
DELETE FROM t_people WHERE number < 30;

语法说明

1
2
3
DELETE FROM: 从表中删除数据
t_people : 表名
可以跟条件也可以不跟:不跟表示删除所有的数据

DQL语句的基本使用

查询语句

基本查询(查询整个表格)

SELECT * FROM t_people;

查询某些字段(查询name和number两个字段)

SELECT name, number FROM t_people;

通过条件判断来查询对应的数据(年龄大于等于18)

SELECT * FROM t_people WHERE number >= 18;

通过条件判断来查询对应的数据(名字以i开头),使用like关键字(模糊查询)

SELECT * FROM t_people WHERE name like ‘%i%’;

计算个数

计算一共多少列

SELECT count(*) FROM t_people;

计算某一个列个数

SELECT count(number) FROM t_people;

排序

升序 ASC (默认是升序)

SELECT * FROM t_people ORDER BY number;

降序 DESC

SELECT * FROM t_people ORDER BY number DESC;

按照年龄升序排序,如果年龄相同,按照名字的降序排列

SELECT * FROM t_people ORDER BY number,name DESC;

起别名

给列起别名(as可以省略)

SELECT name AS myName, number AS mynumber FROM t_people;

给表起别名

SELECT s.name, s.number FROM t_people as s;

limit

SELECT * FROM t_people LIMIT 数字1,数字2;

跳过前9条数据,再查询3条数据

SELECT * FROM t_people LIMIT 9, 3;

跳过0条数据,取5条数据

SELECT * FROM t_people LIMIT 5;