一、基础语句介绍

SQL 可以分为两个部分:数据操作语言(DML)和数据定义语言(DDL)

1、数据操作语言(DML)基本指令:

select       从数据表中获取数据(现阶阶段,二次开发常用)

update     更新数据库表中的数据

delete      从数据库表中删除数据

insert into 向数据库表中插入数据

2、数据定义语言(DDL)基本指令:

create database      创建新数据库

alter database                  修改数据库

create table    创建新表

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

drop table 删除表

create index    创建索引(搜索键)

drop index       删除索引

Ps: 因为不需要构建一个新的系统(在这里也可以理解为一个前端项目),不需要分析存储数据的类型等内容,所以关于数据定义语言(DDL)部分不进行介绍,主要掌握数据操作语言(DML)的基本指令, 尤其是selelct。这里暂时仅整理关于select 查询指令的内容。

二、数据操作语言(DML)指令

SELECT

Select  列名1,列名2  from 表名称     从表中获取对应的列名1,列名2...对应的数据

Select  *  from 表名称      从表中获取所有列名对应的数据

结果均存储在一个结果表中(也就是sql sever 的结果界面中)

例如下里表persons中数据进行查询:

Select  LastName,firstname from persons  (ps:sql 语言不区分大小写,但是习惯单词首字母大写)

persons表:

Id

LastName

FirstName

Address

City

1

Adams

John

Oxford

London

2

Bush

George

Fifth

New York

3

Carter

Thomas

Changan

Beijing

上述查询结果如下:

LastName

FirstName

Adams

John

Bush

George

Carter

Thomas

Select  *  From Persons 查询时结果与persons表的形式一样

Ps:星号(*)是选取所有列的快捷方式

DISTINCT

distinct为sql 关键字,主要用来剔除重复的数据值,返回唯一不同的值。

语法:Select distinct 列名 from 表名

WHERE 子句

主要用途:根据已知条件从表中选取数据

语法:select  列名 from  表名 where  列 运算符 值

运算符可如下:

=

等于

<>

不等于

>

大于

<

小于

>=

大于等于

<=

小于等于

BETWEEN

在某个范围内

LIKE

搜索某种模式

Ps: 在某些版本的sql 中 ,操作符<>可以写成!=。

如果值为字符类型的需要用单引号环绕

Select  *  from 表名 where 列 = ‘值’  该值为字符非数字类 , 若是值为数值是可以去除单引号。否则可能出现错误提示 例如:

文本

数值

 

AND 和 OR

AND  和 OR 可以把where 子语句中两个或多个条件结合起来

AND :所有条件都满足

OR :只要有一个条件满足即可

Ps: 下述例子中 = 的位置可以根据要求替换其他运算符; 理论上条件可以无限制的增加到列n,但是在此处只用两个条件, 条件数目增加与两个条件的结果类似;列1与列2可以相同,请根据实际要求;’条件n’ 等同于 ‘列n=值n’

Select     *       from  表 where  列1 = 值1  and  列2= 值2

查询显示的结果为表中同时满足条件1、条件2的所有数据

Select       *       from      表    where      条件1              or     条件2

查询显示的结果:表中满足条件1 和条件2中任意一个的所有数据

ORDER BY       用于对结果集进行排序  ASC 顺(升)序  DESC逆(逆)序

例子:

Orders表

Company

OrderNumber

IBM

3532

W3School

2356

Apple

4698

W3School

6953

select  *  from    Orders order by company  desc(asc)

查询Orders表并对companny中数据进行逆序(顺序)排序输出

对于多次排序语句:

以逆字母顺序显示公司名称,并以数字顺序显示顺序号

Select * from orders order by company desc ,ordernumber

查询orders表,先对companny        进行逆序排序,在对orderNumber 进行顺序排序结果如下

其中 orderNumber 后没有关键字, 即默认asc 顺序(order by 默认时为顺序排序)

Company

OrderNumber

W3School

2356

W3School

6953

IBM

3532

Apple

4698

关于 insert into、update、delete  只给出基础语句

*切记值的类型根据插入或更新的数据自行判断是否添加引号

之后在有语法中提到值n的时候不在进行解释 , 需要自己在实际工作进行添加引号,语法只为显示语句的使用。

INSERT INTO  用于向表中插入数据

语法

1、Insert into 表名 values(值1,值2......)

上述插入语句,需要知道表中列名的数据类型,values()中的值必须与表中列名一一对应,不可调换位置,不可以缺少值

Eg:

表 student 中列名有 sno ,sname,sage,sex,sclass

正确插入语句 insert into student(1111,’张三’,12,’男’,’十一班’)

错误插入语句 insert into student(1111,12,’男’,’十一班’)

Insert into student(1111,12,’张三’,’男’,’十一班’)

这两种都是错误的插入语句

