mysql>use RUNOOB; #use, 选择某个数据库
Database changed
mysql>set names utf8; #对names这一列使用utf8编码
QueryOK,0rows
mysql>SELECT * FROM Websites; #从websites这个数据库里读取数据
SQL - structured query language, 关系型数据库
数据库通常分为层次式数据库、网络式数据库和关系式数据库三种。而不同的数据库是按不同的数据结构来联系和组织的。而在当今的互联网中,最常见的数据库模型主要是两种,即关系型数据库和非关系型数据库。
关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。在关系型数据库中,对数据的操作几乎全部建立在一个或多个关系表格上,通过对这些关联的表格分类、合并、连接或选取等运算来实现数据库的管理。
关系型数据库诞生40多年了,从理论产生发展到现实产品,例如:Oracle和MySQL
NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。
一些最重要的 SQL 命令
SELECT- 从数据库中提取数据
UPDATE- 更新数据库中的数据
DELETE- 从数据库中删除数据
INSERT INTO- 向数据库中插入新数据
CREATE DATABASE- 创建新数据库
ALTER DATABASE- 修改数据库
CREATE TABLE- 创建新表
ALTER TABLE- 变更(改变)数据库表
DROP TABLE- 删除表
CREATE INDEX- 创建索引(搜索键)
DROP INDEX- 删除索引
Select语句
select column1, column2 from TABLE1; #选取两列
select * from TABLE1; 选取所有列
select DISTINCT shoptype from sh_table; #选取餐厅种类中的唯一值,即类型的列表,结果只有这一列
SELECT * FROM Websites WHERE country='CN'; #选取websites表格中,国家名是CN的所有项
SELECT * FROM Websites WHERE id=1; #选数字的时候,不要用引号
where里面可以用的运算符包括>=, =<, != (<>), between, LIKE(模糊), IN(在某个值之间)
SELECT * FROM Websites
WHERE alexa > 15 #某个值大于15
AND (country='CN' OR country='USA'); 并且满足(国家是CN或者USA)
升序(ASC)、降序排列(DESC)
SELECT * FROM Websites
ORDER BY alexa DESC;
也可以按两列排序:
SELECT * FROM Websites
ORDER BY country,alexa;
插值
在指定列插入数值:
INSERT INTO Websites (name, url, country)
VALUES ('stackoverflow', 'http://stackoverflow.com/', 'IND');
即在name, url, country三个列插入数值,数值为stackoverflow等
更新(更改值)
假设我们要把 "菜鸟教程" 的 alexa 排名更新为 5000,country 改为 USA。
我们使用下面的 SQL 语句:
UPDATE Websites
SET alexa='5000', country='USA'
WHERE name='菜鸟教程';
如果没有where条件,就把所有的值都改了。
删除
假设我们要从 "Websites" 表中删除网站名为 "百度" 且国家为 CN 的网站 。
我们使用下面的 SQL 语句:
DELETE FROM Websites
WHERE name='百度' AND country='CN';
网友评论