sql基本语句(代码总结)

1. 创建 sql 语句 Create database mydb on ( Name=mydb_dat, Filename=’f:\data\mydb_dat.mdf’, Size=5mb, Maxsize=20mb, Filegrowth=5% ) Log on ( Name=mydb_log, Filename=’f:data\mydb_log.ldf’, Size=5mb, Maxsize=20mb, Filegrowth=1mb ) 2. 可以创建同一个文件组,组名默认为 PRIMARY,数据文件可以存放在不同磁盘上,数据 库中的数组是分布在所有的次要文件中 create database MyDB on primary ( name=mydb_dat, filename='f:\data\mydb_dat.mdf', size=6MB, maxsize=20mb, filegrowth=5% ), filegroupdbfg ( name=dbfg_dat1, filename='d:\data\mydb_dat1.ndf', size=5mb, maxsize=20mb, filegrowth=5% ), ( name=dbfg_dat2, filename='e:\data\mydb_dat2.ndf', size=5mb, maxsize=20mb,

filegrowth=1mb ) log on ( name=mydb_log, filename='f:\data\mydb_log.ldf', size=5MB, maxsize=20mb, filegrowth=5% ) 3. 修改数据库名 alter database mydb modify name=youdb 存储过程修改数据库名 exec sp_dboption 'youdb','single',true execsp_renamedb 'youdb','mydb' execsp_dboption 'mydb','single',false 4. 修改数据库文件大小 Use master Alter database mydb Modify file ( Name=mydb_dat, Size=6mb, Filegrowth=1% ) 5. 增加数据库文件组 Use master Alter database mydb Add file ( Filename=’f:\data\mydb_data1.ndf’, Name=mydb_dat1, Size=6mb, Filegrowth=1% ) 6. 删除数据库 drop database mydb 7. 从 sql 中删除,但保持其数据和事务日志文件(相当于分离数据库) Exec sp_detach_dbmydb 8. 附加数据库 Exec sp_attach_dbmydb,’f:\data\mydb_dat.mdf’ 9. 备份数据库 Backup database mydb to Disk=’f:\data\database_bak.dat’ with name=’backup’ 10. 还原数据库 restore database mydb from disk=’f:\data\database_bak.dat’ with replace

11. 创建数据库快照 create database mydb001 On ( name=’mydb_dat’, Filename=’f:\data\mydb001.mdf’ ), (name=’ddd’, Filename=’f:\ddd.ndf’ ) As snapshot of mydb --这是次要文件可以没有

12. 恢复数据库快照 restore database mydb from database snapshot=’mydb001’ 13. 查看日志 dbcc log (数据库名,n) N 的值 0 - 最少信息(operation, context, transaction id) 1 - 更多信息(plus flags, tags, row length) 2 - 非常详细的信息(plus object name, index name,page id, slot id) 3 - 每种操作的全部信息 4 - 每种操作的全部信息加上该事务的 16 进制信息 默认 type = 0

1. 创建用户自定义类型 sp_addtype{type_name},[base_type],[[‘null’|’not null’]],[‘拥有者’] 删除 sp_droptypetype_name 2. 在 MMM 数据库中创建自定义数据类型 exec sp_addtypenametype,’varchar(20)’,’not null’ 删除 sp_droptypenametype 3. 创建临时表 l 临时表在退出其作用域是由系统自动删除 create table #mytemptable 一个#的为本地临时表 ( Cola int ) create table ##mytemp 两个##的为全局临时表 ( Cola int ) 在 tempdb 库中查看临时表信息 4. 创建、删除表 创建表 sales 包含以下字段 order_no 不能空 Ordr_date 不能为空 Ship_date 不能为空 use projects

