SQL关系型数据库&结构化查询语言

合集下载

sql实验心得

sql实验心得

sql实验心得在进行SQL实验过程中,我学会了如何使用SQL(StructuredQuery Language)语言来管理和操作关系型数据库。

通过实践与掌握基本的SQL知识,我进一步提升了自己在数据库领域的能力和技术水平。

在这篇文章中,我将分享我在SQL实验中的心得和体会。

一、实验背景SQL是一种专门用于管理和操作关系型数据库的语言。

通过SQL,我们可以方便地进行数据的查询、插入、更新和删除等操作,实现对关系型数据库的有效管理。

在实验中,我主要使用的是MySQL数据库管理系统,结合SQL语言来完成各种数据库操作。

二、实验过程1. 数据库的连接与创建在实验开始时,我首先需要连接到MySQL数据库。

通过数据库连接工具,我输入相关的连接信息,例如数据库名称、用户名和密码等,成功连接到数据库后,便可以开始进行后续的实验操作。

接下来,我需要创建一个用于实验的数据库。

通过SQL的CREATE DATABASE语句,我可以轻松创建一个新的数据库,并指定数据库的名称。

例如,我可以使用以下语句创建一个名为"mydatabase"的数据库:CREATE DATABASE mydatabase;2. 表的创建与数据插入数据库中的数据存储在表中,因此在进行实验前,我需要先创建表,并将数据插入到表中。

通过SQL的CREATE TABLE语句,我可以定义表的结构和字段。

例如,我可以使用以下语句创建一个名为"employees"的员工表,并定义字段包括员工ID、姓名、职位和薪水等信息:CREATE TABLE employees (id INT PRIMARY KEY,name VARCHAR(50),position VARCHAR(50),salary DECIMAL(10,2));接下来,我可以使用INSERT INTO语句,将数据插入到表中。

例如,我可以使用以下语句向"employees"表中插入一条员工记录:INSERT INTO employees (id, name, position, salary)VALUES (1, 'John Smith', 'Manager', 5000.00);3. 数据查询与过滤数据查询是SQL中最常用且重要的操作之一。

第七章-关系数据库标准语言SQL

第七章-关系数据库标准语言SQL

