数据库笔记(1)

sql server

MSSQLServer

microsoft sql server;

Catalog分类(又叫数据库dataBase/表空间TableSpac),卜同磊的数据应该放到不同的数据库中。

便于对哥各个Catatlog进行个性化管理

避免命名冲突

安全性更高

Table表:数都放到书架上,碗都放到橱柜中,不同类型的资料放到不同的格子中,将这种区域叫做表。不同的表根据放的数据不同进行空间的优化,找起来也方便。

列column 字段field

主键就是数据行的唯一标示,不会重复的列才能当主键。一个表可以没有主键,但是

2003年5月入职,是产品开发部的,姓名马小虎

王二下,技术

主键(PrimaryKey)

工号 姓名 部门 入职时间

001 凤姐 员工培训部 2010年7月5日

002 瘦瘦 公关部 2010年8月2日

003 憨憨 开发部 2009年3月5日

主键就是数据行的唯一标识。不会重复的列才能当主键。一个表可以没有主键,但是会非常难处理,因此没有特殊理由表都是要设定主键

主键有两种选用策略:业务主键和逻辑主键。业务主键是使用有业务意义的字段做主键,比如身份证号、银行账号等;逻辑主键是使用没有任何业务意义的字段做主键。完全给程序看的,业务人员不会看的数据。因为很难保证业务主键不会重复,(身份证号重复不会变化,(账号升位),因此推荐用逻辑主键。

表间关联、外键(ForeignKey)

商品名 价格 生产厂家 厂家地址 厂家电话

太太香瓜子 5.00 太太食品厂 恰恰

大大开心果

苦咖啡

随便

sql server的两种验证方式:用户名验证和Windows验证,开发时用Windows验证就行。

开发人员关注点在开发上,而不是配置、备份等之上,那是DBA做的事情。

创建数据库,创建表,设置主键

常用字段类型:bit(可选值0、1)、datetime、int、varchar/nvarchar(可能含有中文用nvarchar)

Nvarchar(50)/Nvarchar(MAX)

varchar/nvarchar和char(n)的区别:char(n)不足长度n的部分用空格填充

Var:variable,可变性。

SQL语句是和DBMD交谈专用的语句,不同DBMS都认SQL语句。

SQL语句中字符串用单引号。

sql语句是大小写不敏感的,不敏感指的是sql关键字,字符串值还是大小写敏感的,

创建表、删除表不仅可以手工完成,还可以执行sql语句完成,在自动化部署、数据导入中用的很多,create table_Person(ld int NOT NULL.Name nvarchar(50).Age int NULL)、Drop table T_Person1

简单的Insert语句。INSERT INTO T_Person(ld.Name.Age)

VALUES(1,‘Jim‘,20) //字符串用单引号。

SQL主要分DDL(数据定义语言)和DML(数据操作语言)两类。

Creat Table 、Drop Table等属于DDL ,Select ,Insert等属于DML

create table T_Person3(Id int NOT NULL,Name nvarchar(50),Age int NULL)

drop table T_Person3

insert into Person1(Number,Name,Age,NickName) values(3,‘狗蛋儿‘,30,‘aaa‘)

主键选择

sqlServer中两种常用的主键数据类型:int(或者bigint)+标识列(又称自动增长字段):uniqueidentifier(又称Guid/UUID)

用标示符实现字段自增可以避免并发等问题,不要开发人员控制自增。用标示列的字段在Insert的时候不用指定主键的值。

将字段的"是标示列"设置为"是",一个表只能有一个标识列。

Guid算法是一种可以产生唯一标示的高效算法,它使用网卡MAC、地址、纳秒级时间、芯片ID码等算出来的,这样保证每次生成的GUID永远不会重复,无论是同一个计算机上还是不同的计算机。在公元3400年以前产生的GUID与任何其他产生过的GUID都不相同。sqlserver中生成guid的函数newid(),.Net中生成Guid的方法:Guid的优点:高效率、数据导入导出方便;缺点占用空间大、不易读。

select newid()

业界主流倾向于使用Guid.

microsoft visual studio 2010中怎么产生guid

Guid id=Guid.NewGuid();

Console.WriteLine(id);

insert

1 abc 20

2 tom 20

3 jim 25

Id int zhujian

Name nvarchar(50) NUll

Age int NULL

insert into Person3 values (‘lily‘,22)

insert into Person3(Name,Age) values(‘lily‘,33)

insert into Person4(Id,Name,Age) values(newid(),‘tom‘,30)

Insert语句可以省略表名后的列名,但不推荐

如果插入的行中有些字段的值不确定,那么Insert的时候不指定那些列即可。

给可以给字段默认值,如果Guid类型主键的默认值设定为newid()就会自动生成。

很少这么干

主键

9:16

Insert语句可以省略表名后的列名,但是不推荐

如果插入的行中有些字段的值不确定,那么

insert的时候不指定那些列即可。

给可以给字段默认值,如果Guid类型主键的默认值设定为newid()就会

更新一个列:UPDATE T_Person Set Age=30

更新多个列:UPDATE T_Person Set Age=30,Name=‘tom‘

更新一部分数据:UPDATE T_Person Set Age=30 where Name=‘tom‘,用where语句表示只更新Name是‘tom‘的行,注意

sql中等于判断用单个=,而不是==.

Where中还可以使用复杂的逻辑判断UPDATE T_Person Set Age=30 where Name=‘tom‘ or Age<25,or相当于C#中的||(或者)

Where中可以使用的其他逻辑运算符:or,and,not,<,>,>=,<=,!=(或<>)等

update person1 set Age=30;

update person1 set Age=40,Name=‘tom‘;

update person1 set Age=Age+1;

update person1 set NickName=N‘青年人‘

where Age>=23

update person1 set NickName=N‘二十二岁‘

where Age=22;

//在sql语句中等于判断就是一个等号,不是两个等号。

在sql中怎么加注释。

update person1 set NickName=‘二十1岁‘

where Age<>22;

update person1 set NickName=‘二十1岁‘

where Age=22 or Age=23;

删除表中全部数据:DELETE FROM T_Person.

Delete只是删除数据,表还在,和Drop Table不同。

Delete也可以带where子句来删除一部分数据:DELETE FROM

T_Person WHERE FAge>20;

delete from person1 where Age>33;

数据检索

执行备注中的代码创建测试数据表。‘

简单的数据检索:select * from T_Employee

只检索需要的列:select FNumber from T_Employee/

select FName,FAge from T_Employee

列别名:select FNumber AS 编号,FName AS 姓名,FAge AS

Age111 FROM T_Employee

使用where检索符合条件的数据:select FName from T_Employee

where FSalary<5000.故事:新员工的数据检索噩梦。

还可以检索不与任何表关联的数据:select 1+1;

select newid();select getdate();

sql server登陆之前需要启动的所有服务个代表什么意思?

怎么没有办法在表格中插入列项,我发现少了一列,想插入列项。

iT002 Smith 28 3900

iT002 27 2800

SELECT * FROM T_Employee;

SELECT FName from T_Employee

where FSalary<5000

select FName as 姓名,FAge as 年龄,Fsalary as 月薪 from T_Employee

select NEWID();

select 1+2;

select getdate();

select @@VERSION;

select 1+2 as lie1,GETDATE() as riqi,NEWID() as bianhao;

select FName as 姓名,FAge as 年龄,Fsalary+1000 as 月薪 from T_Employeeanhao;

select FName as 姓名,FAge as 年龄,Fsalary as 月薪,GETDATE() as 当前日期 from T_Employee

select COUNT(*) from T_Employee;

select MAX(FSalary) from T_Employee;

select MIN(FSalary) from T_Employee;

select AVG(FSalary) from T_Employee;

select SUM(FAge) from T_Employee;

数据库笔记(1)

时间: 2024-10-10 09:36:11

数据库笔记(1)的相关文章

mysql数据库笔记

虽然select语句可以一次性查出所有的数据,但受计算机屏幕大小的限制,每次只能看到部分行的内容,要看其它内容的时候就要用到滚动条.由于网络的限制,对于web应用来说,这种方式的效率非常低下,数据量比较大的时候几乎是不能使用的. 事实上,通常采用的方法是根据屏幕的大小,一次只查出部分行并显示,如果要看其它的内容,通常采用分页的方式. 那如何在SQL语句中查部分行的内容呢?就要用到limit关键字了. kingbase中可以用下面的语句: 1.查询第一行记录:  select * from 表名

SQL Server 2012 数据库笔记

慕课网 首页 实战 路径 猿问 手记 Python 手记 \ SQL Server 2012 数据库笔记 SQL Server 2012 数据库笔记 2016-10-25 16:29:33 123浏览 0评论 第一章 初识SQL Server2012 1.2.作为SQL Server的最新版本,SQL Server 2012具有以下激动人心的新功能. 1.AlwaysOn. 2.Columnstore索引. 3.DBA自定义服务器权限. 4.Windows Server Core支持. 5.Se

数据库笔记7:视图的作用

第一点:  使用视图,可以定制用户数据,聚焦特定的数据. 解释:  在实际过程中,公司有不同角色的工作人员,我们以销售公司为例的话,  采购人员,可以需要一些与其有关的数据,而与他无关的数据,对他没  有任何意义,我们可以根据这一实际情况,专门为采购人员创建一个视  图,以后他在查询数据时,只需select * from view_caigou 就可以啦. 第二点:使用视图,可以简化数据操作. 解释:我们在使用查询时,在很多时候我们要使用聚合函数,同时还要  显示其它字段的信息,可能还会需要关联

数据库笔记6:检索,排序检索,过滤数据

insert into products(prod_id,prod_name,pro_price)values('avno1','.5 ton anvil',5.99);insert into products(prod_id,prod_name,pro_price)values('avno2','1 ton anvil',9.99);insert into products(prod_id,prod_name,pro_price)values('avno3','2 ton anvil',14.

Unity3D 连接MySQL数据库笔记1-安装MySQL数据库

本教程使用的是MySQL5.0版本 一路下一步安装,到3个选项这里 选择自定义 在“MySQL Server(MySQL服务器)”上左键单击,选择“This feature, and all subfeatures, will be installed on local hard drive.”,即“此部分,及下属子部分内容,全部安装在本地硬盘上 直接下一步安装下一步 知道 出现这个 勾选,现在开始配置MySQL 继续下一步,到这个图这里 选择配置方式,“Detailed Configurati

Unity3D 连接MySQL数据库笔记3-SQL建表

打开  Navicat MySQL管理工具 连接到数据库 选择 test 数据库 点击 查询 输入对应的 sql命令 create table tuser( uname varchar(20) not null primary key, upwd varchar(20) not null ); create table p_info( pkey varchar(15) not null primary key, pname varchar(20) not null, psex varchar(2

Unity3D 连接MySQL数据库笔记4-Unity3d代码

新建Unity3D项目 新建一个 Plugins文件夹 把所需要的DLL放到 Plugins中 新建C#脚本 命名为ToMysql.cs 不多说了 ,直接上代码,很简单  有注释 ,大家一看就明白了 using UnityEngine; using System; using System.Collections; using System.Data; using MySql.Data.MySqlClient; public class ToMysql : MonoBehaviour { pub

分布式数据库笔记

分布式数据库笔记 分布式的基本要求 数据分布性 数据统一性 数据透明性 数据安全性 可扩展性 数据自治性 分布式系统的优点 灵活性更高 成本优势 可靠性.可用性更高 局部响应速度快 分布式系统的缺点 通信开销大 跨节电逻辑实现复杂 数据保密性差 区别: 逻辑整体性 分布式数据系统的分类 同质同构数据库 同质异构数据库 异构数据库 体系架构 数据分配 分割分配 全复制分配 数据分片(完备性.重构条件.不相交条件) 水平分片 垂直分片 混合分片 分布式数据库组件 全局数据字典 全局数据管理系统 局部

ORACLE数据库笔记之PL/SQL

PL/SQL PL/SQL是一种块结构的语言,它是将一组语句放在一个块中,一次性发送给服务器.它是结合Oracle过程语言和结构化查询语言的一种扩展语言 PL/SQL代码块的构成 declare --标记声明部分用来声明一些变量,位于begin之前 begin  --主程序体开始的标志 主程序体块: [exception when 异常名 then 异常处理的方法; when 异常名  then 异常处理的方法; ... when other then 异常处理的方法;] end;  --主程序