SQL2005数据库
数据库SQL Server2005设计与应用
1.数据库:数据存放的仓库 DataBase DB
层次模型
网状模型
关系模型:二维表格 sql
2.应用:
数据库设计原理***
得到一个数据库原形(理论)(E-R图)
层次模型
网状模型
关系模型:二维表格 sql
2.应用:
数据库设计原理***
得到一个数据库原形(理论)(E-R图)
3.数据库软件:数据库管理系统
DataBase Management System (DBMS)
FoxBase(dos)
FoxPro
MS Visual FoxPro5.0
Access
SQL Server***
Oracle
DB2
mysql
...
DataBase Management System (DBMS)
FoxBase(dos)
FoxPro
MS Visual FoxPro5.0
Access
SQL Server***
Oracle
DB2
mysql
...
4.学习SQL Server2005(程序类)
1.安装 环境介绍
2.数据库管理
3.表的创建与管理
4.其他对象(视图 索引 过程 函数)
5.标准sql语法
Structured Query Language 结构化查询语言
1.安装 环境介绍
2.数据库管理
3.表的创建与管理
4.其他对象(视图 索引 过程 函数)
5.标准sql语法
Structured Query Language 结构化查询语言
DDL:数据定义语言
创建 Create
修改 Alter
删除 Drop
DML:数据操作语言
读 Select*********
写 Insert
改 Update
删 Delete
DCL:数据控制语言
流程控制语句:
条件if
选择case
循环while
用户权限角色管理:
grant 授权
deny 禁用
revoke 收回
创建 Create
修改 Alter
删除 Drop
DML:数据操作语言
读 Select*********
写 Insert
改 Update
删 Delete
DCL:数据控制语言
流程控制语句:
条件if
选择case
循环while
用户权限角色管理:
grant 授权
deny 禁用
revoke 收回
6.数据库维护
备份恢复
导入 导出
备份恢复
导入 导出
面向过程开发程序 c语言
面向对象开发程序
面向对象开发程序
数据表table
4行:记录 record 3个记录
6列:字段 field 6个字段
表结构:0条记录的表就是表结构
4行:记录 record 3个记录
6列:字段 field 6个字段
表结构:0条记录的表就是表结构
设计创建表的过程就是设计创建表结构的过程
数据类型:限制字段的取值范围
主键:主要字段(取值不能重复)
数据类型:限制字段的取值范围
主键:主要字段(取值不能重复)
00000000000000000000000000
教学数据库模型
学生表:学生编号pk/姓名/.....
教师表:教师编号pk/姓名/.....
课程表:课程编号pk/课程名称/课程描述/教师编号fk
学生课程关系表:学生编号fk/课程编号fk/考试成绩
学生表:学生编号pk/姓名/.....
教师表:教师编号pk/姓名/.....
课程表:课程编号pk/课程名称/课程描述/教师编号fk
学生课程关系表:学生编号fk/课程编号fk/考试成绩
Developer Edition 开发版
Standard Edition 标准版
Enterprise Edition 企业版
Evaluation Edition 测试版
SQL Server 2005 Express Edition 简化版
Visual Studio.net2005
VB.NET
C++
ASP.NET
C#
ADO.NET
...
SQL Server 2005 Express Edition 简化版
VB.NET
C++
ASP.NET
C#
ADO.NET
...
SQL Server 2005 Express Edition 简化版
.netFramework公共组建类库
000000000000000000000000000000
print 1+2
print '张三'
f5
print getdate()
--代码该变当前数据库:
--use 数据库名称
--
--sdfgsdfgsdf
--gs
--df
--sdfhsdfh
--单行注释
/*
块注释
gd
gsdf
sdfh
dsfhsdf
*/
use master
print getdate()
--文本结果
select getdate()
--网格结果
select getdate(),1+2,'张三'
print getdate(),1+2,'张三'
use ABC
--查询info表中的所有信息
select * from info
select * from info
select * from test
--sql server的命令窗口: sqlcmd
sqlcmd -U用户名 -P口令 -S服务器
0000000000000000000
--代码创建数据库语法
--1.简单格式
create database 数据库名称
--1.简单格式
create database 数据库名称
create database db001
--2.完整格式
create database 数据库名称
on primary
(
--定义主数据文件信息
)
,
(
--定义其他数据文件
)
log on
(
--定义日志文件信息
)
,
(
--定义日志文件信息
)
----
create database 数据库名称
on primary
(
--定义主数据文件信息
name='定义主数据文件的逻辑名称(数据库名称_data)',
filename='定义主数据文件的物理路径和文件名称和扩展名.mdf',
size=定义文件大小 5mb,
filegrowth=2 | 15%,
maxsize=100mb | unlimited
)
,
(
--定义其他数据文件
name='定义其他数据文件的逻辑名称(数据库名称_data2)',
filename='定义其他数据文件的物理路径和文件名称和扩展名.ndf',
size=定义文件大小 5mb,
filegrowth=2 | 15%,
maxsize=100mb | unlimited
)
log on
(
--定义日志文件信息
name='定义日志文件的逻辑名称(数据库名称_log)',
filename='定义日志文件的物理路径和文件名称和扩展名.ldf',
size=定义文件大小 5mb,
filegrowth=2 | 15%,
maxsize=100mb | unlimited
create database 数据库名称
on primary
(
--定义主数据文件信息
name='定义主数据文件的逻辑名称(数据库名称_data)',
filename='定义主数据文件的物理路径和文件名称和扩展名.mdf',
size=定义文件大小 5mb,
filegrowth=2 | 15%,
maxsize=100mb | unlimited
)
,
(
--定义其他数据文件
name='定义其他数据文件的逻辑名称(数据库名称_data2)',
filename='定义其他数据文件的物理路径和文件名称和扩展名.ndf',
size=定义文件大小 5mb,
filegrowth=2 | 15%,
maxsize=100mb | unlimited
)
log on
(
--定义日志文件信息
name='定义日志文件的逻辑名称(数据库名称_log)',
filename='定义日志文件的物理路径和文件名称和扩展名.ldf',
size=定义文件大小 5mb,
filegrowth=2 | 15%,
maxsize=100mb | unlimited
)
--
create database mydb
on primary
(
name=mydb_data,
filename='K:\DatabaseFile\mydb\mydb_data.mdf',
size=4,
filegrowth=1,
maxsize=unlimited
)
,
(
name=mydb_data2,
filename='K:\DatabaseFile\mydb\mydb_data2.ndf',
size=5,
filegrowth=10%,
maxsize=100mb
)
log on
(
name='mydb_log',
filename='K:\DatabaseFile\mydb\mydb_log.ldf',
size=2,
filegrowth=2,
maxsize=unlimited
)
--
create database mydb
on primary
(
name=mydb_data,
filename='K:\DatabaseFile\mydb\mydb_data.mdf',
size=4,
filegrowth=1,
maxsize=unlimited
)
,
(
name=mydb_data2,
filename='K:\DatabaseFile\mydb\mydb_data2.ndf',
size=5,
filegrowth=10%,
maxsize=100mb
)
log on
(
name='mydb_log',
filename='K:\DatabaseFile\mydb\mydb_log.ldf',
size=2,
filegrowth=2,
maxsize=unlimited
)
create database [test_DB]
--修改数据库
--1)修改数据库名称
alter database 数据库名称 modify name=新名称
alter database mydb modify name=mydatabase
--2)删除其它数据文件、日志文件
alter database 数据库名称 remove file 逻辑名称
alter database mydatabase remove file mydb_data2
alter database mydatabase remove file mydb_data
alter database mydatabase remove file mydb_log
--不能从数据库中删除主数据文件或主日志文件。
--3)添加其它数据文件、日志文件
alter database 数据库名称 add [log] file
(详细定义)
alter database 数据库名称 add [log] file
(详细定义)
alter database mydatabase add file
(
name='mydb_data2',
filename='K:\DatabaseFile\mydb\mydb_data2.ndf',
size=1,
filegrowth=1,
maxsize=unlimited
)
alter database mydatabase add log file
(
name='mydb_log2',
filename='K:\DatabaseFile\mydb\mydb_log2.ldf',
size=2,
filegrowth=4%,
maxsize=100mb
)
--4)修改数据文件、日志文件的基本信息
--(不能修改各个文件的物理路径)
alter database 数据库名称 modify file
(name=要修改的文件的逻辑名称,修改的信息)
--(不能修改各个文件的物理路径)
alter database 数据库名称 modify file
(name=要修改的文件的逻辑名称,修改的信息)
alter database mydatabase modify file
(name=mydb_log2,size=5)
--5)修改数据文件、日志文件的逻辑名称
alter database 数据库名称 modify file
(name=要修改的文件的逻辑名称,newname=修改后的名称)
alter database 数据库名称 modify file
(name=要修改的文件的逻辑名称,newname=修改后的名称)
alter database mydatabase modify file
(name=mydb_log2,newname=mydb_log22)
--删除数据库语法
drop database 数据库1,数据库2,...
drop database 数据库1,数据库2,...
drop database abc,abcd,db,db001,dddd,ganbu,hhhh
本节总结;《细心加重视》
create database 代码创建数据库语法
alter database 修改数据库语法
drop database -删除数据库语法
create table 代码创建表语法
alter table 修改表
drop table 删除表
create view
alter view
drop view
...
alter view
drop view
...
00000000000000000000000000
--变量类型
全局变量:系统定义的变量 @@name 关键字
局部变量:用户定义的变量 @name
全局变量:系统定义的变量 @@name 关键字
局部变量:用户定义的变量 @name
declare @str char
declare @str char(1)'1'表示set 后字符窜的最多值,
而不包括print的值
set @str='abc'
print @str
而不包括print的值
set @str='abc'
print @str
declare @str char(10)'10表示set 后字符窜的最多值,
而不包括print的值
set @str='abc'
print @str+'efg'
而不包括print的值
set @str='abc'
print @str+'efg'
declare @str varchar(10)
set @str='abc'
print @str+'efg'
set @str='abc'
print @str+'efg'
declare @str varchar(1)
set @str='abc'
print @str+'efg'
00000000000000000000000
/****** 对象: Database [mydb] 脚本日期: 10/28/2009 15:19:56 ******/
create database [mydb]
on primary
(
name = 'mydb_data',
filename = 'k:\databasefile\mydb\mydb_data.mdf' ,
size = 4096kb ,
maxsize = unlimited,
filegrowth = 1024kb
),
(
name = 'mydb_data2',
filename = 'k:\databasefile\mydb\mydb_data2.ndf' ,
size = 5120kb ,
maxsize = 102400kb ,
filegrowth = 10%
)
log on
(
name = 'mydb_log',
filename = 'k:\databasefile\mydb\mydb_log.ldf' ,
size = 2048kb ,
maxsize = 2048gb ,
filegrowth = 2048kb
)
create database [mydb]
on primary
(
name = 'mydb_data',
filename = 'k:\databasefile\mydb\mydb_data.mdf' ,
size = 4096kb ,
maxsize = unlimited,
filegrowth = 1024kb
),
(
name = 'mydb_data2',
filename = 'k:\databasefile\mydb\mydb_data2.ndf' ,
size = 5120kb ,
maxsize = 102400kb ,
filegrowth = 10%
)
log on
(
name = 'mydb_log',
filename = 'k:\databasefile\mydb\mydb_log.ldf' ,
size = 2048kb ,
maxsize = 2048gb ,
filegrowth = 2048kb
)
--
----字符编码标准
--ansi :标准编码格式
--unicode :扩展编码格式
0000000000000000000000000000
char 1~8000
varchar 1~8000
varchar 1~8000
--sql变量:局部变量(用户定义的变量) @name
--char 固定长度
declare @str char(10) --定义声明一个局部变量
set @str='abcd' --设置变量的值
print @str+'efg'
declare @str char(10) --定义声明一个局部变量
set @str='abcd' --设置变量的值
print @str+'efg'
--char 固定长度
declare @str char(8000) --定义声明一个局部变量
set @str='abcd' --设置变量的值
print @str+'efg'
declare @str char(8000) --定义声明一个局部变量
set @str='abcd' --设置变量的值
print @str+'efg'
--char 固定长度
declare @str char(8001) --定义声明一个局部变量
set @str='abcd' --设置变量的值
print @str+'efg'
declare @str char(8001) --定义声明一个局部变量
set @str='abcd' --设置变量的值
print @str+'efg'
print 1+2 --加法运算
print '1'+'2' --字符串连接
--varchar 可变长度
declare @str varchar(10) --定义声明一个局部变量
set @str='abcd' --设置变量的值
print @str+'efg'
declare @str varchar(10) --定义声明一个局部变量
set @str='abcd' --设置变量的值
print @str+'efg'
--varchar 可变长度
declare @str varchar(8000) --定义声明一个局部变量
set @str='abcd' --设置变量的值
print @str+'efg'
declare @str varchar(8000) --定义声明一个局部变量
set @str='abcd' --设置变量的值
print @str+'efg'
--varchar 可变长度
declare @str varchar(8001) --定义声明一个局部变量
set @str='abcd' --设置变量的值
print @str+'efg'
--日期时间类型 datetime
declare @dt datetime
set @dt='2005-8-18'
--print @dt
select @dt
set @dt='2005-8-18'
--print @dt
select @dt
declare @dt datetime
set @dt='2005-8-18 15:34:59'
--print @dt
select @dt
declare @dt datetime
set @dt='2005 8 18'
select @dt
declare @dt datetime
set @dt='2005/8/18'
select @dt
set @dt='2005/8/18'
select @dt
declare @dt datetime
set @dt='2005.8.18'
select @dt
set @dt='2005.8.18'
select @dt
declare @dt datetime
set @dt='8.18.2005'
select @dt
declare @dt datetime
set @dt='8/18/2005'
select @dt
set @dt='8/18/2005'
select @dt
select getdate() 设置当前时间语法
--整数类型:
tinyint smallint int bigint 范围依次增大
declare @n tinyint
set @n=23
print @n
declare @n tinyint --0~255
set @n=23234
print @n
set @n=23234
print @n
declare @n int
set @n=23234
print @n
set @n=23234
print @n
int
declare @a int,@b int
set @a=5
set @b=2
print @a/@b
set @a=5
set @b=2
print @a/@b
declare @a int,@b int
set @a=5.2
set @b=2.2
print @a/@b
--Bit 二进制位类型
declare @x bit
set @x=0
print @x
set @x=0
print @x
declare @x bit
set @x=1
print @x
set @x=1
print @x
declare @x bit
set @x=18976
print @x
--bit 0就是0,非0就是1
declare @x bit
set @x=-324
print @x
set @x=-324
print @x
--两种状态 逻辑类型 true 1/ false 0
--boolean 表示逻辑类型
或
declare @ss real
set @ss=234.678676786876
print @ss
或
或
declare @ss real
set @ss=234.678676786876
print @ss
或
declare @ss real
set @ss=4678676786876
print @ss
或
说明:数字特别大时,执行采用科学计数法 4.67868e+012:012表示10的12次方。
set @ss=4678676786876
print @ss
或
说明:数字特别大时,执行采用科学计数法 4.67868e+012:012表示10的12次方。
declare @n numeric(5,2)
set @n=234
print @n
说明:括号5为字符窜总长,值最大38,表示字符窜长度,2表示小数部分保留位,
整数部分字符窜最长为两者作差。
或
declare @n numeric(5,2)
set @n=234.987
print @n
set @n=234
print @n
说明:括号5为字符窜总长,值最大38,表示字符窜长度,2表示小数部分保留位,
整数部分字符窜最长为两者作差。
或
declare @n numeric(5,2)
set @n=234.987
print @n
或
declare @n numeric(5,2)
set @n=34.987
print @n
declare @n numeric(5,2)
set @n=34.987
print @n
或
declare @n numeric(5,2)
set @n=34.9
print @n
declare @n numeric(5,2)
set @n=34.9
print @n
或
declare @n numeric(5,2)
set @n=934.9
print @n
或
declare @n numeric(5,2)
set @n=4934.9
print @n
或
declare @n numeric(5,2)
set @n=934.9
print @n
或
declare @n numeric(5,2)
set @n=4934.9
print @n
或
declare @n numeric(5,2)
set @n=999.99
print @n
或
set @n=999.99
print @n
或
declare @n numeric(5,2)
set @n=999.999
print @n
或
set @n=999.999
print @n
或
declare @n numeric(38,2)
set @n=-999.99
print @n
set @n=-999.99
print @n
decimal与numeric的用法一样
总结数据类型:
----
char
varchar
datetime
int
bit
real/float
decimal/numeric
money
text
varchar(max)
----
char
varchar
datetime
int
bit
real/float
decimal/numeric
money
text
varchar(max)
--字符编码标准
--ansi
char 1-8000
varchar 1-8000
text 2gb
--unicode
nchar 1-4000
nvarchar 1-4000
ntext 2gb
--ansi
char 1-8000
varchar 1-8000
text 2gb
--unicode
nchar 1-4000
nvarchar 1-4000
ntext 2gb
declare @ss nchar(5)
set @ss='abc'
print @ss+'sdfa'
set @ss='abc'
print @ss+'sdfa'
--教学数据库模型LearnDB
学生表student:
学生编号pk/ stu_no 200501001 char(9)
姓名/ name varchar(20)
性别/ sex char(2)
生日/ birthday datetime
城市/ city varchar(20)
电话/ tele varchar(20)
班别/ class_type varchar(20)
报名费用/ fee money
课程表course:
课程编号pk/ c_no c_001 char(5)
课程名称/ c_name varchar(20)
课程描述/ c_desc varchar(200)
授课教师/ teacher varchar(20)
课程编号pk/ c_no c_001 char(5)
课程名称/ c_name varchar(20)
课程描述/ c_desc varchar(200)
授课教师/ teacher varchar(20)
学生课程关系表relation:
学生编号fk/ stu_no char(9)
课程编号fk/ c_no char(5)
考试成绩/ mark numeric(5,2)
学生编号fk/ stu_no char(9)
课程编号fk/ c_no char(5)
考试成绩/ mark numeric(5,2)
create database LearnDB
on primary
(
name=LearnDB_data,
filename='K:\DatabaseFile\LearnDB\LearnDB_data.mdf',
size=5,
filegrowth=15%,
maxsize=unlimited
)
log on
(
name=LearnDB_log,
filename='K:\DatabaseFile\LearnDB\LearnDB_log.ldf',
size=5,
filegrowth=15%,
maxsize=unlimited
)
on primary
(
name=LearnDB_data,
filename='K:\DatabaseFile\LearnDB\LearnDB_data.mdf',
size=5,
filegrowth=15%,
maxsize=unlimited
)
log on
(
name=LearnDB_log,
filename='K:\DatabaseFile\LearnDB\LearnDB_log.ldf',
size=5,
filegrowth=15%,
maxsize=unlimited
)
--查询、添加、修改、删除语法的简单介绍
--Select 字段列表 from 表名 where 条件
--Insert into 表名(字段列表) values(对应字段结果)
--Update 表名 set 字段=结果 where 条件
--Delete from 表名 where 条件
--Select 字段列表 from 表名 where 条件
--Insert into 表名(字段列表) values(对应字段结果)
--Update 表名 set 字段=结果 where 条件
--Delete from 表名 where 条件
use LearnDB
--查询
Select 字段列表 from 表名 where 条件
select name,sex,city from student
select stu_no,name,sex,birthday,city,tele,class_type,fee from student
select * from student------》打开学生表
select * from course------》打开课程表
select * from relation------》打开关系表
select * from table_1------》打开table_1表
select * from student where city='北京'
select * from student where sex='男'
select * from student where class_type='信息网络工程师'
select * from relation
select * from relation where mark<60
00000000000000000000000000000000000000000000000
--查询select
select * from student
select * from student where sex='男'
select * from student where sex='男'
select name,sex,city,birthday from student where sex='男'
select name,sex,city,birthday from student where sex<>'男'
select name,sex,city,birthday from student where sex!='男'
select name,sex,city,birthday from student where sex<>'男'
select name,sex,city,birthday from student where sex!='男'
--运算符号的分类
--算术运算符号
+
-
*
/
print 5/2 --整除
print 2/5 --整除
% 取余数
print 5 % 2
print 2 % 5 ——————————》短除式计算法
--关系运算符号
=
<> 等价写法 !=
>
<
>=等价写法 !<
<= 等价写法 !>
+
-
*
/
print 5/2 --整除
print 2/5 --整除
% 取余数
print 5 % 2
print 2 % 5 ——————————》短除式计算法
--关系运算符号
=
<> 等价写法 !=
>
<
>=等价写法 !<
<= 等价写法 !>
select * from student where fee!>3000
select * from student where fee<=3000
--逻辑运算符号
not 非
and 与
or 或
print 1+2*3
print (1+2)*3
not and or 优先级依次降低
选中局部边表格的语法格式:
select * from student
where sex='男'
and city='北京'
and class_type='信息网络工程师'
and fee<2000
列举使用逻辑符号:
select * from student where not sex='男'
select * from student where sex!='男'
select * from student where sex<>'男'
select * from student where sex!='男'
select * from student where sex<>'男'
select * from student where city='北京'
select * from student where city='上海'
--北京和上海
select * from student where city='北京' or city='上海'
select * from student where city='北京' or city='上海'
--查询北京、上海两个地区的全部女生信息
select * from student
where (city='北京' or city='上海') and sex='女'
select * from student
where (city='北京' or city='上海') and sex='女'
--查询北京、上海两个地区的全部女生信息
select * from student
where city='北京' and sex='女' or city='上海' and sex='女'
where city='北京' and sex='女' or city='上海' and sex='女'
select * from student
where (city='北京' and sex='女') or (city='上海' and sex='女')
where (city='北京' and sex='女') or (city='上海' and sex='女')
--统计除北京地区全部女生以外的其他地区的女生信息
select * from student
where not (city='北京' and sex='女') and sex='女'
where not (city='北京' and sex='女') and sex='女'
select * from student
where (city!='北京' or sex!='女') and sex='女'
where (city!='北京' or sex!='女') and sex='女'
select * from student
where (city!='北京' and sex='女')
where (city!='北京' and sex='女')
--统计除北京地区以外的其他地区的女生信息
select * from student
where city!='北京' and sex='女'
select * from student
where city!='北京' and sex='女'
select * from student
where city<>'北京' and sex='女'
where city<>'北京' and sex='女'
select * from student
where not city='北京' and sex='女'
where not city='北京' and sex='女'
select * from student
where sex='女' and not city='北京'
where sex='女' and not city='北京'
--添加语法insert
insert into 表名(字段1,字段2,...) values(值1,值2,...)
select * from student
insert into student(stu_no,name,sex,birthday,city,tele,class_type,fee)
values('900','张力刚','男','1985-6-14','广州','675648787','java开发工程师',13500)
values('900','张力刚','男','1985-6-14','广州','675648787','java开发工程师',13500)
insert into student(stu_no,name,sex,birthday,city,tele,class_type,fee)
values('9014235','高茜','女','1985-1-14','广州','675648764887','java开发工程师',13500)
values('9014235','高茜','女','1985-1-14','广州','675648764887','java开发工程师',13500)
select * from course
INSERT into course(c_no,c_name,c_desc,teacher)
values('c_14','语文','asdf','张老师')
values('c_14','语文','asdf','张老师')
select * from relation
insert into relation(stu_no,c_no,mark) values('901','c_014',100)
--更新update
update 表名 set 字段1=结果1,字段2=结果2,...where 条件
select * from course
update course set c_desc='描述信息'
update course set c_desc=c_name+'描述信息'
update course set c_desc='《'+c_name+'》课程描述信息'
INSERT into course(c_no,c_name,c_desc,teacher)
values('c_15','aaa','asdf','张老师')
values('c_15','aaa','asdf','张老师')
--公式字段(计算列)
'《'+c_name+'》课程描述信息'
'《'+c_name+'》课程描述信息'
INSERT into course(c_no,c_name,c_desc,teacher)
values('c_16','bbb','asddadf','张老师')
--不能修改列 "c_desc",因为它是计算列,或者是 UNION 运算符的结果。
INSERT into course(c_no,c_name,teacher)
values('c_16','bbb','张老师')
INSERT into course(c_no,c_name,teacher)
values('c_16','bbb','张老师')
select * from course
print getdate()---------->执行当前时间
print year(getdate())
print month(getdate())
print day(getdate())
print year('1998-6-20')----------》指定时间
print month('1998-6-20')
print day('1998-6-20')
--int----------》必须是整数格式
print year(getdate()) - year('1980-6-20')
--age
year(getdate()) -year(birthday)——-——————》年龄公式代码------》
year(getdate()) -year(birthday)——-——————》年龄公式代码------》
select * from student
select name,sex,birthday,city from student
select name,sex,year(getdate()) -year(birthday),city from student
select name,sex,age,city from student
year(getdate()) -year(birthday)
对比修改表代码变化:
1,
datepart(参数,日期) --year/ month/ day
2,
(datepart(year,getdate())-datepart(year,[birthday]))
2是1的系统变化前身。举例如下;
f(x)=2x
g(x)=f(x)+56
g(x)=2x+56
g(x)=2x+56
更新数据库。注意更新后不能恢复原态。代码如下:
update
select * from student
update student set fee=fee-500 where sex='男'
在学生表中举例:思路:
高级网络工程师 信息网络工程师
网站设计师 6+4
影视动画设计师 6+2
Java软件工程师 6+3 java开发工程师
.Net软件工程师 c++ .net开发工程师
在学生表中举例:思路:
高级网络工程师 信息网络工程师
网站设计师 6+4
影视动画设计师 6+2
Java软件工程师 6+3 java开发工程师
.Net软件工程师 c++ .net开发工程师
update student set class_type='高级网络工程师' where class_type='信息网络工程师'
update student set class_type='网站设计师' where class_type='6+4'
update student set class_type='影视动画设计师' where class_type='6+2'
update student set class_type='Java软件工程师' where class_type='6+3' or class_type='java开发工程师'
update student set class_type='.Net软件工程师' where class_type='c++' or class_type='.net开发工程师'
select * from student
update student
set birthday='1960-9-4',tele='3838839898',class_type='.Net软件工程师',fee=130000
where name='刘德华'
set birthday='1960-9-4',tele='3838839898',class_type='.Net软件工程师',fee=130000
where name='刘德华'
--删除delete
delete from 表名 where 条件 --删除指定表的满足条件的纪录
delete from 表名 where 条件 --删除指定表的满足条件的纪录
delete from 表名 --清空所有纪录
select * from table_1
select * from table_1
delete from table_1
select * from course
delete from course where c_name='abcdef' or c_name='bbb'
总结四种公式
--select insert update delete
--select insert update delete
000000000000000000000000000000000000000
select * from student
select * from test
select * from course
select * from test
select * from course
select id,name,sex from student where id<8
identitycol 别名
select identitycol,name,j
select * from relation where identitycol<45
select identitycol,name,j
select * from relation where identitycol<45
--公式字段和标识列字段都不可以显式指定值
insert into course(c_no,c_name,teacher) values('c_099','aa','bb')
select * from course
select * from test
delete from test where id=5 or id=25 or id=35
删除表中部分标识列内容
删除表中部分标识列内容
查询标识列内容的初始值
初始值
ident_seed('表名')
增量
ident_incr('表名')
select ident_seed('test'),ident_incr('test')
select * from test
print @@identity(显示标识列所有的值)
print @@identity(显示标识列所有的值)
--
@@identity : 代表最后一次标识列插入的值
print @@identity(只显示最后一次标识列插入的值)
insert into test values('dd','dd','dd')
select * from student
--标识列值的重用 (例如删去了标识列为25,恢复语法如下:)
insert into test(name,sex,city,id) values('a','aa','aa',25)
--当 IDENTITY_INSERT 设置为 OFF 时,由student表到test表进行标识列恢复时,
不能为表 'test' 中的标识列插入显式值。
insert
set inserty_insert test on
不能为表 'test' 中的标识列插入显式值。
insert
set inserty_insert test on
set identity_insert test off
select * from student
set identity_insert student on
--表 'LearnDB.dbo.test' 的 IDENTITY_INSERT 已经为 ON。无法为表 'student' 执行 SET 操作。
set identity_insert student off
select * from student
ascii
0~9 : 48 49 ... 57
A~Z : 65 66 ... 90
a~z : 97 98 ... 122
200802040
900
update student set name='0'+name
where id=1
PK_表名_字段名称1_字段名称2
select * from student
update student set tele=null where id=2
update student set tele=null where id=3
update student set tele=null where id=3
select * from student
where tele is null (查询无电话的学生)
where tele is null (查询无电话的学生)
select * from student
where tele is not null(查询有电话的学生)
where tele is not null(查询有电话的学生)
--删除relation表中的stu_no在student中不存在的纪录
————》理解条件是:一,stu_no(学生号码)在relation表中
二,stu_no(学生号码)不在student表中
delete from relation where stu_no not in(
select stu_no from student)
--删除relation表中的c_no在course中不存在的纪录
delete from relation where c_no not in(
select c_no from course)
select * from course
insert into course select c_no,c_name,teacher from course where c_no='c_099'
select * from test
delete from test where name='dd'
删除
删除
insert into test(name,sex,city) values('aa','aa','aa')
主键约束与唯一性约束区别如下 :
一个表上只能定义一个主键约束,但是可以定义多个唯一性约束;
定义了唯一性约束列上的数据可以为null值而且只能有一个null值,
但定义了主键约束上的列不能为null值。
一个表上只能定义一个主键约束,但是可以定义多个唯一性约束;
定义了唯一性约束列上的数据可以为null值而且只能有一个null值,
但定义了主键约束上的列不能为null值。
00000000000000000000000000000000000
老师,@@identity的作用是,
查找最后一次插入的值。是一个全局变量,
语法格式不需要表名。即使该列已经删除,
但值依然存在。后一句如何解?
查找最后一次插入的值。是一个全局变量,
语法格式不需要表名。即使该列已经删除,
但值依然存在。后一句如何解?
select * from test
insert into test(name,sex,city) values('xx','xx','xx')
print @@identity
delete from test where id=7
select * from student
select * from relation
select * from relation
update student set stu_no='199802001' where id=3
update student set stu_no='110000000' where id=2
delete from student where id=3
delete from student where id=2
delete from student where id=2
update student set stu_no='199801001' where id=7
--更新层叠 <====> 级联更新
--删除层叠<====> 级联删除
select * from student
update student set sex='ab' where id=7
update student set sex='ab' where id=7
select * from student where sex!='男' and sex!='女'
update student set sex='男' where sex!='男' and sex!='女'
--约束性别取男或者女
sex='男' or sex='女'
--约束生日取值不能大于当前日期
birthday!>getdate()
--约束费用必须大于0
fee>0
fee>0
select * from relation
--约束成绩必须在0~100
mark>=0 and mark<=100
mark>=0 and mark<=100
select * from student
insert into student(stu_no,sex,city,tele,class_type,fee)
values('902','男','深圳','6775666','Java软件工程师',12000)
values('902','男','深圳','6775666','Java软件工程师',12000)
--null就是一种特殊的默认值
insert into student(stu_no,sex,city,tele,class_type,fee)
values('903','男','深圳','9885666','Java软件工程师',12000)
values('903','男','深圳','9885666','Java软件工程师',12000)
update student set name='abcd' where name='无名'
select * from news
insert into news(title,content) values('aaaaa','sss')
00000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000
--SQL语法代码创建表
create table 表名
(
字段名称1 定义1,
字段名称2 定义2,
...
)
create table 表名
(
字段名称1 定义1,
字段名称2 定义2,
...
)
create table users
(
id int identity(1,2),
username varchar(50),
pwd varchar(50),
name varchar(50),
birthday datetime,
age as year(getdate())-year(birthday)
)
(
id int identity(1,2),
username varchar(50),
pwd varchar(50),
name varchar(50),
birthday datetime,
age as year(getdate())-year(birthday)
)
insert into users(username,pwd,name,birthday)
values('admin','1234','管理员','1986-9-10')
insert into users(username,pwd,name,birthday)
values('abcde','1234','操作员','1988-1-1')
select * from users
00000000000000000000000000000000
create database userDB
go
use userDB
go
create table users
(
id int identity(1,2),
username varchar(50),
pwd varchar(50),
name varchar(50),
birthday datetime,
age as year(getdate())-year(birthday)
)
go
insert into users(username,pwd,name,birthday)
values('admin','1234','管理员','1986-9-10')
go
insert into users(username,pwd,name,birthday)
values('abcde','1234','操作员','1988-1-1')
go
select * from users
go
go
use userDB
go
create table users
(
id int identity(1,2),
username varchar(50),
pwd varchar(50),
name varchar(50),
birthday datetime,
age as year(getdate())-year(birthday)
)
go
insert into users(username,pwd,name,birthday)
values('admin','1234','管理员','1986-9-10')
go
insert into users(username,pwd,name,birthday)
values('abcde','1234','操作员','1988-1-1')
go
select * from users
go
本文转自shenleigang 51CTO博客,原文链接:http://blog.51cto.com/shenleigang/138978
,如需转载请自行联系原作者