Access中数据类型
字符 日期/时间 短整型 单精度型 长整型 双精度型
说明
熟悉掌握 熟悉掌握 熟悉掌握 熟悉掌握 熟悉掌握
BIT / LOGICAL MEMO MONEY
IMAGE
逻辑型 备注 货币
OLE对象
教学进度
计算机科学与工程系
数据定义: SQL语言的数据定义主要包括表和索引的创建、修改 和删除操作。 1. 建立数据表
教学进度
答案
create table 订单明细
计算机科学与工程系
(订单号 char(8),
图书编号 char(5),
数量 smallint , primary key(订单号,图书编号), foreign key(订单号) references 订单(订单号),
foreign key(图书编号) references 图书(图书编号)
ALTER TABLE 订单 ALTER COLUMN 客户编号 INT; ALTER TABLE 订单 DROP 客户名称;
教学进度
计算机科学与工程系
3. 删除数据表 格式:DROP TABLE <表名> 功能:删除表。 说明:表一旦被删除,表中的数据、此表上建立的索引 和查询等结构都将自动被删除,并且无法恢复,因此一定要 格外小心。 例如:删除订单明细表。 DROP TABLE 订单明细
教学进度
计算机科学与工程系 ④ CHECK是域完整性约束,用于输入列值时对输入数据进行有效 性检查。(Acess中的sql直接不支持check关键字,可以用Access表的设计 视图中“有效性规则”完成)。 ⑤ UNIQUE唯一性约束,要求不同记录在此字段上取值不能相等。 例如,CREATE TABLE 系 (系编号 CHAR(5) NOT NULL, 系名称 CHAR(20) NOT NULL UNIQUE, 系主任 CHAR(20), 学院编号 CHAR(5), PRIMARY KEY(系编号), FOREIGN KEY(学院编号) REFERENCES 学院(学院编号)); 说明:UNIQUE 唯一性约束则要求姓名不能有重名。 另外,完整性约束主要掌握前2种。

关系数据库标准语言SQL

关系数据库标准语言SQL
该系统将待传输的数字电信号直接在光源的发光过程中 进行调制,使光源发出的光本身就是已调制光,又称为 内调制光纤通信系统。目前广泛采用。
(2)外调制光纤通信系统
该系统是在光源发出光之后,在光的输出通路上加调制 器(如电光晶体等)进行调制,又称为间接调制光纤通 信系统。
(3)外差光纤通信系统
该系统又称为相干光通信系统。在研制中。
SQL
视图1
视图2
外模式
基本表1
基本表2
存储文件1
基本表3
基本表4 模 式
存储文件2
内模式
4.2 网上书店数据库
为此定义网上书店数据库,其中包括5个表 用户表:USER1(ID,NAME,PASSWORD,ADDRESS,
POSTCODE,EMAIL,HOMEPHONE,CELLPHONE, OFFICEPHONE) 图书类型表:SORTKIND(ID,NAME) 图书表:PRODUCT(ID,NAME,DESCRIPTION, PRICE,IMG,ZUOZHE,SORTKIND_ID) 订单表:USER1_ORDER(ID,STATUS,COST,DATE, USER1_ID) 订单条目表:ORDER_ITERM(ID,AMOUNT, PRODUCT_ID,ORDER_ID) 关系的主码加下划线表示。
第4章 关系数据库标准语言SQL
本章主要内容
由于SQL语言的标准化,所以大多数关系型数据库系 统都支持SQL语言,它已经发展成为多种平台进行交 互操作的底层会话语言,成为数据库领域中一个主 流语言。这一章将详细介绍SQL的核心部分:数据定 义、数据查询、数据更新和嵌入式SQL。
本章学习目标
熟练掌握SQL语言的数据定义、数据查询、数据更新 功能

第3章 关系数据库标准语言——SQL

第3章  关系数据库标准语言——SQL

Tempdb
3.3.2 SQL Server的实例数据库
实 例 数 据 库 Northwind 的 数据
pubs


实例数据库
\MSSQL\Install
Instpubs.sql Instnwnd.sql
3.3.3 创建用户数据库
用Enterprise Manager 创建数据库 用SQL命令创建数据库
数据的完整性 约束( 约束(Constraint) ) 正确性 默认( 默认(Default) ) 有效性 规则( 规则(Rule) ) 触发器( 触发器(Trigger) ) 存储过程( 存储过程(Stored Procedure) )
相容性
完整性约束的基本语法格式
[CONSTRAINT <约束名> ] <约束类型>
SQL语言具有数据查询,数据定义,数据操纵和数据控 制四种功能
3.2 了解SQL Server 2000
SQL Server是一个关系数据库管理系统 是一个关系数据库管理系统
企业版(Enterprise Edition) 企业版( ) 标准版( 标准版(Standard Edition) ) 个人版( 个人版(Personal Edition) ) 开发者版( 开发者版(Developer Edition) )
[例3-2] 修改Northwind数据库中的Northwind文件增容方式为一次增加 2MB. ALTER DATABASE Northwind MODIFY FILE ( NAME = Northwind, FILEGROWTH = 2mb )
3.3.5 删除用户数据库
用Enterprise Manager删除数据库 用SQL命令删除数据库

数据库关系代数与SQL语句解析

数据库关系代数与SQL语句解析

数据库关系代数与SQL语句解析数据库关系代数是数据库管理系统中广泛应用于关系型数据库的一种计算机科学算法。

它是一种基于集合论的查询语言,用于描述在关系型数据库中执行查询操作的方法和规则。

SQL语句则是基于关系代数的查询语言,用于在关系式数据库管理系统中进行数据检索和操作的标准程序设计语言。

数据库关系代数提供了对关系数据库进行操作的一组基本操作。

这些操作包括选择、投影、并、交、差、笛卡尔积和自然连接等。

通过对这些基本操作的结合和嵌套使用,可以实现复杂的数据库查询和操作。

值得注意的是,虽然关系代数操作是一种抽象的计算方法,但在数据库管理系统中,它可以通过SQL语句来实现。

SQL(Structured Query Language)是一种标准化的关系数据库操作语言。

它由美国国家标准协会(ANSI)和国际标准化组织(ISO)定义。

SQL通过一系列的语句来描述对数据库的操作。

SQL语句包括数据定义语言(DDL)、数据操纵语言(DML)和数据控制语言(DCL)等不同类别。

数据定义语言(DDL)主要用于创建、修改和删除数据库、表、索引和视图等数据库对象。

DDL语句可以用来创建表、定义列、指定约束、创建索引等。

例如,CREATE DATABASE语句用于创建数据库,CREATE TABLE语句用于创建表。

数据操纵语言(DML)用于查询和操作表中的数据。

DML语句包括SELECT、INSERT、UPDATE和DELETE 等。

SELECT语句用于查询数据库中的数据,INSERT语句用于向表中插入数据,UPDATE语句用于更新表中的数据,DELETE语句用于删除表中的数据。

数据控制语言(DCL)用于定义数据库的安全性和完整性。

DCL语句包括GRANT和REVOKE等。

GRANT语句用于授予用户访问数据库的权限,REVOKE语句用于撤销用户的权限。

与关系代数对应的SQL语句可以通过对关系代数操作的转换来实现。

例如,关系代数中的选择操作可以通过SQL中的WHERE子句实现,关系代数中的投影操作通过SELECT语句实现,关系代数中的并操作可以通过SQL中的UNION操作来实现,关系代数中的笛卡尔积操作可以通过SQL中的JOIN操作来实现等等。

《sql数据库入门》课件

《sql数据库入门》课件
《SQL数据库入门》PPT课 件
目录
• SQL数据库概述 • SQL基础语法 • 数据库设计和创建 • 数据插入、更新和删除 • 数据库查询优化 • SQL函数和存储过程 • SQL数据库安全
01
SQL数据库概述
SQL数据库的定义
1
SQL数据库是一种关系型数据库管理系统,它使 用结构化查询语言(SQL)来创建、操作和管理 数据库。
非关系型数据库
非关系型数据库不使用关系模型来组 织和存储数据,如NoSQL数据库,如 MongoDB、Cassandra等。
SQL数据库的应用场景
电子商务
SQL数据库可以用于电子商务 网站的数据存储和管理,如商
品信息、订单信息等。
金融
SQL数据库可以用于金融行业 的数据存储和管理,如银行系 统、证券交易系统等。
分析查询执行计划
通过查看查询执行计划,分析查询过程中的 瓶颈和问题,针对性地进行优化。
监控数据库性能
实时监控数据库性能指标,及时发现和解决 性能问题。
定期维护数据库
对数据库进行定期的清理、优化和更新,保 持数据库的健康状态。
学习和实践
不断学习和实践新的查询优化技术和方法, 提高自己的技能水平。
06
可扩展性
设计时考虑未来的数据增长和业务变化,确保数 据库能够灵活适应变化。
ABCD
规范化设计
遵循数据库规范化原则,如第一范式、第二范式 等,以减少数据冗余和提高数据一致性。
性能优化
根据查询需求和数据量,合理设计索引、分区等 ,以提高查询效率。
创建数据库
选择数据库管理系统( DBMS)
根据需求选择合适的DBMS, 如MySQL、Oracle、SQL Server等。

第一章 SQL 数据库概述

第一章  SQL 数据库概述

8
数据库系统的发展经历了三个阶段
数据库发展的初级阶段
数据库系统 发展三个阶段
数据库发展的中级阶段
数据库发展的高级阶段
9
(一)数据库发展的初级阶段
1963年 美国Honeywell公司的IDS( Store)系统投入运行, 1963年,美国Honeywell公司的IDS(Integrated Data Store)系统投入运行, Honeywell公司的IDS 揭开了数据库技术的序幕.1965年 揭开了数据库技术的序幕.1965年,美国一家火箭公司利用该系统帮助设计 了阿波罗登月火箭,推动了数据库技术的产生.1968年 美国IBM IBM公司推出层 了阿波罗登月火箭,推动了数据库技术的产生.1968年,美国IBM公司推出层 次模型的IMS数据库系统(1969年形成产品).1969 IMS数据库系统 年形成产品).1969年 美国CODASYL 次模型的IMS数据库系统(1969年形成产品).1969年,美国CODASYL (Conference On Data System Language,数据库系统语言协会)组织的数据库 Language,数据库系统语言协会) 任务组发表关于网状模型的报告.层次模型与网状模型的数据库系统的出现, 任务组发表关于网状模型的报告.层次模型与网状模型的数据库系统的出现, 揭开了数据库系统发展的序幕. 揭开了数据库系统发展的序幕. 在初级阶段中,由于网状模型数据库的复杂性和专用性, 在初级阶段中,由于网状模型数据库的复杂性和专用性,没有被广泛使 用,而层次模型数据库则由于IBM公司的IMS(Information Management System, 而层次模型数据库则由于IBM公司的IMS( System, IBM公司的IMS 信息管理系统)层次模型数据库系统的发展,得到了极大的发展, 信息管理系统)层次模型数据库系统的发展,得到了极大的发展,其不仅一 度成为最大的数据库管理系统,拥有巨大的客户群,而且直到现在, 度成为最大的数据库管理系统,拥有巨大的客户群,而且直到现在,仍然得 到升级和支持,并不断与新技术结合,在特定的领域内体现出强大的生命力. 到升级和支持,并不断与新技术结合,在特定的领域内体现出强大的生命力.

