SQL操作

SQL DML和DDL

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

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

查询和更新指令构成了 SQL 的 DML 部分:是对数据表中的数据进行操作

SELECT - 从数据库表中获取数据

UPDATE - 更新数据库表中的数据

DELETE - 从数据库表中删除数据

INSERT INTO - 向数据库表中插入数据

SQL 的数据定义语言 (DDL) 部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。是对数据库和数据表格结构的操作,层级要比DML高

SQL 中最重要的 DDL 语句:

CREATE DATABASE - 创建新数据库

ALTER DATABASE - 修改数据库

CREATE TABLE - 创建新表

ALTER TABLE - 变更(改变)数据库表

DROP TABLE - 删除表

CREATE INDEX - 创建索引(搜索键)

DROP INDEX - 删除索引

1.创建数据库

Create DATABASEdatabase-name;

2.除数据库

Drop DATABASE atabase-name;

3.备份SQLServer

--- 创建 备份数据的 device

USEmaster

EXECsp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'

--- 开始 备份

BACKUP DATABASE pubs TO testBack

4.创建新表

Create tabletablename  (col1 type[not null] [primarykey], col2 type [not null] [primary key],…..)

根据已有的表创建新表:
  A. create table tab_new like tab_old;(创建和旧表一样的表)

  B. createtable tab_new as select col1,col2….from tab_old definition only

5.删除新表

         Droptable tabname;

6.增加一个列

         Altertable tabname add colum_name  col_type

注:列增加后将不能删除。

7.添加主键

Alter table tabname add primary key (col)

8.向表中添加数据

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

         向表中指定列添加数据

         Insertinto 表名称(列1,列2,列3,…)values(值1,值2,值3,…)

9. Update 语句

         更新某一行中的某一个列:

Update Person 

set firstname=’fred’ 

where lastname=’wilson’

更新某一行中的若干列:

Update person

set Address=’zhongsan’, City=’Nanjing’  

Where  lastname=’wilson’

10. DELETE语句

         Deletefrom person where lastname=‘wilson’

11.TOP子句

         要返回的记录的数目

         SQLServer中的语法:

         SelectTop 50 * from Persons   从Persons表中选择50条数据,列出所有列

         SelectTop 50 PERCENT * from Persons   从Persons表中选择50%的数据,列出所有列

12. IN 操作符

         IN操作符允许在WHERE子句中规定多个值

SELECT column_name(s)

FROM table_name

WHERE column_name IN (value1,value2,...)

13.BETWEEN 操作符

         在WHERE子句中使用,值范围可以是数值,文本或者日期

  SELECT * FROMPersons   WHERE LastName   BETWEEN 'Adams' AND 'Carter'

(不同数据库,对两头的取舍定义不同)not between:范围之外

14.JOIN,连接查询,组成新表

         SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo

FROM Persons

INNER JOIN Orders

ON Persons.Id_P =Orders.Id_P

ORDER BY Persons.LastName

         INNER JOIN:(等值连接) 只返回两个表中联结字段相等的行。在表中存在至少一个匹配时,INNER JOIN 关键字返回行。

         LEFT JOIN:(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 (left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,leftjoin是以左表为准的. 左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录。B表记录不足的地方均为NULL)LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。

RIGHT JOIN:(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录

FULL JOIN: 只要其中一个表中存在匹配,就返回行

15. UNION 和 UNION ALL 操作符

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

         SELECTcolumn_name(s) FROM table_name1

UNION

SELECTcolumn_name(s) FROM table_name2

(默认地,UNION 操作符选取不同的值。如果允许重复的值,使用 UNION ALL。)

 

SELECT column_name(s) FROM table_name1

UNION ALL

SELECT column_name(s) FROM table_name2

(UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值