SQL操作
CREATE TABLE
CREATE TABLE用来创建一个表
//创建一个表,表的名称为table_name,该表有三列,列名分别为column_1,column_2,column_3.列中的数据类型分别为整形,文本,整形
CREATE TABLE table_name (
column_1 INTEGER,
column_2 TEXT,
column_3 INTEGER
);
eg:
CREATE TABLE table_test (
id INTEGER,
name TEXT,
age INTEGER
);
INSERT INTO
INSERT INTO用于向列中插入值
//分别向列id, name, age中插入 1, 'Justin Bieber', 21
INSERT INTO table_test (id, name, age) VALUES (1, 'Justin Bieber', 21);
//插入多条数据
1、MySQL数据库:
INSERT INTO table_test (id, name, age)
SELECT 1, 'Justin Bieber', 21
UNION SELECT 2, 'Marry', 25
UNION SELECT 3, 'JOJO', 23 ;
INSERT DELAYED INTO `table_test ` (`id`, `name`, `age`) VALUES
(1, 'Justin Bieber',21),
(2, 'Marry', 25),
(3, 'JOJO',23);
2、oracle数据库:
-----------第一种插入方式---------------
INSERT INTO table_test (id, name, age) VALUES (1, 'Justin Bieber',21);
INSERT INTO table_test (id, name, age) VALUES (2, 'Marry',25);
INSERT INTO table_test (id, name, age) VALUES (3, 'JOJO',23);
-----------第两种插入方式---------------
INSERT INTO table_test (id, name, age)
SELECT 1, 'Justin Bieber',21 FROM dual UNION ALL
SELECT 2, 'Marry',25 FROM dual UNION ALL
SELECT 3, 'JOJO',23 FROM dual;
UPDATE
用于修改表中的数据
//语法
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
//修改id=1这一行的age列的数据为22
UPDATE table_test SET age = 22 WHERE id = 1;
ALTER TABLE
修改表,用于增加,修改,删除列
//ADD COLUMN添加一个列
ALTER TABLE table_test ADD COLUMN address TEXT;
//DROP COLUMN删除一个列
ALTER TABLE table_test DROP COLUMN address ;
DELETE
删除表中的行
//IS NULL表示值是NULL或者不存在,删除age列中值不存在的行
DELETE FROM table_test WHERE age IS NULL;
SQL查询
DISTINCT
过滤重复的数据
SELECT DISTINCT * FROM table_test ;
SELECT DISTINCT age FROM table_test ;
WHERE
通过各种条件定位到具体的数据
操作符 描述
= 等于
<> 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于
BETWEEN 在某个范围内
LIKE 搜索某种模式
//统计age大于24的数据
SELECT * FROM table_test WHERE age > 24;
LIKE
模糊匹配
//_通配一个字符
SELECT * FROM table_test WHERE name LIKE 'Mar_y';
//%通配任意多个字符
SELECT * FROM table_test WHERE name LIKE '%Bieber%';
BETWEEN
匹配一个范围
//查到age范围在23到30之间的数据
SELECT * FROM table_test WHERE age BETWEEN 23 and 30;
AND
逻辑与
//查到age范围在23到30之间的数据
SELECT * FROM table_test WHERE age >= 23 and age <= 30;
OR
逻辑或
//查到age范围不在在23到30之间的数据
SELECT * FROM table_test WHERE age <= 23 or age >= 30;
等同于
SELECT * FROM table_test WHERE age not BETWEEN 23 and 30;
ORDER BY
//依据某一列进行排序,ASC是顺序排序,DESC是逆序排序。
SELECT * FROM table_test ORDER BY age ASC;
SQL计算
COUNT()
COUNT()是最快的方式,统计一张表总共的行数。COUNT()函数的参数是一个列的名称,统计整个表所有的行数时,采用通配符*;
//统计整个表的行数
SELECT COUNT(*) FROM table_test ;
//统计age为25的行数
SELECT COUNT(*) FROM table_test WHERE age= 25;
GROUP BY
GROUP BY <列名> 将一列中相同值的列分成一组
//按照age进行分组,并统计每组元素的个数
SELECT age, COUNT(*) FROM table_test GROUP BY age;
SUM()
SQL通过SUM()可以很容易统计一列的和
//计算age一列的和
SELECT SUM(age) FROM table_test ;
MAX()
MAX()函数可以找到一列中的最大值
SELECT MAX(age) FROM table_test ;
MIN()
MIN()函数可以找到一列中最小的值,用法与MAX()相同
AVG()
AVG()函数计算一列的平均值,用法与MAX()相同
ROUND()
设定数值到指定的精度
//设定计算的平均值精度精确到小数点后两位
SELECT ROUND(AVG(age), 2) FROM table_test;
多个表操作
PRIMARY KEY
在使用CREATE TABLE时为id添加PRIMARY KEY,PRIMARY KEY是一张表中每一行独一无二的标识,该表将id作为主键。通过主键将多个表联系起来。
CREATE TABLE table_test (id INTEGER PRIMARY KEY, name TEXT)