SQL,NoSQL和NewSQL的区别

SQL,NoSQL和NewSQL的区别

SQL,NoSQL和NewSQL的区别 SQL(Structured Query Language):数据库,指关系型数据库。

主要代表:SQL Server、Oracle、MySQL、PostgreSQL。

NoSQL(Not Only SQL):泛指⾮关系型数据库。

主要代表:MongoDB、Redis、CouchDB。

NewSQL:对各种新的可扩展/⾼性能数据库的简称。

主要代表:Clustrix、GenieDB。

⼆:对⽐ SQL:好处来源于它的统⼀性和易⽤性,缺点是⾯对⼤量的数据时,他的性能会随着数据库的增⼤⽽急剧下降。

NoSQL:以放宽ACID原则为代价,NoSQL采取的是最终⼀致性原则,⽽不是像关系型数据库那样地严格遵守着ACID的原则,这意味着如果在特定时间段内没有特定数据项的更新,则最终对其所有的访问都将返回最后更新的值。

这就是这样的系统通常被描述为提供基本保证的原因(基本可⽤,软状态,最终⼀致性) — ⽽不是ACID。

NewSQL:NewSQL选择汲取了SQL和NewSQL的优点,希望将ACID和可扩展性以及⾼性能结合,但是⽬前⽽⾔,不适⽤于所有的场景。

