一.介绍
结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。
二.知识点介绍
1、语句结构
2、常用SQL
三.上课对应视频的说明文档
1、语句结构
1.1、数据查询语言(DQL:Data Query Language):
其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。这些DQL保留字常与其他类型的SQL语句一起使用。
1.2、数据操作语言(DML:Data Manipulation Language):
其语句包括动词INSERT,UPDATE和DELETE。它们分别用于添加,修改和删除表中的行。也称为动作查询语言。
1.3、事务处理语言(TPL):
它的语句能确保被DML语句影响的表的所有行及时得以更新。TPL语句包括BEGIN TRANSACTION,COMMIT和ROLLBACK。
1.4、数据控制语言(DCL):
它的语句通过GRANT或REVOKE获得许可,确定单个用户和用户组对数据库对象的访问。某些RDBMS可用GRANT或REVOKE控制对表单个列的访问。
1.5、数据定义语言(DDL):
其语句包括动词CREATE和DROP。在数据库中创建新表或删除表(CREAT TABLE 或 DROP TABLE);为表加入索引等。DDL包括许多与人数据库目录中获得数据有关的保留字。它也是动作查询的一部分。
1.6、指针控制语言(CCL):
它的语句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用于对一个或多个表单独行的操作。
2、常用SQL
(1) 增加
A、 insert into 表名[(字段1,字段2,字段3…)]values(值1,值2,值3…);
B、 insert into 表名 values(值1,值2,值3…);
(2) 查询
A、 select *|[字段1,字段2,字段N…] from 表名;
B、 select *|[字段1,字段2,字段N…] from 表名 where 条件;
条件:
> < >= <= != =
and or
not in in
between…and…
like
C、 select *|[字段1,字段2,字段N…] from 表名 order by 字段1 asc|desc,字段2 asc|desc;
(3)修改
update 表名 set 字段1=值1,字段2=值2… where 条件
(4)删除
delete from 表名 where 条件
案例:
新建一个学生信息表(students),对表进行,增加删除修改和查找。
表结构:
![](https://img.haomeiwen.com/i17390640/3db60edd533b1732.png)
表中的记录:
![](https://img.haomeiwen.com/i17390640/335452d313d976b7.png)
表的SQL操作:
(1)表的记录的增加
/*insert into 表名(字段名1,字段名2,。。。)values(字段值1,字段值2。。。。)*/
insert into students (name,xh,sex,age) values("李四","0002","女",20);
/*insert into 表名 values(字段值1,字段值2。。。。)*/
insert into students values(2,"王五","0003","男",21,"1103","2017-03-08","fdsafsafdds");
(2)表的记录的修改
#update 表名 set 字段名=字段值,字段名=字段值。。。 where 条件(字段名=字段值)。(= > < <> >= <=)
#如果没有条件,修改的是所有记录。
update students set name="张三",age=22 where id=3;
(3)表记录的删除
#delete from 表名 where 条件(字段名=字段值)
#如果没有条件,删除所有记录
delete from students where age>21;
(4)表记录的查询
#select 字段名,字段名、、、| * from 表名 where 条件(字段名=字段值) order by 字段名1,字段名2。。。。
select * from students;
select name,sex,age from students;
select * from students where age<>19; #> < >= <= <> =
select * from students where age between 19 and 21;# between...and...
select * from students where name like "李四"; # %任何字符 姓李=> “李%” 最后以四结尾=>“%四” 包含 四=> “%四%”
select * from students where name = "李四";
select * from students where name like "李%";
select * from students where name like "%四";
select * from students where name like "%四%";
select * from students where age=19 and sex="女"; # and 与
select * from students where age=19 or sex="女"; # or 或
select * from students where age in(19,20,21); # age=19 or age=20 or age=21
select * from students where age not in(19,20,21); #age<>19 and age<>20 and age<>21
网友评论