SQL基础教程

SQL简介

1.sql是什么

sql 是用于访问和处理数据库的标准的计算机语言。

sql 指结构化查询语言,全称是 Structured Query Language。

sql 让您可以访问和处理数据库。

sql 是一种 ANSI(American National Standards Institute 美国国家标准化组织)标准的计算机语言。

2.sql能做什么

sql 面向数据库执行查询

sql 可从数据库取回数据

sql 可在数据库中插入新的记录

sql 可更新数据库中的数据

sql 可从数据库删除记录

sql 可创建新数据库

sql 可在数据库中创建新表

sql 可在数据库中创建存储过程

sql 可在数据库中创建视图

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

SQL语法

1.一些最重要的sql命令

use runoob; 命令用于选择数据库。

set names utf8; 命令用于设置使用的字符集。

select - 从数据库中提取数据

update - 更新数据库中的数据

delete - 从数据库中删除数据

insert into - 向数据库中插入新数据

create database - 创建新数据库

alter database - 修改数据库

create table - 创建新表

alter table - 变更(改变)数据库表

drop table - 删除表

create index - 创建索引(搜索键)

drop index - 删除索引

select

select 用于从数据库中选取数据

select * from table_name;

1.实例

select name,country from table_name;

select distinct

select distinct 用于返回唯一不用的值

1.实例

select distinct country from table_name;

where 子句

where 子句用于过滤记录

1.实例

select * from table_name where country='CN';

2.文本字段 vs 数值字段

sql使用单引号来环绕文本值(大部分数据库系统也接受双引导)

在上个实例中 'CN' 文本字段使用了单引号。

如果是数值字段,请不要使用引号。

select  * from table_name where id=1;

3.where子句中的运算符

下面的运算符可以在 WHERE 子句中使用:

运算符 描述
= 等于
<> 不等于。注释:在 SQL 的一些版本中,该操作符可被写成 !=
> 大于
< 小于
>= 大于等于
<= 小于等于
BETWEEN 在某个范围内
LIKE 搜索某种模式
IN 指定针对某个列的多个可能值

and & or 运算符

AND & OR 运算符用于基于一个以上的条件对记录进行过滤。

如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。

如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。

1.and运算符实例

下面的 SQL 语句从 "Websites" 表中选取国家为 "CN" 且alexa排名大于 "50" 的所有网站:

SELECT * FROM Websites WHERE country='CN' AND alexa > 50;

2.or运算符实例

下面的 SQL 语句从 "Websites" 表中选取国家为 "USA" 或者 "CN" 的所有客户:

SELECT * FROM Websites WHERE country='USA' OR country='CN';

3.结合and & or

下面的 SQL 语句从 "Websites" 表中选取 alexa 排名大于 "15" 且国家为 "CN" 或 "USA" 的所有网站:

SELECT * FROM Websites WHERE alexa > 15 AND (country='CN' OR country='USA');

 order by 关键字

ORDER BY 关键字用于对结果集进行排序。

    用于对结果集按照一个列或者多个列进行排序。

    默认按照升序对记录进行排序。如果需要按照降序对记录进行排序,您可以使用 DESC 关键字。

1.order by

下面的 SQL 语句从 "Websites" 表中选取所有网站,并按照 "alexa" 列排序:

SELECT * FROM Websites ORDER BY alexa;

2.order by desc

下面的 SQL 语句从 "Websites" 表中选取所有网站,并按照 "alexa" 列降序排序:

SELECT * FROM Websites ORDER BY alexa DESC;

3.order by  多列

下面的 SQL 语句从 "Websites" 表中选取所有网站,并按照 "country" 和 "alexa" 列排序:

SELECT * FROM Websites ORDER BY country,alexa;

备注:

ORDER BY 多列的时候

order by A,B        这个时候都是默认按升序排列
order by A desc,B   这个时候 A 降序,B 升序排列
order by A ,B desc  这个时候 A 升序,B 降序排列

即 desc 或者 asc 只对它紧跟着的第一个列名有效,其他不受影响,仍然是默认的升序。

insert into

用于向表中插入新记录。

    1.INSERT INTO table_name  VALUES (value1,value2,value3,...);

    2.INSERT INTO table_name (column1,column2,column3,...)  VALUES (value1,value2,value3,...);
  备注: insert into select 和select into from 的区别
insert into scorebak select * from socre where neza='neza' --插入一行,要求表scorebak 必须存在

select * into scorebak from score where neza='neza' --也是插入一行,要求表scorebak 不存在

update

用于更新表中已存在的记录。

***请注意 SQL UPDATE 语句中的 WHERE 子句!
    WHERE 子句规定哪条记录或者哪些记录需要更新。如果您省略了 WHERE 子句,所有的记录都将被更新!
1.实例:
UPDATE table_name SET alexa='5000', country='USA' WHERE name='Ailun';
2.Update警告!

在更新记录时要格外小心!在上面的实例中,如果我们省略了 WHERE 子句,如下所示:

UPDATE table_name SET alexa='5000', country='USA'

执行以上代码会将表中所有数据的 alexa 改为 5000,country 改为 USA。

执行没有 WHERE 子句的 UPDATE 要慎重,再慎重。

delete

用于删除表中的记录(行)。

1.实例

假设我们要从表中删除网站名为 "Facebook" 且国家为 USA 的网站。

DELETE FROM table_name WHERE name='Facebook' AND country='USA';

2.删除所有数据

可以在不删除表的情况下,删除表中所有的行。这意味着表结构、属性、索引将保持不变:

DELETE FROM table_name;

或

DELETE * FROM table_name;

 

 

上一篇:关于AngularJS 表格用法


下一篇:MySQL - 视图