三:Let's think 根据CAP原则,Consistency(⼀致性)Availability(可⽤性)Partition tolerance(分区容错) 这三点不能够同时做到,所以我们可以猜想,未来的很多年⾥,是不会有这样⼀个能够满⾜所有场景的数据库存在,现在主流的关系型数据库+NoSQL的组合是⼀种解决⽅案,不断涌现出来的NewSQL也能够满⾜⼀定场景中的业务需求。

OldSql:传统关系型数据库NewSql:也是关系型数据库,吸收了传统关系型数据库和NoSql数据库的优点。

可实现强⼀致性(传统关系型DB优点),具有强的⽔平可扩展性(NoSql DB优点)NoSql:⾯向互联⽹应⽤,如web2.0,半结构化,⾮结构化数据的存储图5-6 ⼤数据引发数据处理架构变⾰图5-7 关系数据库、NoSQL和NewSQL数据库产品分类图SQLSQL是关系型数据库管理系统(RDBMS),顾名思义,它是围绕关系代数和元组关系演算构建的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库:用来存储数据的仓库,英文表示为database,简称DB数据:数字、文字、图片、视频、音频、文本等等,在计算机科中能输入到计算机并能被计算处理的符号的总称数据库的管理系统:简称DBMS【介于用户和操作系统之间一层管理软件.主要负责用户与数据库之间沟通】现今流行的的数据库管理系统1、小型Access【Office软件产品之一】、VF…2、中型SQLServer【Microsoft微软】、MySQL【瑞典一个小公司出品】、DB2【IBM公司】3、大型Oracle【甲骨文公司】…数据库管理包括1、数据的定义部分【包括创建数据库、修改数据库、删除数据库、创建数据表、修改表结构、删除数据表、添加/删除约束条件】2、数据的操纵部分【对数据的处理(添加数据、修改数据、删除数据、查询数据等)】3、数据库的运行和管理4、数据库的建立和维护数据库系统:用户【后台开发人员】----数据库管理系统----数据库管理员----数据库注意:用户通过数据库管理系统操作数据库,数据库管理员可以通过数据库管理系统操作数据库,也可以直接操作数据库通常目前使用的数据库管理系统都是关系型数据库关系型数据库中存放一个或者多个关系,每一个关系就是一张二维表不同的关系表存在一些关系1、一对一关系2、一对多关系3、多对多关系关系表:以二维表形式存在,不同的数据表之间存在关系元组【记录】:存放在二维表中的一行记录,任何一张表中没有完全相同的记录属性【字段】:存放在二维表中的一列信息,同一字段的属性名称不能相同域【字段值】:存放在二维表中的属性值,同一列的数据值类型必须一致主码【主键】:用来唯一标识某一行记录的属性,主键尽可能不参与任何业务逻辑,跟实际功能无关,任何数据表中都要有主键############################################################################### sql server 2005版本1)sql server 2005企业版:只能安装windows server操作系统.如:windows server 20032)sql server 2005个人版: 可以安装win xp,windows 2000/2003,windows vista3)sql server 2005简装版:随Microsoft Visual Studio 2005安装的.4)sql server 2005开发版:5)sql server 2005工作组版############################################################################### SQL语言:标准的结构化查询语言【所有数据库管理系统通用的标准语言】使用数据库管理系统【SQLServer为例】1、安装SQLServer数据库【SQLServer2005开发板的安装】对于32位操作系统安装X86,对于64位系统安装X64,由于SQLServer2005自带客户端管理界面,先安装Tools文件夹中的客户端管理界面,再安装Server文件夹中的服务器2、开启服务注意:安装SQLServer数据库会生成相关服务,默认情况下服务是自动并且开启,为了保证系统的顺畅运行,习惯将服务都设置成手动,不需要的服务可以暂时关闭服务启动类型1)自动:windows运行时服务会自动开启2)手动:当需要时,用户手动去点击服务才会开启3)禁用:服务不允许使用.注:最好将sql server服务设置为手动方式.其中:SQL Server(MSSQLServer)服务是运行数据库必须要开启的,其中小括号中的内容可能在家用电脑中名字有所区别(命名实例SQLServer)我的电脑右键----管理---服务和应用程序---服务---找到SQL Server(MSSQLServer)服务双击----点击启动-----确定3、打开SQLServer进入登录界面开始---程序---SQLServer---SQLServer Management注意:安装数据库过程中如果选择登录模式为【混合模式SQLServer身份登录】通过用户名sa和密码可以直接登录如果数据库过程中如果选择登录模式为【Windows模式登录】不需要用户名密码直接登录进入数据库后再自行设置登录名和密码以及所属权限设置登录名和密码以及所属权限:以Windows模式登录---安全性---登录名---右键新建登录名---设置名字和密码---服务器角色处选择sysadmin---确定---断开连接重新进入登录界面---选择SQLServer身份登录---输入登录名和密码---确定自带的系统数据库:1)master: 存放数据库的启动和配置信息2)model: 是一个模版数据库,新建的数据库都以它为模版.3)tempdb: 存放临时数据的.4)msdb: 存放任务的周期性执行数据库:主要由数据文件,日志文件组成.数据文件:分为主数据文件和次数据文件主数据文件:它的扩展名为.mdf,存放数据库的配置信息和一般数据次数据文件:它的扩展名为.ndf,用来辅助主文件不足的.日志文件:它的扩展名为.ldf.用来存放日志信息,利用日志文件可以进行数据恢复。

