SQL
来源:互联网 发布:3ds淘宝 编辑:程序博客网 时间:2024/06/05 20:32
一、SQL语法
1、数据库表
一个数据库通常包含一个或多个表。每个表由一个名字标识(例如“客户”或者“订单”)。表包含带有数据的记录(行)。
2、SQL语句
需要在数据库上执行的大部分工作都由SQL语句完成。
下面的语句从表中获取lastname列的数据
SELECT LastName FROM Persons
这样就将数据中的所有lastname字段的数据获取出来了。
注意:SQL对大小写不敏感。
3、SQL语句后面的分号;
某些数据库系统要求在每条的SQL命令的末端使用分号。分号是在数据库系统中分隔每条SQL语句的标准方法,这样就可以在对服务器的相同请求中执行一条以上的语句。
4、SQL DML和DDL
可以把SQL分为两部分:数据操作语言(DML)和数据定义语言(DDL)。SQL(结构化查询语言)是用于执行查询的语法。但是SQL语言也包含用于更新、插入、和删除记录的语法。
查询和更新指令构成了SQL的DML部分:
- SELECT -从数据库表中的获取数据
- UPDATE -更新数据库表中的数据
- DELETE -从数据库表中删除数据
- INSERT INTO -向数据库表中插入数据
SQL的数据定义语言(DDL)部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。
SQL中重要的DDL语句:
- CREATE DATABASE -创建数据库
- ALTER DATABASE -修改数据库
- CREATE TABLE -创建表
- ALTER TABLE -修改表
- DROP TABLE -删除表
- CREATE INDEX -创建索引(搜索键)
- DROP INDEX -删除索引
二、 SQL SELECT 语句
SELECT 语句用于从表中选取数据。结果被存储在一个结果表中(称为结果集)
语法 : SELECT 列名称 FROM 表名称 以及 SELECT * FROM 表名称
注释:SQL 语句对大小写不敏感,SELECT 等效于select
实例:如需获取名为LastName和 FirstName的列的内容(从名为Persons的数据库)
SELECT LastName,FirstName FROM Persons
SQL SELECT * 实例
现在我们需要从Persons表中获取所有的列。使用符号*取代列的名称
SELECT * FROM Persons
在结果集(result-set)中导航
由SQL查询程序获得的结果被存储在一个结果集中,大多数数据库软件系统都允许使用编程函数在结果集中进行导航,比如:Move-To-First-Record、Get-Record-Content、Move-To-Next-Record等等。
三、SQL SELECT DISTINCT语句
在表中,可能会包含重复值。这并不成问题,不过,有时也希望仅仅列出不能(distinct)的值。
关键词DISTINCT 用于返回唯一不同的值。
语法: SELECT DISTINCT列名称 FROM表名称
实例:如果要从“Company”列中获取所有的值,我们需要使用SELECT语句:
SELECT Company FROM Orders
注意:在结果集中W3SChool被列了两次。
如需从Company列表中仅选取唯一不同的值,我们需要使用SELECT DISTINCT语句:
SELECT DISTINCT CompanyFROM Orders
现在,在结果集中,W3SChool仅被列出了一次。
四、 SQL WHERE 语句
WHERE 子句用于规定选择的标准。
WHERE 子句 如需有条件地从表中选取数据,可将WHERE子句添加到SELECT语句。
语法: SELECT 列名称 FROM 表名称 WHERE列 运算符 值
下面的运算符可以在WHERE中使用:
= 、 <>(不等于)、>、<、>=、<=、BETWEEN(在某个范围内)、 LIKE(搜索某种模式)
注释:在某些版本的SQL中,操作符<>可以写成 != 。
使用WHERE子句
如果只希望选取居住在城市“Beijing”中的人,我们需要向SELECT语句添加WHERE子句:
SELECT * FROM Persons WHERE City=‘Beijing’
引号的使用
请注意,我们在列子中的田间值周围使用的是单引号。SQL使用单引号来环绕文本值(大部分数据库系统也接受双引号)。如果是数值,请不要使用引号。
文本值:
SELECT * FROM Persons WHERE FirstName = ‘Bush’ 这是对的
SELECT *FROM Persons WHERE FirstName= Bush 这是错误的
数值:
SELECT *FROM Persons WHERE Year > 1965 这是对的
SELECT *FROM Persons WHERE Year >’1965’这是错误的
五、SQL AND & OR 运算符
AND 和 OR运算符 可在WHERE子语句中把两个或多个条件结合起来。如果第一个条件和第二个条件都成立,则AND运算符显示一条记录。如果第一个条件和第二个条件只要一个成立。则OR运算符显示一条记录。
AND 运算符实例:
使用AND来显示所有姓为‘Carter’并且名为‘Thomas’的人:
SELECT *FROM Persons WHERE FirstName=‘Thomas’ AND LastName =‘Carter’
OR 运算符实例
使用OR来显示所有姓为‘Carter’或者名为’Thomas‘的人:
SELECT *FROM Persons WHERE FirstName = ’Thomas’ OR LastName=‘Carter’
结合AND 和 OR运算符
我们可以把AND 和OR结合起来(使用圆括号来组成复杂的表达式)
SELECT * FROM Persons WHERE (FirstName=’Thomas’ OR FirstName=‘William’) AND LastName=‘Carter’
六、SQL ORDER BY 子句
ORDER BY 语句用于对结果集进行排序。用于根据指定的列对结果进行排序,默认按照升序对记录进行排序;若要降序排,可以使用DESC关键字
实例1 以字母顺序显示公司名称
SELECT Company , OrderNumber FROM Orders ORDER BY Company
实例2 以字母顺序显示公司名称(Company),并以数字顺序显示顺序号(OrderNumber):
SELECT Company , OrderNumber FROM Orders ORDER BY Company , OrderNumber
显然上面的显示是以 Company为第一排序规则,OrderNumber为第二排序规则
实例3 以逆字母顺序显示公司名称:
SELECT Company ,OrderNumber FROM Orders ORDER BY Company DESC
实例 4 以逆字母顺序显示公司名称,并以数字顺序显示排序号:
SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC,OrderNumber ASC
注意:上面的结果中只有两个相等的公司名称。只有这一次,在第一列中有相同的值时,第二列是以升序排列的。如果第一例中的有些值为Nulls时,情况也是一样的。
七、 SQL INSERT INTO 语句
INSERT INTO 用于向表格中插入新的行。
语法: INSERT INTO表名称 VALUES(值1,值2,……)
我们也可以指定所要插入数据的列
INSERT INTO Table_name (列1,列2,…)VALUES(值1,值2,...)
插入新的行
INSERT INTO Persons VALUES (‘Gates’,’Bill’,’Xuanwumen 10’,’Beijing’)
在指定的列中插入数据
INSERT INTO Persons(LastName,Address) VALUES (‘Wilson’,’Champs-Elysees’)
八、 SQL UPDATE语句
Update 语句用于修改表中的数据
语法: UPDATE 表名称 SET 列名称 =新值 WHERE列名称= 某值
跟新某一行中的列
我们为lastname 是’Wilson‘的人添加 FirstName
UPDate Person SET FirstName = ‘Fred’ WHERE lastName =‘Wilson’
更新某一行中的若干列
我们会修改地址,并添加city名称
UPDATE Persons SET Address= ‘Zhongshan 23’,City=‘Nanjing’ WHERE LastName =‘Wilson’
九、 SQL DELETE语句
DELETE 语句用于删除表中的行。
语法: DELETE FROM表名称 WHERE列名称 = 值
删除某行
DELETE FROM Person WHERE LastName = ‘Wilson’
删除所有行 可以在不删除表的情况下删除所有的行,这意味着表的结构、属性和索引都是完整的:
DELETE FROM table_name
或者
DELETE * FROM table_name
- SQL
- SQL
- SQL
- sql
- sql
- SQL
- sql
- SQL (-)
- sql
- SQL
- SQL
- SQL
- sql
- sql
- sql
- sql
- SQL
- sql
- listview的分页
- 图像处理基本算法-立体视觉
- 合并文件夹二
- StringEscapeUtils类的转义与反转义方法
- 复习Android:笔记(一)工具下载(studio,jdk')和环境配置
- SQL
- 关于RFC 5681和《TCP/IP IIIustrated》在ssthresh(慢开始门限值)调整的区别
- zbar 使用报错
- Python 爬取豆瓣热映电影 (转载)
- mybatis入门
- Class对象的生成方式
- 安卓Switch动画实现
- mysql 常见问题
- Android Studio 3.0 Canvas Create KotlinDemo