2、Insert into table_name(列1,列2......)values(值1,值2......)

上述insert into 语句为基本类型的插入语句

以上述语句为基础 ,还有类似符合的insert into 语句 即 插入的数据为查询的结果

Insert intoa table_name(列1,列2......)values(select 值1, 值2,...... from table_name1 where 条件)

这类插入语句,如果对表中的列属性不清楚,很容易出现问题,并不一定适用,不建议使用。还是老老实实的一条一条插入。

UPDATE  用于更新表中的数据

语法

update 表名 set 列名 = 新值 where 列名 = 某值

Ps:列名 = 某值 实际上就是选择条件 之后不在说明。

 

DELETE 用于删除表中的行数据

语法

delete  from 表名 where  列名 = 某值

ps:无论是数据操作语言(dml)还是数据定义语言(ddl)在进行删除delete、drop 操作的时候,最好先对原表进行备份,避免错误操作导致数据丢失。

因为数据库的不同,方法有所差别 ,具体内容可参考下述网站中的内容

http://blog.csdn.net/longshenlmj/article/details/17719323

总结:

上述内容为基本内容,也是工作中使用的最基本的语句。

下面介绍的高级内容,是在基础内容上进行扩充,让查询使用更多的实际情况, 如多表查询,数据类型转换等。其中join 、通配、like、in等需要掌握并会使用,函数内容最好了解,在使用的时候也可以现查。在第二部分,标题前 有星号*的,根据个人经验在工作使用较多的知识点。

实际上高级内容,也是基本内容,如果全能掌握更好,个人建议先将工作中能用到的学会后,在进一步强化学习。

高级内容基本上都是各个模块进行介绍,在实际中可能需要将基础内容+高级内容中N个才能得到工作需要的数据,需要自己进行组合

还有一点说明,在实际工作中, 因为数据库本身问题,部分语句可能并不适用所有数据库,但是并未说明,但是罗列出来的语法内容基本上使用所有数据库,若是出现提示,请根据所使用的数据库查询所需要的语句,例如:mysql的备份语句,oracle的备份语句,sql sever的备份语句。

二、高级内容介绍

*TOP语句 用于规定要返回的记录的数目

SQL sever 语法:

select top number | percent column_name(s) from table_name

number : 返回记录的具体数值

percent:  返回记录的具体百分比

column_name(s) :列名

table_name :表名

eg: select top 2 * from student  查询并返回student中前两条数据

扩展: select top 20%  sname from student where sage >18

查询并返回student表中前20%的学生年龄大于18的名字。

Ps:还可对列名进行排序操作,可能出现不同的结果。工作上基本上都会进行排序(order by)操作,使得每次调用数据的时候都可以是相同的顺序。

Oracle  mysql 的语法依次如下(top 并不适用这两种数据库系统):

select column_name(s) from table_name rownum <=number

Select column_name(s)  from table_name where limit number

*LIKE 用于在where子句中搜索列中的指定模式

语法:

Select column_name(s) from        table_name where  column_name [NOT] LIKE pattern

Pattern 搜索的规则 一般都会与通配符组合使用

[not] :[]中的内容可以选择使用, like前出现not的时候表示查询的结果为不符合搜索的数据

例:

Person表

Id

LastName

FirstName

Address

City

1

Adams

John

Oxford Street

London

2

Bush

George

Fifth Avenue

New York

3

Carter

Thomas

Changan Street

Beijing

Select  * from Person where  city like ‘%g’

结果为id=3的行数据

Select  * from  person where city not like ‘%g’

结果为剔除id=3的2行数据

‘%g’ 为结尾g的字符集

*通配符          与LIKE运算符一起使用

通配符

描述

%

替代一个或多个字符

_

仅替代一个字符

[charlist]

字符列中的任何单一字符

[^charlist]或者[!charlist]

不在字符列中的任何单一字符

通配符

基本上%、_和[charlist]为常用通配符。

Select * from person where city like ‘[ALN]%’

结果 id=1 ,id=2的2行数据

解析:city以“A”、“L”、“N”开头的数据

*IN 实际上允许在where子句中规定多个值

语法:

Select  colunm_name(s) from table_name where column_name in(value1,value2,value3......)

解析:column_name 的值只要在(value1,value2,value3......)这个集合里面都是满足条件的

以上述person表为例:

1、Select * from person where  lastname in (‘Adams’,’Bush’)        查询姓氏为Adams、Bush的人

2、Select * from person where lastname in (‘Adams’,’Bush’,’Ddddd’)

解析:

查询语句2与1比较,可以发现在集合中多个’Ddddd’ 这个值,但是在person表中并不存在 ,但是一样可以输出与1形同的结果行数据

Id

LastName

FirstName

Address

City

1

Adams

John

Oxford Street

London

2

Bush

George

Fifth Avenue

New York