注:主数据文件有且仅有一个、次文件可以没有、也可以有多个,日志文件至少有一个,也可以有多个。

注:登录服务名称中可以输入计算机名或者计算机ip或者.表示登录本地sql server 数据库常用的数据类型int 整型--4字节=4*8=32位范围:-2^31~2^31-1char 字符型--静态长度varchar 字符型--动态长度numeric(m,n) m表示整数和小数位数,n表示小数的位数.如:numeric(4,1)datetime 时间日期型text 存放大量文本image 存放二进制文件,如:声音,图像等.约束:保证数据的完整型和一致性主键(primary key):唯一标识表中一条记录.一个表只有一个主键,不能为空,也不能重复.唯一(unique):一个表可以有多个唯一,可以为空,但只能空一次,不能重复.检查(check):检查字段的取值范围如: 年龄>=18 and 年龄<=60,年龄是表中字段性别='男' or 性别='女',性别是表中字段,字符型用单引号引上。

空(null):表示字段的内容可以不填写.非空(not null):表示字段的内容必须要填写默认(default):事先给字段设置好的一个值,当用户不填写时,会自动填入设好的值。

如果填写就会复盖设好的值.标识列(identity):一个表只有一个标识列,它可以产生连续且唯一的编号,并且递增产生。

某字段设置标识列之后,用户给该字段插入值或修改值.字段类型必须是整型外键(foreign key):需要2个表,用一个表字段参考于另一个表另一个字段.建外键的表为子表(外键表),被参考的表为主表(主键表),要求主表被参考的字段为主键或唯一约束,子表的字段类型要与主表的字段类型要相同。