Create table sales ( Order_noint not null, order_datedatetime not null, Ship_datedatetime not null ) 更改表名 Exec sp_rename sales ssaless 删除表 drop table sales 5. ①.创建函数列的表 Create table testtable ( Indate as getdate(), Id int, Usename as user_name() ) ②. 用户定义类型列创建计算列 create table testable ( id int not null, Col1 nametype ) ③. 表变量 declare @t table ( col1int, col2 varchar(10) ) Insert into @t values(1,’很好’) 查询 select * from @t 6. 修改表 employee 添加列:电话号码 telephone_no 添加列:字符列 email 为 char 修改列类型:email 为 varchar 修改列空为非空列 修改字段名: 删除列:删除 email 列 alter table employee Add telephone int null, Email char(29) null Alter table eemployee alter column email varchar(20) null alter table employee alter column email varchar(20) not null

exec sp_rename“构架名.表名.旧字段名’,’新字段名’,’column’ alter table employee drop column email 7. 约束 ①. 主键约束 创建是加主键 create table customers ( customernoint identity not null primary key, Customernamevarchar(30) not null ) 在现有表中添加主键 alter table customers Add constraint pk_customerno Primary key (customerno) ②.外键约束 使用外键床架一个表 Create table orders ( Orderedintidentity not null primary key , Customernoint not null foreign key references customers(customerno) ) 在已存在的表中添加外键 alter table orders add constraint fk_employeeCreatesorders Foreign key (customerno) references customers (customerno) ③.级联动作 create table OrderDetails ( orderidint not null, partnovarchar(10) not null constraintPKOrderDetails primary key (orderid,partno), constraintFKOrderContrainsDetails Foreign key (OrderID) References orders(orderid) on update no action on delete cascade ) ④.唯一约束 在创建表时创建唯一约束 create talbe shippers ( Shipperidint identity not null primary key,

Phonenovarchar(14) not null unique ) 在已存在的表中创建唯一约束 alter table shippers Add constraint ak_shippersphonenounique(phoneno) ⑤.Check 约束 alter table customers Add constraint cn_customerdateinsystem check (dateinsystem<=getdate()) 删除 check 约束 alter table testable Drop constraint cn_customerdateinsystem ⑤. Default 约束 创建默认表 create table shippers ( Shipperidint identity not null primary key, Dateinsystemsmalldatetime not null default getdate () ) 在已存在的表上加上默认值 alter table customers add constraint cn_customerdefaultdateinsystem Default getdate() for dateinsystem

1. 表数据插入 使用 Insert 插入 USE northwind INSERT into customers(customerid, companyname, contactname, contacttitle,address, city, region, postalcode, country, phone,fax) VALUES (‘PECOF’, ‘Pecos Coffee Company’,’MichaelDunn’,’Owner’, ‘1900 Oak Street’, ‘Vancouver’, ‘BC’,’V3F 2K1’, ‘Canada’,’(604) 555-3392’,’(604) 555-7293’) 使用 insert 和 select 插入行 USE northwind INSERT customers SELECT substring(firstname, 1, 3) + substring (lastname, 1,2),lastname, firstname, title, address, city,region, postalcode, country, homephone, NULL FROM employees 使用 select into 插入 USE northwind SELECT productname AS products,unitprice AS price,

(unitprice * 0.1) AS tax INTO #pricetable FROM products 使用 top 插入 USE northwind SELECT top 10 productname AS products,unitprice AS price, (unitprice * 1.1) AS tax INTO #pricetable FROM products Select * from #pricetable 2. 插入部分数据 USE northwind INSERT shippers (companyname) VALUES (‘Fitch & Mather’) SELECT * FROM shippers WHERE companyname = ‘Fitch & Mather’ 3. 使用 delete 语句 USE northwind delete shippers WHERE companyname = ‘Fitch & Mather’ 4. 使用 truncate table 删除表中所有的行,但保留表的结构和与之相关的对象 TRUNCATE TABLE 语句比 DELETE 语句执行速度快 如果表中有 IDENTITY 列,TRUNCATE TABLE 语句会重新设置原始数据 USE northwind TRUNCATE TABLE orders 5. 删除基于其他表的行 DELETE [FROM] {表名 | 视图名} [FROM {<表资源>} *,…n++ [WHERE 搜索条件 ] 6. 根据表中数据更新 use northwind Update products Set unitprice =(unitprice*1.5),列名=新值 7. 表操作 Use AdventureWorks Select * from product Use AdventureWorks Select name,productnumber,reorderpoint from product 8. 使用字符串比较符

