作者:http://mrrobot.iteye.com/
/* * SQL SERVER */ use master --go:应用于批处理 分块处理语句 执行完一块SQL再执行另一块SQL go --判断数据库(user_db)是否存在,如果存在则删除(user_db) /* *语法: * *if exists (select * from sysdatabases where name = '数据库名') *drop database 数据库名 * * 注释:sysdatabases 系统视图 */ if exists (select * from sysdatabases where name = 'user_db') drop database user_db go --数据库 /* * 创建语法: * create database 数据库名 * 删除语法: * drop database 数据库名 */ create database user_db go --切换数据库 /* * 语法:use 数据库名 */ use user_db go --表 /* * 创建语法: * CREATE TABLE 表名称 * ( * * 列名称1 数据类型, * * 列名称2 数据类型, * * 列名称3 数据类型, * * .... * ) * * 删除语法: * 删除表和数据: drop table 表名称 * 删除表中数据不删除表结构:truncate table 表名称 */ --用户表 create table sys_User( u_Id int PRIMARY KEY IDENTITY, -- PK FK_sys_User_Status int, -- FK > sys_User_Status FK_sys_User_Role int, -- FK > sys_User_Role u_Account nvarchar(20) not null UNIQUE,-- 账号 u_Name nvarchar(20), -- 昵称 u_CreateDate datetime, -- 创建时间 u_Asssets money, -- 资产 u_Desc ntext default '暂时没有描述' -- 描述 ) go --用户权限表 create table sys_User_Role( r_Id int PRIMARY KEY IDENTITY, -- PK r_Name nvarchar(20), -- 权限名 r_Desc ntext default '暂时没有描述' -- 描述 ) go --用户状态表 create table sys_User_Status( s_Id int PRIMARY KEY IDENTITY, -- PK s_Name nvarchar(20), -- 状态名 s_Desc ntext default '暂时没有描述' -- 描述 ) go --添加约束 /* * PK: * 创建:主键生成策略采用SQL SERVER自身的 NOT NULL AUTO_INCREMENT(1,1) * 删除:ALTER TABLE 表名 DROP CONSTRAINT 键名 * NOT NULL:非空约束 * 创建:列名称3 数据类型 NOT NULL * UNIQUE:唯一约束 * 创建:列名称3 数据类型 UNIQUE * CHECK:条件约束 * 添加:ALTER TABLE 表名 ADD CHECK (条件) 条件:各种运算符的搭配条件 * 删除:ALTER TABLE 表名 DROP CONSTRAINT 约束名称 * DEFAULT:默认值 * 创建:列名称3 数据类型 DEFAULT '默认值' * 删除:ALTER TABLE 表名 ALTER COLUMN 列名 DROP DEFAULT * FOREIGN KEY:外键约束 * 创建:alter table 外键表 * add constraint 约束名称 * foreign key (外键表外键列) * references 主键表(主键列); * 删除:DROP CONSTRAINT 约束名 */ --条件约束 ALTER TABLE sys_User ADD CONSTRAINT chk_Person_u_Asssets CHECK (u_Asssets<=1000000000) go --ALTER TABLE sys_User DROP CHECK chk_Person_u_Asssets --外键约束 --用户表(sys_user)&权限表(sys_User_Role ) alter table sys_user add constraint fk_sys_user_sys_User_Role foreign key (FK_sys_User_Role) references sys_User_Role(r_Id) --DROP CONSTRAINT fk_sys_user_sys_User_Role go --用户表(sys_user)&状态表(sys_User_Status ) alter table sys_user add constraint fk_sys_user_sys_User_Status foreign key (FK_sys_User_Status) references sys_User_Status(s_Id) --DROP CONSTRAINT fk_sys_user_sys_User_Status go --创建索引 /* *CREATE UNIQUE INDEX 索引名称 ON 表名 (列名) */ CREATE UNIQUE INDEX index_u_Account ON sys_User (u_Account) --DROP INDEX sys_User.index_u_Account go --列模式 /* * 添加列:ALTER TABLE 表名 ADD 列名 类型 * 删除列:ALTER TABLE 表名 DROP COLUMN 列名 * 改变表中列的数据类型: * ALTER TABLE 表名 * ALTER COLUMN 列名 类型 */ ALTER TABLE sys_User ADD u_images image go ALTER TABLE sys_User DROP COLUMN u_images go --视图 /* *CREATE VIEW 视图名称 AS(查询的结果集) */ CREATE VIEW view_sys_User_info AS(select * from sys_User as u,sys_User_Role as r,sys_User_Status as s ) --DROP VIEW view_sys_User_info go
USE user_db GO INSERT INTO [user_db].[dbo].[sys_User_Status] ([s_Name] ,[s_Desc]) VALUES ('冻结状态' ,'不能登陆') GO INSERT INTO [user_db].[dbo].[sys_User_Status] ([s_Name] ,[s_Desc]) VALUES ('冻结状态' ,'不能登陆') GO INSERT INTO [user_db].[dbo].[sys_User_Status] ([s_Name] ,[s_Desc]) VALUES ('正常状态' ,'正常进行操作') GO INSERT INTO [user_db].[dbo].[sys_User_Status] ([s_Name] ,[s_Desc]) VALUES ('黑名单状态' ,'拒绝任何操作') GO INSERT INTO [user_db].[dbo].[sys_User_Role] ([r_Name] ,[r_Desc]) VALUES ('管理员' ,'可以管理本系统') GO INSERT INTO [user_db].[dbo].[sys_User_Role] ([r_Name] ,[r_Desc]) VALUES ('普通用户' ,'可以访问本系统') GO INSERT INTO [user_db].[dbo].[sys_User_Role] ([r_Name] ,[r_Desc]) VALUES ('超级管理员' ,'超级权限') GO INSERT INTO [user_db].[dbo].[sys_User_Role] ([r_Name] ,[r_Desc]) VALUES ('访客' ,'可阅读相关信息') GO INSERT INTO [user_db].[dbo].[sys_User] ([FK_sys_User_Status] ,[FK_sys_User_Role] ,[u_Account] ,[u_Name] ,[u_CreateDate] ,[u_Asssets] ,[u_Desc]) VALUES (3 ,1 ,'chenxuan_s@163.com' ,'chenxuan' ,'2015-03-20 13:55:50.000' ,1000.00 ,'这就是描述') GO INSERT INTO [user_db].[dbo].[sys_User] ([FK_sys_User_Status] ,[FK_sys_User_Role] ,[u_Account] ,[u_Name] ,[u_CreateDate] ,[u_Asssets] ,[u_Desc]) VALUES (2 ,1 ,'chenxuan_s1@163.com' ,'chenxuan1' ,'2015-03-20 13:55:50.000' ,2000.00 ,'这就是描述') GO INSERT INTO [user_db].[dbo].[sys_User] ([FK_sys_User_Status] ,[FK_sys_User_Role] ,[u_Account] ,[u_Name] ,[u_CreateDate] ,[u_Asssets] ,[u_Desc]) VALUES (1 ,1 ,'chenxuan_s2@163.com' ,'chenxuan2' ,'2015-03-20 13:55:50.000' ,3000.00 ,'这就是描述') GO
USE user_db GO /* * SQL select */ --查询所有 select * from sys_user go --查询单列 select u_account from sys_user go --查询多列 select u_account,u_name from sys_user /* *SQL distinct *注意:ntext 数据类型不能选为 DISTINCT,因为它不可比。 */ select s_name from sys_user_status select distinct s_name from sys_user_status /* * SQL where * */ select * from sys_user as u where u.u_asssets = 1000 select * from sys_user as u where u.u_asssets > 1000 select * from sys_user as u where u.u_asssets < 1000 select * from sys_user as u where u.u_asssets <= 1000 select * from sys_user as u where u.u_asssets >= 1000 select * from sys_user as u where u.u_asssets != 1000 /* * SQL AND & OR * */ select * from sys_user as u where u.u_asssets != 1000 and u.u_asssets = 2000 select * from sys_user as u where u.u_asssets = 1000 or u.u_asssets = 2000 /* * SQL Order By * */ select * from sys_user as u where u.u_asssets < 10000 order by u.u_id asc select * from sys_user as u where u.u_asssets < 10000 order by u.u_id desc /* * SQL insert * */ INSERT INTO [user_db].[dbo].[sys_User_Status] ([s_Name] ,[s_Desc]) VALUES ('冻结状态' ,'不能登陆') GO /* * SQL update * */ select * from sys_user update sys_user set sys_user.u_name='rrr' where sys_user.u_name ='xxx' update sys_user set sys_user.u_name='xxx' select * from sys_user go /* * SQL delete */ select * from sys_user --TRUNCATE TABLE sys_user --DROP TABLE sys_user /* * SQL Top */ select * from sys_user select top 2 * from sys_user /* * SQL Like * */ select * from sys_user where u_Account like 'chen%' select * from sys_user where u_Account like '%com' select * from sys_user where u_Account like '_hen' select * from sys_user where u_Account like '[c]%' select * from sys_user where u_Account like '[^c]%' /* * SQL In * */ select * from sys_user select * from sys_user where FK_sys_User_Status in (1,2) /* * SQL Between */ select * from sys_user select * from sys_user where u_asssets between 0 and 2100 /* *SQL Aliases * */ select * from sys_User As u /* * SQL Join * */ --笛卡尔积 select *from sys_User,sys_User_Role,sys_User_Status --普通方式两表联查 select *from sys_User,sys_User_Role where sys_User.FK_sys_User_Role = sys_User_Role.r_Id --普通方式三表联查 select *from sys_User,sys_User_Role,sys_User_Status where sys_User.FK_sys_User_Role = sys_User_Role.r_Id and sys_User.FK_sys_User_Status = sys_User_Status.s_Id --SQL Inner Join --两表联查 select * from sys_User as u inner join sys_User_Role r on u.FK_sys_User_Role=r.r_Id --三表联查 select * from sys_User as u inner join sys_User_Role r on u.FK_sys_User_Role=r.r_Id inner join sys_User_Status s on u.FK_sys_User_Status =s.s_Id --SQL Left Join --两表联查 select * from sys_User as u left join sys_User_Role r on u.FK_sys_User_Role=r.r_Id --SQL Right Join --两表联查 select * from sys_User as u Right join sys_User_Role r on u.FK_sys_User_Role=r.r_Id --SQL Full Join --两表联查 select * from sys_User as u full join sys_User_Role r on u.FK_sys_User_Role=r.r_Id /* * SQL Union * 注意:使用 UNION、INTERSECT 或 EXCEPT 运算符合并的所有查询必须在其目标列表中有相同数目的表达式。 */ --select * from sys_User --union --select *from sys_User_Role select COUNT(*) from sys_User union select count(*) from sys_User_Role /* * SQL Select Into * */ select * into mycopeTable from sys_User select sys_User.u_Name,sys_User.u_Account into mycopeTable2 from sys_User /* * SQL Nulls * */ select * from sys_User where sys_User.u_Account = null select * from sys_User where sys_User.u_Account is not null select * from sys_User where sys_User.u_Account is null -------------------------------------函数应用--------------------------------------------------------------- -- 语法:SELECT function(列) FROM 表 /* * SQL isnull() * 如果值为null 返回指定的参数 */ select sys_User.*, ISNULL(sys_User.u_Desc,'') from sys_User /* * SQL AVG(column) * 平均数 */ select AVG(sys_User.u_Asssets) from sys_User /* * COUNT(column) 返回某列的行数(不包括NULL值) */ select COUNT(sys_User.u_Asssets) from sys_User /* * COUNT(*) 返回被选行数 */ select COUNT(*) from sys_User /* * MAX(column) 返回某列的最高值 */ select MAX(sys_User.u_Asssets) from sys_User /* * MIN(column) 返回某列的最低值 */ select MIN(sys_User.u_Asssets) from sys_User /* * SUM(column) 返回某列的总和 */ select sum(sys_User.u_Asssets) from sys_User /* * COUNT(DISTINCT column) 返回相异结果的数目 */ select COUNT(distinct sys_User.u_Asssets ) from sys_User
相关推荐
### SQLServer基础篇知识点梳理 #### 一、SQL Server 简介 1. **SQL Server 定义**: - SQL Server 是由微软开发的一款关系型数据库管理系统。 - 它支持多种操作系统,最初是在OS/2系统上运行,后来主要在Windows...
在本篇总结中,我们将深入探讨SQL的核心概念、常见操作以及实践经验,旨在帮助你提升SQL技能并积累宝贵的经验。 一、SQL基础 1. 数据库与表:SQL主要用于创建、查询、更新和管理数据库中的数据。数据库是一个组织...
本篇文章将全面总结SQL语句的基础知识,为数据库学习者提供基础指导。 1. **查询操作** - **查表结构**:使用`DESC 数据表名`可以查看表的字段名称、数据类型和是否允许为空等信息。 - **单表查询** - **简单...
在"二期5.0 SQL总结.sql"这个文件中,很可能包含了以上提到的各种SQL语法示例和练习题,通过实践操作,可以加深对SQL进阶知识的理解和应用。学习并熟练掌握这些内容,将使你在数据库管理和数据分析领域更加得心应手...
该资源为SQL语法总结篇使用到的数据库源文件 可使用该文件结合博客内容跟练学习SQL通用语法&SQL查询操作&SQL表连接操作&SQL聚合函数&SQL常用函数(时间函数、字符串函数、ifnull 和coalesce函数、if判断等),并掌握...
Oracle数据库培训SQL基础篇PPT课件笔记 以下是本资源的详细知识点总结: 基本的SELECT语句 * SELECT语句的功能:列选择、行选择、连接 * 基本的SELECT语句结构:SELECT *| {[DISTINCT] column|expression[alias],...
SQL语句之基础语法汇总是一篇详细的SQL语句基础知识总结,包括创建表、修改表、删除表、添加数据、更新数据、删除数据等基础语法。下面是对该篇文章的知识点总结: 一、创建表、修改表、删除表 * 创建表:使用...
《2017年深圳-华为SQL总结》 在信息技术领域,SQL(Structured Query Language,结构化查询语言)是数据库管理、数据查询和更新的核心工具。这篇文档详细总结了2017年深圳华为公司在使用SQL过程中的一些关键知识点...
本篇文章将对SQL语句的基础进行深入的总结,包括常用的查询语句及其功能。 首先,SQL中最基础的查询语句是SELECT,用于从数据库中选择并返回指定列的数据。你可以通过指定列名来获取特定的信息,或者使用通配符(*...
这篇自我总结将探讨SQL的重要性、其功能以及如何有效地学习SQL。 首先,理解SQL的基本概念至关重要。SQL是一种标准化的语言,适用于多种数据库管理系统,如MySQL、Oracle、SQL Server、PostgreSQL等。它的主要功能...
本篇总结将深入探讨SQL的基础概念、分类以及常用DDL语句。 首先,SQL语言的重要性在于其标准化,使得在不同关系型数据库系统如MySQL、Oracle、SQL Server等之间进行交互变得方便。SQL主要分为三类语句: 1. DDL...
### SQL学习总结:掌握核心查询技巧 ...通过本篇文章的学习,相信读者已经对SQL的查询语句有了全面而深入的理解。未来,在面对各种数据库操作需求时,能够更加游刃有余地运用SQL,提升数据处理的效率和效果。
本篇文章将围绕《SQL学习总结(实用)》的标题和描述,探讨一些关键的SQL优化技巧和概念。 1. **选择最有效的表名顺序**:在编写SQL查询时,特别是涉及多表联接的查询,表的处理顺序会影响查询效率。Oracle解析器...
【SQL实习总结】 本次SQL实习是一次为期一周的实践学习,主要目的是巩固和深化理论知识,将课堂上学到的SQL Server数据库管理技能付诸实践。实习过程中,我们参与设计了一个google订餐系统的数据库,通过实际操作,...
本篇文章将深入探讨SQL Server中的基础典型案例,包括INSERT、UPDATE语句的详细解析。 首先,让我们从SQL语句的基础入手。SQL(Structured Query Language)是用于管理和处理关系数据库的标准编程语言。在SQL ...
根据提供的文档信息,我们可以从以下几个方面来总结和提炼SQL实训的相关知识点: ### 1. SQL实训的目的和意义 - **实训目的**:SQL实训的主要目的是让学生通过实践操作,加深对SQL语言及其应用的理解,提高解决...
这篇“SQL大总结”显然是一篇全面概述SQL核心概念和技术的文章,旨在帮助读者深入理解并熟练掌握SQL的使用。从标签“源码”和“工具”可以推断,这篇总结可能涵盖了SQL在实际开发中的应用以及与工具集成的相关内容。...