注意:SQLServer注释分2种:--注释内容单行/*注释内容*/多行数据的定义语言:对创建数据库、使用数据库、数据表的创建、修改数据表的结构、添加约束条件通过命令对数据库操作:打开并登录数据库管理系统----工具栏新建查询---为SQL文件创建目录---起名---确定1、创建数据库create database 数据库的名称;例如:create database myDB;数据文件(主文件.mdf,次文件.ndf)和日志文件(.ldf)create database 数据库名on(name=逻辑名1,filename='路径+文件名.mdf',size=初始值MB,maxsize=最大值MB,filegrowth=x%|xMB),(name=逻辑名2,filename='路径+文件名.ndf',size=初始值MB,maxsize=最大值MB,filegrowth=x%|XMB),...log on(name=逻辑名3,filename='路径+文件名.ldf',size=初始值MB,maxsize=最大值MBM,filegrowth=x%|XMB)注:name,filename不能省略,可以省略size=1MB,maxsize=不受限制,filegrowth=10% name逻辑名不能重复.name和filename 一一对应的例如:create database MyDBon(name=MyDB_MDF_data,filename='F:\MyDB_MDF_data.mdf',size=5MB,maxsize=100MB,filegrowth=20%),(name=MyDB_NDF _data,filename='F:\MyDB_NDF_data.ndf',size=5MB,maxsize=100MB,filegrowth=20%)log on(name=MyDB_log,filename='F:\MyDB_log.ldf',size=5MB,maxsize=100MB,filegrowth=20%)如图【F盘目录下生成如下文件】############################################################################### 2、使用数据库use 数据库的名称;例如:use myDB;3、删除数据库drop database 数据库名;例如:drop database myDB;数据库在使用状态下,无法删除,先使用其它数据库,然后再删除4、修改数据库给现有的数据库的新增一个数据文件alter database 数据库名add file(name=逻辑名,filename=’路径+文件名.ndf',size=初始值MB,maxsize=最大值MB,filegrowth=X%|XMB)例如:alter database MyDBadd file(name=MyDB_NDF_data,filename='F:\MyDB_NDF_data.ndf',size=10MB,maxsize=200MB,filegrowth=10MB)增加一个日志文件alter database 数据库名add log file(name=逻辑名,filename='路径+文件名.ldf',size =初值MB,maxsize=最大值MB,filegrowth=X%|XMB)例如:alter database MyDBadd log file(name=MyDB_log,filename='F:\MyDB_log.ldf')修改数据库的参数alter database 数据库名modify file(name=逻辑名,size=初值MB,maxsize= 最大值MB,filegrowth=X%|XMB)注:filename不能修改,一次最好修改一个参数例如:alter database MyDBmodify file(name=MyDB_log,size=10MB)删除数据中的文件alter database 数据库名remove file 逻辑名例如:alter database MyDB remove MyDB_log;修改数据库名exec sp_renamedb '旧数据库名','新数据库名'例如:exec sp_renamedb'MyDB','MyDataBase';查看数据库信息exec sp_helpdb 数据库名例如:exec sp_helpdb MyDataBase;############################################################################### 通过数据库管理系统创建数据表在所选数据库上右键---新建表---为表设置列名以及类型【常见的类型:varchar字符串、char 字符、int整数、float小数、datetime日期等】注意:创建表必须为表中设置一个唯一标识的列【主键】:在要设置主键的列上右键---选择设置主键【主键是不能为空】---确定设置主键自增长:要想通过数据库自动为我们维护主键唯一:前提主键必须为整数int类型,选择主键列在下面的窗口中找到标识规范---选择是否标识【是】,出现标识增量【每次添加记录主键会自增长的数】和标识种子【主键起始值】############################################################################### 通过命令行创建数据表create table 表名(列名1 列的类型1 primary key identity(1,2),列名2 列的类型2,列名3 列的类型3,列名4 列的类型4);例如:create table t_user(userOID int identity(1,1)primary key,userName varchar(22),userAge int,userSex char(2),userBirth datetime,userSary float);其中primary key表示主键identity(1,2)表示自增长【参数1:表示标识种子,参数2:表示标识增量】注意:主键如果想要设置自增长,主键列必须为整数类型表结构如下用户表修改表的结构1、修改表结构添加列【为表中添加列,实际上修改原有表的结构】alter table 表名add 列名列的类型;例如:alter table t_user add userContext char(2);2、修改表结构列的类型【修改的是表中列的类型】alter table 表名alter column 要修改的列名修改后列的类型;例如:alter table t_user alter column userContext varchar(50);3、修改表结构删除列alter table 表名drop column 要删除的列名;例如:alter table t_user drop column userContext;如果想要修改表【列】名称exec sp_rename '表名.表中要修改的列名','新修改的列名','column';exec sp_rename '旧表名','新表名';############################################################################### 删除数据表drop table 表名;例如:drop table t_user;数据表的复制1、复制整张表select * into 新表名from 旧表名;例如:select*into tt_user from t_user;2、只复制表结构不要数据内容select * into 新表名from 旧表名where 1 = 0;例如:select*into ttt_user from t_user where 1 = 0;注意:复制表只能复制表的结构以及数据,但是无法对表的约束进行复制,需要为新表重新添加约束条件############################################################################### 数据表的约束条件基本形式alter table 表名add constraint 约束名约束条件;注意:同一数据库下的表约束名不能相同1、主键约束alter table 表名add constraint 约束名primary key(要设置主键的字段名);例如:alter table t_user add constraint pk primary key(userOID);2、默认约束alter table 表名add constraint 约束名default 默认值for 要设置默认的字段名;例如:alter table t_user add constraint df default'女'for userSex;注意:默认值的类型要和设置该字段的类型一致3、唯一约束:属于业务逻辑功能,类似主键alter table 表名add constraint 约束名unique(要设置唯一的字段名);例如:alter table t_user add constraint un unique(userName);4、检查约束alter table 表名add constraint 约束名check(要设置检查的表达式);例如:alter table t_user add constraint ck check(userAge<=22 or userAge>=34); alter table t_user add constraint c_k check(userAge>=0 and userAge<=74);5、外键约束通常存在不同关系的两张表,多方存放一方的唯一标识alter table 外键所在表名add constraint 约束名foreign key(要设置约束列名)references 另一张表名(另一张表主键名);例如:alter table t_user add constraint fg foreign key(userGroupID)references t_userGroup (userGroupOID);注:设置外键约束的表数据删除后才能删除另一张表对应主键删除约束alter table 表名drop constraint 约束名;例如:alter table t_user drop constraint pk;alter table 表名nocheck constraint 约束名;例如:alter table t_user nocheck constraint ck;激活约束alter table 表名check constraint 约束名;例如:alter table t_user check constraint ck;注:激活和关闭约束适合于外键和检查约束############################################################################### 数据的操纵1、添加数据插入表中全部记录【表中有多少列,就需要插入多少值,并且插入的记录要和定义表中列的类型一致】insert into 表名values(列的值1,列的值2,列的值3,列的值4,......);例如:insert into t_user values('张三',22,'女','2012-12-12',2222.222);插入表中部分记录【插入的记录要和定义表中列的类型一致】insert into 表名(指定要插入的列名1,列名2,.....) values (列的值1,列的值2,......); 例如:insert into t_user (userName,userAge,userSex)values('张三',22,'女'); 2、修改修改表中所属列的所有记录update 表名set 要修改的列名=要修改列的值;例如:update t_user set userName='李四';根据条件修改表中所属列的记录update 表名set 要修改的列名=要修改列的值where 条件;update 表名set 要修改的列名=要修改列的值where 条件1 and 条件2,......;update 表名set 要修改的列名=要修改列的值where 条件1 or 条件2,......;例如:update t_user set userSary=7777.74 where userOID=1;update t_user set userSary=7777.74 where userAge>22 and userAge<44; update t_user set userSary=7777.74 where userAge<31 or userAge>47;删除表中所有记录------初始化数据表delete from 表名;truncate table 【删除速度快,不写入日志中,删除后不可恢复】例如:delete from t_user;truncate table t_user;根据条件删除表中所属的记录delete from 员工表where 条件;delete from 员工表where 条件1 and 条件2,......;delete from 员工表where 条件1 or 条件2,......;例如:delete from t_user where userOID=1;delete from t_user where userAge>22 and userAge<44;delete from t_user where userAge<31 or userAge>47;############################################################################### 4、查询【简单的基本查询】查询表中所有记录select * from 表名;例如:select*from t_user;查询表中指定列的所有记录select 列名1,列名2,..... from 表名;例如:select userName,userSex from t_user;根据条件查询表中指定列的所有记录select 列名1,列名2,..... from 表名where 条件;select 列名1,列名2,..... from 表名where 条件1 and 条件2,......;select 列名1,列名2,..... from 表名where 条件1 or 条件2,......;例如:select userName,userSex from t_user where userOID = 1;select userName,userSex from t_user where userAge>22 and userAge<44; select userName,userSex from t_user where userAge<31 or userAge>47;############################################################################### 关于查询格式select 字段1,...字段n from 表名where 条件group by 字段having 分组条件order by 字段asc | desc其中:*表示所有字段例如:select*from t_user;只显示某几个字段【字段列表,字段之间用逗号分开】例如:select userName,userSex from t_user;运算符:注:sql server 2005:"+"不仅表示字符串连接,也表示加运算.>、<、>=、<=、!=不等于、<>不等于、=等于+、-、*、/and 表示与相当于语言中&&or 表示或相当于语言中||not 表示非--相当于语言中!例如:select userName,userSex from t_user where userAge>22 and userAge<44; select userName,userSex from t_user where userAge<31 or userAge>47; select userName,userSex from t_user where not userAge=11;select userName,userSex,userSary+subSidySary from t_user;字段的别名空格分开例如:select *,userSary+subSidySary sumSary from t_user;as 分开例如:select *,userSary+subSidySary as sumSary from t_user;'字段别名'=字段名例如:select*,sumSary=userSary+subSidySary from t_user;between and【表示范围】相当于字段>=值1 and 字段<=值2例如:select*from t_user where userAge between 11 and 22;相当于select*from t_user where userAge>=11 and userAge<=22;in 表示集合,是否在集合中字段in(值1,...值n)例如:select*from t_user where userAge=18 or userAge=11 or userAge=22; 相当于select*from t_user where userAge in(18,11,22);not in 与in相反.例如:select*from t_user where userAge not in(11,18,13);模糊查询:查询姓李的人的所有信息select * from 表名where userName like '李%';例如:select*from t_user where userName like'李%';查询姓名最后一个字为'明'的人的所有信息select * from 表名where userName like '%明';例如:select*from t_user where userName like'%明';查询姓名中间文字为'明'字的人的所有信息select * from 表名where userName like '_明_';例如:select*from t_user where userName like'_明_';查询名字含有李字的人的所有信息例如:select*from t_user where userName like'%李%';排除姓李的人的所有信息例如:select*from t_user where userName like'[^李]%%'指定姓李的人的所有信息例如:select*from t_user where userName like'[李]%%'其中Like修饰符使用了简单的正则表达式,引用几种种通配符% 匹配任何数目的字符,甚至零个字符_ 精确匹配一个字符[]指定单个字符的范围[^]排除指定字符的范围not like 与like 相反查询名字第二个字不是李字的人的所有信息例如:select*from t_user where userName not like'_李%'查询名字中含有”_”的记录例如:select*from t_user where userName like'%_%'查询结果有误select*from t_user where userName like'%[_]%'[^]通配符select*from t_user where userName like'_[李]_';select*from t_user where userName like'_[^李]_';逃逸字:查询的内容中当包含通配时,将通配符做为一个普通字符处理。

相关文档
最新文档