首页 > 数据库技术 > 详细

SQL学习笔记

时间:2019-08-15 09:34:10      阅读:72      评论:0      收藏:0      [点我收藏+]

一、SQL 简介

1. SQL(Structured Query Language),指结构化查询语言,让您可以访问和处理数据库。

2. SQL可以面向数据库执行查询、可从数据库取回数据、可在数据库中插入新的记录、可更新数据库中的数据、可从数据库删除记录
可创建新数据库、可在数据库中创建新表、可在数据库中创建存储过程、可在数据库中创建视图、可以设置表、存储过程和视图的权限。

3. 表是数据库对象,一个数据库通常包含一个或多个表。每个表有一个名字标识(例如:"Websites"),表包含带有数据的记录(行)。

4. MySQL 安装:https://www.runoob.com/mysql/mysql-install.html

 

三、SQL语法

1. SQL对大小写不敏感,SELECT 与 select 是相同的。

2. 某些数据库系统要求在每条 SQL 语句的末端使用分号。分号是在数据库系统中分隔每条 SQL 语句的标准方法,这样就可以在对服务器的相同请求中执行一条以上
的 SQL 语句。

3. SQL中使用单引号或双引号括住的是文本,没有用引号括住的是数值。

 

四、SQL 命令

一些最重要的 SQL 命令

SELECT - 从数据库中提取数据
UPDATE - 更新数据库中的数据
DELETE - 从数据库中删除数据
INSERT INTO - 向数据库中插入新数据
CREATE DATABASE - 创建新数据库
ALTER DATABASE - 修改数据库
CREATE TABLE - 创建新表
ALTER TABLE - 变更(改变)数据库表
DROP TABLE - 删除表
CREATE INDEX - 创建索引(搜索键)
DROP INDEX - 删除索引

 

1. SELECT 语句

SELECT 语句用于从数据库中选取数据,结果被存储在一个结果表中,称为结果集。

格式:

SELECT column1_name,column2_name FROM table_name;
SELECT * FROM table_name;

举例:

SELECT name,country FROM Websites; //从"Websites"表中选取name和country列
SELECT * FROM Websites; //从Websites表中选取所有列
SELECT * FROM Persons WHERE ROWNUM <=5; //从Persons表中选择前5列数据
SELECT * FROM Websites LIMIT 2; //只选出Websites表中所有列的前2行
SELECT TOP 50 PERCENT * FROM Websites; //选出Websites表中所有列的前50%的数据
select top 5 * from table;    //选出表table的前5行
select top 5 * from table order by id desc //选出表table的后5行,desc表示降序排列,asc表示升序
SELECT DISTINCT country FROM Websites; //选出country列,重复相同的内容舍去。

MySQL 支持 LIMIT 语句来选取指定的条数数据

 

2. WHERE

WHERE子句用于过滤记录,提取那些满足指定条件的记录。

格式:

SELECT column1_name,column2_name
FROM table_name
WHERE column1_name operator value;

例子:

SELECT * FROM Websites WHERE country=CN; //选中所有的列,选中country=‘CN’的行
SELECT * FROM Websites WHERE id=1; //选中所有的列,选中id列中值为1的行

WHERE 子句中的运算符:
= 等于
<> 不等于。注意,在SQL的一些版本中,也可被写成 !=
> 大于
< 小于
>= 大于等于
<= 小于等于
BETWEEN 在某个范围内
LIKE 搜索某种模式,进行模糊查询
IN 指定针对某个列的多个可能值

逻辑运算的优先级:()  not  and  or

例子:

select * from emp where ename=SMITH; //选中ename列为SMITH的行
select * from emp where sal > 2000 and sal < 3000; //选中sal列中的值在2000~3000之间的行
Select * from emp where sal between 2000 and 3000; //选中sal列中的值在2000~3000之间的行
select * from emp where sal > 2000 or comm > 500; //选中sal列中的值大于2000 或 comm 列中值大于500的行
select * from emp where not sal > 1500; //选中sal列中不大于1500的行
select * from emp where comm is null; //判断为空的列
Select * from emp where sal in (5000,3000,1500); //查询EMP表sal列中等于5000,3000,1500的行。
select * from emp where ename like M%; 
/*
查询emp表中ename列中有M的值的行,M为要查询内容中的模糊信息。
% 表示多个字值,_ 下划线表示一个字符,
M% : 为能配符,正则表达式,表示的意思为模糊查询信息为 M 开头的。
%M% : 表示查询包含M的所有内容。
%M_ : 表示查询以M在倒数第二位的所有内容。
*/

 

3. AND & OR 运算符

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

实例:

SELECT * FROM Websites
WHERE alexa > 15
AND (country=CN OR country=USA); //sql中‘=’是等号

 

4. ORDER BY 关键字

ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序,默认按照升序对记录进行排序,如果需要按照降序对记录进行排序,可以使用 DESC 关键字。

格式:

SELECT column1_name,column2_name
FROM table_name
ORDER BY column1_name,column2_name ASC|DESC;

实例:

SELECT * FROM Websites
ORDER BY alexa;    //默认是升序排列

SELECT * FROM Websites
ORDER BY alexa DESC; //使用降序排列

SELECT * FROM Websites
ORDER BY country,alexa; //按多列进行排序,首先会按country排序,在此基础上再按alexa排序

 

5. INSERT INTO 语句

INSERT INTO 语句用于向表中插入新记录。

格式:

INSERT INTO table_name
VALUES (value1,value2,value3,...); //不指定插入数据的列名,只提供插入的值。

INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...); //需要指定列名及被插入的值。

实例:

INSERT INTO Websites (name, url, alexa, country)
VALUES (百度,https://www.baidu.com/,4,CN); //这里没有指定第一列的id,但是id会自动化变化

insert into selectselect into from 的区别
insert into table1 select * from table2 where neza=abc //将表2的neza列为abc的行插入到表1中,要求表table1必须存在
select * into table1 from table2 where neza=abc //将表2的neza列为abc的行插入到表1中,要求表table1不存在

 

6. SQL UPDATE 语句

UPDATE 语句用于更新表中的记录。

格式:

UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value; //WHERE子句规定哪条记录或者哪些记录需要更新。如果您省略了 WHERE 子句,所有的记录都将被更新!

 

7. SQL DELETE 语句

DELETE 语句用于删除表中的行。

格式:

DELETE FROM table_name
WHERE some_column=some_value; //WHERE子句规定哪条记录或者哪些记录需要删除。如果您省略了 WHERE 子句,所有的记录都将被删除!

删除所有的数据:

DELETE FROM table_name;
或
DELETE * FROM table_name; //删除记录时要格外小心,因为不能重来!

 

 

参考:https://www.runoob.com/sql/sql-delete.html

 

SQL学习笔记

原文:https://www.cnblogs.com/hellokitty2/p/11355683.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!