实际上in 语句 也可以理解问类似or运算符的一种简写只要满足的都会被查询出来

Select * from person where  lastname in (‘Adams’,’Bush’)

等价于

Select * from person where lastname  = ‘Adams’ or lastname = ‘Bu

SQL基础增删改查的更多相关文章

  1. Python进阶----数据库的基础,关系型数据库与非关系型数据库(No SQL:not only sql),mysql数据库语言基础(增删改查,权限设定)

    day37 一丶Python进阶----数据库的基础,mysql数据库语言基础(增删改查,权限设定) 什么是数据库:    简称:DataBase ---->DB    数据库即存放数据的仓库, ...

  2. 【黑马Android】(04)数据库的创建和sql语句增删改查/LinearLayout展示列表数据/ListView的使用和BaseAdater/内容提供者创建

    数据库的创建和sql语句增删改查 1. 载入驱动. 2. 连接数据库. 3. 操作数据库. 创建表: create table person( _id integer primary key, nam ...

  3. 数据库基本查询语句(SQL常用增删改查语句 简单复习 mark)

    SQL常用增删改查语句 1增 1.1[插入单行]insert [into] <表名> (列名) values (列值)例:insert into Strdents (姓名,性别,出生日期) ...

  4. 基本 SQL 之增删改查(一)

    上篇文章,我们介绍了数据的基本 DDL 语句,你应当具备基本的创建数据库.数据表的 SQL 语句,以及表字段的基本数据类型的熟知. 那么本篇就来总结总结大家日常最频繁接触到的 DDM 语句,也就是基本 ...

  5. web sql 基本操作 - 增删改查

    不喜欢看md原文的 可以访问这个链接:http://note.youdao.com/noteshare?id=6a91e3dea7cdf5195bb0e851d9fcb5a5 # web sql 增删 ...

  6. MongoDB 基础增删改查

    增删改查 基础操作 use show dbs show collections db[当前所在数据库] 插入文档 db.collection.insert() db.collection.insert ...

  7. MongoDB学习笔记,基础+增删改查+索引+聚合...

    一 基础了解 对应关系 -> https://docs.mongodb.com/manual/reference/sql-comparison/ database -> database ...

  8. SQL数据库增删改查

    数据类型 运行cmd 输入net start MSSQLserver 启动数据库服务 输入net stop MSSQLserver     关闭数据库服务 输入net pause MSSQLserve ...

  9. Hibernate基础增删改查语法

    1.创建好Hibernate项目,创建好实体类和测试类,如果不会创建Hibernate项目的同学,点此处:http://www.cnblogs.com/zhaojinyan/p/9336174.htm ...

随机推荐

  1. 《Django By Example》第八章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:还有4章!还有4章全书就翻译完成了 ...

  2. Host文件修改后无效的解决办法

    什么是hosts文件? 简单的说,hosts文件是用于本地dns服务(相关主题:什么是DNS缓存,如何清除DNS缓存?)的,采用ip 域名的格式写在一个文本文件当中,Hosts是一个没有扩展名的系统文 ...

  3. jQuery测验题

    1.在div元素中,包含了一个<span>元素,通过has选择器获取<div>元素中的<span>元素的语法是? 提示使用has() $("div:has ...

  4. 3893: [Usaco2014 Dec]Cow Jog

    3893: [Usaco2014 Dec]Cow Jog Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 174  Solved: 87[Submit] ...

  5. 【js数据结构】栈解决括号不匹配问题

    栈可以用来判断一个算术表达式中的括号是否匹配. 思路:读取算术表达式,遇到左括号'{'.'['.'('压入栈,栈的特点是后入先出,所以当遇到右括号'}'.']'.')'的时候,取出栈顶元素,是否满足读 ...

  6. checkSelfPermission 找不到 Android 动态权限问题

    checkSelfPermission 找不到 Android 动态权限问题  最近写了一个Demo,以前好好地.后来手机更新了新系统以后,不能用总是闪退.而且我的小伙伴的是android 7.0系统 ...

  7. supermap开发webgis的经验

    SuperMap 开发WebGIS的经验总结 - 综合课件 - 道客巴巴 http://www.doc88.com/p-743552004620.html

  8. java初学代码,还不太熟练

    奇数和 public class Homework01{ public static void main(String [] args){  long t=1,s=0; do{  s=s+t;  t= ...

  9. 2015.07.20MapReducer源码解析(笔记)

    MapReducer源码解析(笔记)   第一步,读取数据源,将每一行内容解析成一个个键值对,每个键值对供map函数定义一次,数据源由FileInputFormat:指定的,程序就能从地址读取记录,读 ...

  10. Docker remote API简单配置使用

    1.启动docker remote API的方式如下: docker -d -H uninx:///var/run/docker.sock -H tcp://0.0.0.0:5678 2.但是为了伴随 ...