sql是个结构化查询语言
说人话就是,它用各种语言命令去操作(多是查询)网站的数据库中的数据。
1.用sql做查询,需要先有一个能显示网站数据的网站
RDBMS 数据库程序(比如 MS Access、SQL Server、MySQL)
使用服务器端脚本语言,比如 PHP 或 ASP
使用 SQL 来获取您想要的数据
使用 HTML / CSS
安装好数据库程序后,要访问数据表?
sql的语言命令对大小写不敏感,需要在每句语句后加分号
2.SQL重要的操作有
select:从数据库中提取数据
update:更新数据库中的数据
delete:从数据库中删除数据
insert into:从数据库中删除数据
create database:创建新数据库
alter database:修改数据库
create table:创建新表
alter table:变更(改变)数据库表
drop table:删除表
create index:创建索引(搜索键)
drop index:删除索引
3. select语句:选择数据
SELECT column_name,column_name
FROM table_name;
例如:websites数据表
SELECT name,country FROM Websites;
选择的是数据表websites中name,country两列的数据
如果选择表中所有列的数据:
SELECT * FROM Websites;
4.select语句去除重复值
SELECT DISTINCT column_name,column_name
FROM table_name;
例如:
SELECT DISTINCT country FROM Websites;
5.where语句,用于过滤功能
SELECT column_name,column_name
FROM table_name
WHERE column_name operator value;
例如:
SELECT * FROM Websites WHERE country='CN';
文本字段 vs. 数值字段
SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。
在上个实例中 'CN' 文本字段使用了单引号。
如果是数值字段,不要使用引号。
例如:
SELECT * FROM Websites WHERE id=1;
运算符描述
=等于
<>不等于。注释:在 SQL 的一些版本中,该操作符可被写成 !=
>大于
<小于
>=大于等于
<=小于等于
BETWEEN在某个范围内
LIKE搜索某种模式
IN指定针对某个列的多个可能值
5.SQL AND & OR 运算符
如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。
例如:从 "Websites" 表中选取国家为 "CN" 且alexa排名大于 "50" 的所有网站
SELECT * FROM WebsitesWHERE country='CN'AND alexa > 50;
例如:从 "Websites" 表中选取国家为 "USA" 或者 "CN" 的所有客户
SELECT * FROM WebsitesWHERE country='USA'OR country='CN';
结合And&OR
从 "Websites" 表中选取 alexa 排名大于 "15" 且国家为 "CN" 或 "USA" 的所有网站
SELECT * FROM Websites WHERE alexa > 15AND (country='CN' OR country='USA');
6.ORDER BY 关键字
ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。
ORDER BY 关键字默认按照升序对记录进行排序。
如果需要按照降序对记录进行排序,您可以使用 DESC 关键字。
SQL ORDER BY 语法
SELECT column_name,column_name
FROM table_name
ORDER BY column_name,column_name ASC|DESC;
例如:从 "Websites" 表中选取所有网站,并按照 "alexa" 列排序
SELECT * FROM Websites ORDER BY alexa;
例如:从 "Websites" 表中选取所有网站,并按照 "alexa" 列降序排序
SELECT * FROM Websites ORDER BY alexa DESC
从 "Websites" 表中选取所有网站,并按照 "country" 和 "alexa" 列排序,先按照country列排序后,alexa再按照country列来排序
SELECT * FROM Websites ORDER BY country,alexa;
7.SQL INSERT INTO 语句插入新记录
INSERT INTO 语句用于向表中插入新记录,可以有两种编写形式
第一种形式无需指定要插入数据的列名,只需提供被插入的值即可:
INSERT INTO table_name
VALUES (value1,value2,value3,...);
第二种形式需要指定列名及被插入的值:
INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);
例如:要向 "Websites" 表中插入一个新行
INSERT INTO Websites (name, url, alexa, country)
VALUES ('百度','https://www.baidu.com/','4','CN');
在指定的列插入数据,只在 "name"、"url" 和 "country" 列插入数据(id 字段会自动更新),空余的alexa列会自动填充值0
INSERT INTO Websites (name, url, country)
VALUES ('stackoverflow', 'http://stackoverflow.com/', 'IND')
7.SQL UPDATE 语句更新表中的记录
UPDATE 语句用于更新表中已存在的记录,SQL UPDATE 语法
UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;
例如:要把 "菜鸟教程" 的 alexa 排名更新为 5000,country 改为 USA
UPDATE Websites SET alexa='5000', country='USA'
WHERE name='菜鸟教程';
8.SQL DELETE 语句删除表中的记录
DELETE 语句用于删除表中的行,SQL DELETE 语法
DELETE FROM table_name
WHERE some_column=some_value;
例如:要从 "Websites" 表中删除网站名为 "百度" 且国家为 CN 的网站
DELETE FROM Websites
WHERE name='百度' AND country='CN';