VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 数据库 > sql数据库 >
  • sql语句大全之SQL基础语法

简介
SQL是Structured Query Language的缩写,翻译过来就是结构化查询语言。SQL是用于管理关系型数据库而设计的语言。关系型数据库是值将数据组织在一张张表中形式的数据库。常见的关系型数据有:SQLite,MYSQL,Oracle DB,SQL Server,PostgreSQL。与关系型数据库对应的就是非关系型数据库(NoSQL)了,常见的有:Redis,MongoDB,CouchDB,LevelDB
 
关系型数据库与非关系型数据库区别,引用一段来之知乎的回答:
 
1.实质。 非关系型数据库的实质:非关系型数据库产品是传统关系型数据库的功能阉割版本,通过减少用不到或很少用的功能,来大幅度提高产品性能。
 
2.价格。目前基本上大部分主流的非关系型数据库都是免费的。而比较有名气的关系型数据库,比如Oracle、DB2、MSSQL是收费的。虽然Mysql免费,但它需要做很多工作才能正式用于生产。
 
3.功能。 实际开发中,有很多业务需求,其实并不需要完整的关系型数据库功能,非关系型数据库的功能就足够使用了。这种情况下,使用性能更高、成本更低的非关系型数据库当然是更明智的选择。
 
作者:pig pig 
链接:https://www.zhihu.com/question/24225007/answer/32091571 
来源:知乎 
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 
SQL操作
为了便于描述假设存在一个表,该表的名称是celebs,该表有四列。在SQL中表是由行和列组成,但是表按照列名进行分类。
 
id name age twitter_handle
INTEGER TEXT INTEGER TEXT
SELECT
毋庸置疑,SELECT是SQL里最常用的语句了,SELECT用于从表中选取列,结果被存储在一个结果集中。
 
//选择所有列
SELECT * FROM celebs;
1
2
//选择name这一列
SELECT name FROM celebs;
1
2
CREATE TABLE
CREATE TABLE用来创建一个表
 
//创建一个表,表的名称为table_name,该表有三列,列名分别为column_1,column_2,column_3.列中的数据类型分别为整形,文本,文本
CREATE TABLE table_name (
    column_1 INTEGER, 
    column_2 TEXT, 
    column_3 TEXT
  );
1
2
3
4
5
6
INSERT INTO
INSERT INTO用于向列中插入值
 
//分别向列id, name, age中插入 1, 'Justin Bieber', 21
INSERT INTO celebs (id, name, age) VALUES (1, 'Justin Bieber', 21);
1
2
UPDATE
用于修改表中的数据
 
//语法
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
1
2
//修改id=1这一行的age列的数据为22
UPDATE celebs SET age = 22 WHERE id = 1;
1
2
ALTER TABLE
修改表,用于增加,修改,删除列
 
//ADD COLUMN添加一个列
ALTER TABLE celebs ADD COLUMN twitter_handle TEXT;
1
2
//DROP COLUMN删除一个列
ALTER TABLE celebs DROP COLUMN twitter_handle;
1
2
DELETE
删除表中的行
 
//IS NULL表示值是NULL或者不存在,删除twitter_handle列中值不存在的行,WHERE后面会介绍
DELETE FROM celebs WHERE twitter_handle IS NULL;
1
2
SQL查询
为了便于表达,假设存在一张表,该表的名称为movies。该表有五列,分别是id,name, genre,year,imdb_rating,统计ID,电影名称,电影类型, 发行年份,评分。
 
DISTINCT
过滤重复的数据
 
SELECT DISTINCT * FROM movies;
1
WHERE
通过各种条件定位到具体的数据
 
操作符 描述
= 等于
<> 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于
BETWEEN 在某个范围内
LIKE 搜索某种模式
//统计评分高于8的电影
SELECT * FROM movies WHERE imdb_rating > 8;
1
2
LIKE
模糊匹配
 
//_通配一个字符
SELECT * FROM movies WHERE name LIKE 'Se_en';
1
2
//%通配任意多个字符
SELECT * FROM movies WHERE name LIKE '%man%';
1
2
BETWEEN
匹配一个范围
 
//查到year范围在1990到2000之间的电影
SELECT * FROM movies WHERE year BETWEEN 1990 and 2000;
1
2
AND
逻辑与
 
SELECT * FROM movies WHERE year BETWEEN 1990 and 2000 and genre = 'comedy';
1
OR
逻辑或
 
SELECT * FROM movies WHERE genre = 'comedy' AND year < 1980;
1
ORDER BY
h依据某一列进行排序,ASC是顺序排序,DESC是逆序排序。
 
SELECT * FROM movies ORDER BY year ASC;
1
SQL计算
为了便于表达,假设存在一张表,该表的名称为fake_apps.该表有五列,分别是:
 
列名 值类型
id INTEGER
name TEXT
category TEXT
downloads INTEGER
price REAL
COUNT()
COUNT()是最快的方式,统计一张表总共的行数。COUNT()函数的参数是一个列的名称,统计整个表所有的行数时,采用通配符*;
 
//统计整个表的行数
SELECT COUNT(*) FROM fake_apps;
 
//统计price为0的行数
SELECT COUNT(*) FROM fake_apps WHERE price = 0;
1
2
3
4
5
GROUP BY
GROUP BY <列名> 将一列中相同值的列分成一组
 
//按照价格进行分组,并统计每组元素的个数
SELECT price, COUNT(*) FROM fake_apps GROUP BY price;
 
//按照价格分组,但是只将downloads大于20000的作为分组对象,最后统计每组的数量
SELECT price, COUNT(*) FROM fake_apps WHERE downloads > 20000 GROUP BY price;
1
2
3
4
5
 
 
SUM()
SQL通过SUM()可以很容易统计一列的和
 
//计算downloads一列的和
SELECT SUM(downloads) FROM fake_apps;
1
2
//通过catagory进行分组,计算每组downloads的和
SELECT category, SUM(downloads) FROM fake_apps GROUP BY category;
1
2
MAX()
MAX()函数可以找到一列中的最大值
 
SELECT name, MAX(downloads) FROM fake_apps;
1
//按category进行分组,找到没组中的最大值
SELECT name, category, MAX(downloads) FROM fake_apps GROUP BY category;
1
2
MIN()
MIN()函数可以找到一列中最小的值,用法与MAX()相同
 
AVG()
AVG()函数计算一列的平均值,用法与MAX()相同
 
//计算同一种价格的平均下载量
SELECT price, AVG(downloads) FROM fake_apps GROUP BY price;
1
2
ROUND()
设定数值到指定的精度
 
//设定计算的平均值精度精确到小数点后两位
SELECT price, ROUND(AVG(downloads), 2) FROM fake_apps GROUP BY price;
1
2
多个表操作
PRIMARY KEY
在使用CREATE TABLE时为id添加PRIMARY KEY,PRIMARY KEY是一张表中每一行独一无二的标识,该表将id作为主键。通过主键将多个表联系起来。
 
CREATE TABLE artists(id INTEGER PRIMARY KEY, name TEXT)
1
本文是在学习SQL语言时做下的简单笔记,学习的网站是: 
https://www.codecademy.com/learn/learn-sql可以可视化学习和练习SQL语言,基础部分是免费的。
 
另外还有个网址总结了SQL语法便于速查,也记录在这: 
http://www.w3school.com.cn/sql/sql_intro.asp
--------------------- 
作者:oscarwin 
来源:CSDN 
原文:https://blog.csdn.net/shanghairuoxiao/article/details/75249317 
版权声明:本文为博主原创文章,转载请附上博文链接!

相关教程