SQL基础学习与应用

Sql dml 和ddl

可以把SQL分为两部分:数据库语言(DML)和数据定义语言(DDL)

SQL(结构化查询语言)是用于执行查询的语法,但SQL语言也包含用于更新,插入和删除记录的语法

查询和更新指令构成了SQL的DML的部分

.SELECT -从数据库表中获取数据  UPDATE -更新数据库表中的数据  DELETE从数据库表中删除数据 INSERT INTO -向数据库表中插入数据

SQL的数据定义语言DDL部分能使我们有能力删除或者创建表格 ,我们也可以定义索引建,规定表之间的链接,以及增加表之间的约束

SQL中最重要的DDL语句:

CREATE DATEBASE 创建数据库  ALTER DATEBASE 修改数据库 CREATE  TABLE创建新表

ALTER TABLE 变更数据库表 DROP TABLE  删除表  CREATE INDEX 创建索引(搜索键)

DROP INDEX 删除索引

 

Select   *  from 表明    (*代表是选取所有列的快捷方式)

Select  distinct  属性 from 表名   distinct防止重复,让其唯一

Select  * from persons where city=’xian’;

Select  * from persons where  year>1994;

Select * from persons where  year>1994  and  year<2001;

ORDER BY语句用于根据指定的列对结果进行排序,语句默认按照升序对记录进行排序;DESC是按照降序对记录进行排序

Select 属性1,属性2.....  from   表明   order by  属性    (升序)

Select 属性1, 属性2 ....from    表名   order by 属性  desc   (降序)

 

Insert into 语句用于向表格中插入新的行  

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

也可以指定所要的咧

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

Update 修改表中的数据

Update 表名称 set 列名称 = 新值 where 列名称 =某值

Delete 语句删除表中的行

Delete from 表名称 where 列名称 = 值

Delete * from table_name 不删除表,删除表中的所有的行

Top 子句用于规定返回的记录的数目(不是所有的数据库系统都支持top子句)

Select top number|percent colunm_name(s)  from table_name

MySQL和oracle中的SQL select top是等价的

Select  TOP  50  percent  *  from 表名(从表名中选取百分之五十的 记录 )

Like操作符用于在where子句中搜索中的指定模式

Select  column_name(s) from table_name where column_name LIKE pattern;

 Select * from persons where city  LIKE  ‘n%’ 从person表里选取居住在以N开始的城市的人

注意“%”可用于定义同通配符(模式中缺少的字母)

Select * from persons  where city   LIKE  ‘%b’从person表里选取以b结尾的城市的人

Select * from persons  where city    LIKE  ‘%CC%’ 从persons表里选取不包含CC城市里的人

SQL通配符:在搜索数据库中的数据时,SQL通配符可以替代一个或者多个字符,SQL通配符必须与LIKE 运算符一起使用。在SQL中可以使用以下通配符:

%  替代一个或者多个字符

-   仅仅替代一个字符

[charlist]  字符列中的任何单一字符

[^charlist]  不在字符列中的任何单一字符或者用([!charlist])

Select * from persons where firstname   like  ‘_ u’ 从person表中选取名字的第一个字符之后是“u”的人

Select * from persons where lastname LIKE  ‘c_r_h’ 从person表中选取这条记录的姓氏以“c”开头,然后是一个任意字符,然后是“r”,最后是“h”

Select * from persons where city LIKE ‘[KLM]%’ 从person表选取居住在“K”或“L”或“M”城市开头的人 ,如果查找的是不在的话,只需要在原来的加!如下 ‘[!KLM]%’

 

Sql IN操作符      IN操作符允许我们在where子句中规定多个值

Select * from persons where  LASTNAME  IN (‘A’,’B’)我们希望从上表中选取姓氏为A和B的

BETWEEN 操作符在where子句中使用,作用是选取介于两个值之间的数据范围,BETWEEN....AND  这个值可以是数值,文本或者日期

Select * from persons where lastname BETWEEN  ‘A’ AND ‘B’ 显示介于A
(包括A)和B(不包括B )之间,反之在BETWEEN前加NOT

Alias 可以为列名称和表名称指定别名

表的SQL  alias语法

Select column_name(s) from table_name AS alias_name

列的SQL alias 语法

Select  column_name AS alias_name from table_name

 

Alias 实例: 使用表名称别名

假设我们有两个表分别是:"Persons" 和 "Product_Orders"。我们分别为它们指定别名 "p" 和 "po"。

现在,我们希望列出 "John Adams" 的所有定单。

我们可以使用下面的 SELECT 语句:

SELECT po.OrderID, p.LastName, p.FirstName

FROM Persons AS p, Product_Orders AS po

WHERE p.LastName='Adams' AND p.FirstName='John'

不使用别名的 SELECT 语句:

SELECT Product_Orders.OrderID, Persons.LastName, Persons.FirstName

FROM Persons, Product_Orders

WHERE Persons.LastName='Adams' AND Persons.FirstName='John'

从上面两条 SELECT 语句您可以看到,别名使查询程序更易阅读和书写。

 

Sql join 用于根据两个或多个表中的列之间的关系,从这些数据中查询数据.

在表中存在至少一个匹配时 ,INNER JOIN 关键字返回行

关键的语法:

Select column_name(s) FROM table_name1 INNER JOIN table_name2 ON table_name11 . colum

1 .column_name=table_name2 . column_name

 

SQL UNION 操作符 ,用于合并两个或多个select语句的结果集

注意:UNION操作符用于合并两个或多个SELECT语句的结果集,列也必须有相似的数据类型,同时每条select中的列的顺序必须相同

UNION语法,

Select column_name from table_name1

UNION

Select column_name from table_name2

注意:默认地,UNION操作符选取不同的值,如果允许重复的值,请使用UNION all

UNION结果集中的列名总是等于UNION中第一个select语句中的列名 ,UNION只会选取不

SQL select into语句可以用于创建表的备份原件

Select into 语句从一个表中选取数据,然后把数据插入另外一个表中,此语句还可以用于创建表的备份复件或者用于对记录进行存档

Select * INTO  new_table_name  [IN  externaldatabase]  from  old_tablename把所有的列插入新表-select column_name(s)  into new_table_name  from old_tablename

 

SQL SELECT INTO 实例-制作备份复件

Select *

Into Persons_backup

From Persons

 

In几句可用于向另一你数据库中拷贝表:

Select *

Into persons in ‘Backup.mdb’

From persons

如果我们希望拷贝某些域,可以在select语句后列出这些域:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值