这篇blog是SQL基础语法,只是作为我平时查阅和备份,仅适合初学者学习阅读,高手绕行。
转载时注明地址
http://fuchangle.iteye.com/blog/1772523
SQL基础语法(1)访问
http://fuchangle.iteye.com/blog/1772395
索引
索引是存放在模式中的一个数据库对象,虽然索引总是从属于数据表,但它也和数据表一样属于数据库对象。创建索引的唯一作用
就是加速对表的查询,索引通过使用快速访问方法来快速定位数据,从而减少磁盘的I/O。
索引作为数据库对象,在数据字典里独立存放,但不能独立存在,必须属于某个表。
创建索引有两种方式
自动:当在表上定义主键约束、唯一约束和外键约束时,系统会为该数据列自动创建对应的索引。
手动:用户可以通过create index...语句来创建索引。
删除索引也有两种方式。
自动:数据表被删除时,该表上的索引自动被删除。
手动:用户可以通过drop index...语句来删除指定数据表上的指定索引。
创建索引的语法格式如下:
create index index_name
on table_name (column[,column]...);
下面的索引将会提高对employess表基于last_name字段的查询速度。
create index emp_last_name_idx
on employees(last_name);
也可以同时对多列建立索引如:
#下面语句为employees的first_name和last_name两列同时建立索引
create index emp_last_name_index
on employees(first_name, last_name);
MySQL中删除索引需要指定表,采用如下语法格式
drop index 索引名 on 表名
如下SQL语句删除了employees表中的emp_last_name_idx的索引
drop index emp_last_index
on employees;
索引缺点:
1.与书的目录相似,当数据表中的记录被添加、删除、修改时,数据库系统需要维护索引,因此有一定的系统开销。
2.存储索引信息需要一定的磁盘空间。
------------------------
视图
视图看上去非常像一个数据表,但它不是数据表,因为他并不能存储数据,视图只是一个或多个数据表中数据的逻辑显示。
优点:
1.可以限制对数据的访问。
2.可以使复杂的查询变的简单。
3.提供了数据的独立性。
4.提供了对相同数据的不同显示。
因为视图只是数据表中数据的逻辑显示--也就是一个查询结果,所以创建视图就是建立视图名和查询语句的关联。如下:
create or replace view 视图名
as
subquery
从上面的语法可以看出,创建、修改视图都可使用上面语法。上面语法的含义是,如果该视图不存在,则创建视图;如果指定的视
图名的视图已经存在,则使用新视图替换原有的视图。后面的subquery就是一个查询语句,这个查询可以非常复杂。
所谓视图的本质,其实就是一条被命名的SQL查询语句。
一旦建立了视图以后,使用该视图语使用数据表就没有上面区别了,但通常只是查询视图数据,不会修改视图里的数据,因为视图
本身就没有存储数据。
create or replace view view_test
as
select teacher_name, teacher_pass from teacher_table;
大部分时候,我们不推荐直接改变视图的数据,因为视图并不存储数据,它只是相当于一条命名的查询语句而已。为了强制不允许
改变视图的数据,mysql允许在创建视图时使用with check option字句,使用该字句创建视图不允许修改如下:
create or replace view view_test
as
select teacher_name form teacher_table
#指定不允许修改视图的数据
with check option;
删除视图使用如下语句:
drop view 视图名
如下SQL语句删除了前面刚刚创建的视图名
drop view view_test;
---------------------------------------------
DML语句的语法
与DDL操作数据库对象不同,DML主要操作数据表里的数据,使用DML可以完成以下3中任务:
1.插入新数据
2.修改已有的数据
3.删除不需要的数据
DML语句由insert into、update、和delete from 3个命令组成。
1.insert into语句
insert into用于向数据表中插入数据。对于标准的SQL语句而言,每次只能插入一条记录。insert into语法格式如下:
insert into table_name [(column[,column..]) values(value,[,vlaue...]);
执行插入操作时,表名后可以用括号列出所有需要插入值的列名,而value后用括号列出对应需要插入的值。
例如:
insert into teacher_table value ('xyz');
在一些特殊的情况下,我们可以使用带子查询的插入语句,带子查询的插入语句可以一次插入多条记录,
insert into student_table(student_name) select teacher_name from teacher_table2;
2.update语句
update语句用于修改数据表的记录,每次可以修改多条记录,通过使用where子句限定修改哪些记录。没有where子句则意味着where
表达式的值总是true,即该表的所有记录都会被修改,update语句的语法格式如下:
update teacher_table
set column1 = value1[,column=value2]...
[WHERE condition];
例如下:
update teacher_table2 set teacher_name = '孙悟空';
也可以通过添加where条件来指定只修改特定记录,如下:
update teacher_table
set teacher_name = '猪八戒'
where teacher_id > 1;
3.delete from 语句
delete from语句用于删除指定数据表的记录。使用delete from语句删除时不需要指定列名,因为总是正行地删除。
使用delete from语句可以一次删除多行,删除哪些行采用where字句限定,只删除满足where条件的记录。没有where字句限定将会
把表里的全部记录删除。
delete from语句的语法格式如下:
delete from table_name
[WHERE condition];
如下SQL语句将会把student_table2表中的全部记录全部删除:
delete from studnet_table2
也可以使用where条件来限定只删除指定记录,如下SQL语句所示:
delete form teacher_table2 where teacher_id > 2;
待续...
分享到:
相关推荐
SQL语法,SQL语句大全,SQL基础;SQL语法,SQL语句大全,SQL基础
sql server 基础语法,适合初学者学习观看。
易飞SQL常用基础语法易飞SQL常用基础语法易飞SQL常用基础语法易飞SQL常用基础语法
SQL 基础 SQL 首页 SQL 简介 SQL 语法 SQL select SQL distinct SQL where SQL AND & OR SQL Order By SQL insert SQL update SQL delete SQL 高级 SQL Top SQL Like SQL 通配符 SQL In SQL Between ...
一、基础 1、说明:创建数据库 Create DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建 备份数据的 device USE master EXEC sp_addumpdevice '...
适合教学使用的SQL语法课件,内容相对精炼。
从难到易,从陌生到熟习
sql的一些查询、删除、更新、插入、创建、修改的基本语法、考试的时候可以当作小炒、公司笔试的时候效果更佳,有实践证明的!
sql操作,sql基本语法 sql操作,sql基本语法
sql基础手册sql基础手册sql基础手册sql基础手册
SQL常用语法基础\SQL常用语法基础.doc
SQL 语法基础教程 简单介绍 以及范例 不错的入门教程
进度00-SQL基础语法.docx
SQL 存储过程 基础语法 SQL 存储过程 基础语法 SQL 存储过程 基础语法
文档包括三部分,包括sql语句的基础语法和一些简单的小测试,最后有比较综合的练习,是之前学习sql时候做的笔记,希望对大家有帮助
适合sql基础学习,oracle基本函数,多表查询 ,外连接
SQL语句语法,合适需要入门的同学学习,很基础的内容,需要可以下载。
SQL语法.rar sql 命令基础语法 与大家分享
本教材重点讲解了,关于sql server 的基础语法,包含但不限于标识符,数据类型,表达式,控制流语句,增删改查,简单查询,高级查询,分组,排序,视图的基本操作等知识点的详解。同时附有视频学习地址。希望能帮助...
Oracle的一些基础语法脚本,适用于有一定基础的朋友下载,作为笔记使用,经常敲一下或看一下。