通配符 % _ [] [^] USE northwind SELECT companyname FROM customers 0 或多个字符串 任何单个的字符

描述

在指定区域或集合内的任何单个字符 不在指定区域或集合内的任何单个字符

WHERE companyname LIKE '%Restaurant%'–其中包含 restrurant 9. 使用逻辑运算符 优先级 not and or USE northwind SELECT productid, productname, supplierid, unitprice FROM products WHERE (productname LIKE 'T%' OR productid = 16) AND (unitprice> 16.00) 10. 检索一定范围内的值 USE northwind SELECT productname, unitprice FROM products WHERE unitprice BETWEEN 10 AND 20 11. 使用值列表作为搜索条件 USE northwind SELECT companyname, country FROM suppliers WHERE country IN ('Japan', 'Italy') 12. 检索未知值 USE northwind SELECT companyname, fax FROM suppliers WHERE fax IS NULL 13. 对数据进行排序 asc 为正序 desc 为倒序 use northwind select * from employees order by firstnameasc(desc) 14. 消除重复行 USE northwind SELECT DISTINCT country FROM suppliers ORDER BY country 15. 使用 top N USE northwind SELECT TOP 5 productname, unitprice FROM products

SELECT TOP 5 PERCENTproductname, unitprice FROM products 16. 使用聚合函数

例子: USE northwind SELECT productid, SUM(quantity) AS QuantitySum from [order details] GROUP BY productid ORDER BY productid 17. 使用 HAVING 子句时,应注意 只在使用 GROUP BY 子句的同时,使用 HAVING 子句来限制分组 可以引用任何出现在选择列表中的字段 不要联合使用关键字 ALL 和 HAVING 子句。因为 HAVING 子句会忽略 ALL 关键 字,并返回只符合 HAVING 条件的组 group by 分组 USE northwind SELECT productid, SUM(quantity) AS QuantitySum from [order details] GROUP BYproductid HAVINGSUM(quantity)>500 ORDER BY SUM(quantity) 18. 连接

内部连接是连接类型中最普通的一种,与大多数连接一样,内部连接根据一个或几个相 同的字段将记录匹配在一起,但是内部连接仅仅返回那些存在的字段匹配的记录 Use northwind select products.*,suppliers.supplierid from products inner join suppliers on products.supplierid=suppliers.supplierid use pubs selecta.au_lname+', '+a.au_fname as author,t.title from authors a jointitleauthor ta on a.au_id=ta.au_id join titles t ont.title_id=ta.title_id 外部连接时必需跟上左侧连接还是右侧连接 Use pubs selectdiscounttype,discount,s.stor_name from discounts d left outer join stores s ond.stor_id=s.stor_id select discounttype,discount,s.stor_name from discounts d right join stores s ond.stor_id=s.stor_id 完全连接 Use pubs selectdiscounttype,discount,s.stor_name from discounts d full join stores s ond.stor_id=s.stor_id 交叉连接 Use pubs selectdiscounttype,discount,s.stor_name from discounts d cross join stores s Union 连接 use northwind selectcompanyname , address, city from customers union selectcompanyname, address, city from suppliers IN usenorthwind select * from customers where customerid in (select distinct customerid from orders) Exists use northwind select * from orders where Exists(select * from customers where customerid='alfki' )


相关文档

SQL语句总结
标准sql语句总结
常用SQL语句简单总结
SQL基础语句总结
SQL语句大全 总结
常用的SQL数据库语句总结
T-SQL常用语句总结
SQL语句经典总结大全
SQL查询语句总结_精华
[数据库]简单SQL语句总结
电脑版