xml地图|网站地图|网站标签 [设为首页] [加入收藏]
当前位置: www8029com > 澳门新葡8522最新网站 > 正文

SQL基本操作

时间:2019-08-19 16:17来源:澳门新葡8522最新网站
系统数据库 : ----------------------------------------SQLServer建库-建表-建约束创设School数据库--------------------------------------     1、master:用于记录全部SQLserver系统级其他新闻,举个例子说登陆

系统数据库

----------------------------------------SQL Server建库-建表-建约束创设School数据库--------------------------------------

    1、master:用于记录全部SQL server系统级其他新闻,举个例子说登陆的消息,系统装置新闻。假设她没了。你的SQL server就挂了。

--创造School数据库从前:首先推断数据库是或不是留存,若存在则删除后再次创下制,若官样文章则开创--
--exists关键字:括号里边能查询到多少则赶回‘true’ 不然赶回‘false’
if exists(select * from sysdatabases where name = 'School')
--exists再次来到‘true’则实践删除数据库操作--
drop database School

    2、model:模型的情趣,就好像模板同样。创建数据库都是一而再model。倘使你在该数据库下开创一张表,今后每创制新数据库,就曾经有了model的表。

--exists重回‘false’则评释数据库荒诞不经,直接创建

    3、msdb:和master同样记录音讯,差异的是它记录职分调动,事件管理,数据备份及回复,报告警察方和极其的新闻。

create database School
on primary
(
--主数据库文件--
name = 'School', --主数据文件逻辑名
fileName = 'D:projectSchool.mdf', --主数据文件物理逻辑名
size = 5MB, --初阶值大小
maxsize = 100MB, --最大尺寸
filegrowth = 15% --数据文件增进量
)
log on
(
--日志文件--
name = 'School_log',
filename = 'D:projectSchool_log.ldf',
size = 2MB,
filegrowth = 1MB
)
go

    4、tempdb:有时数据库,它为全部有的时候表,一时存款和储蓄进程提供仓库储存空间

----------------------------------------使用T-SQL创建employee数据库------------------------------------
create database employee
on primary
(
--主要数据文件--
name = 'employee1',
filename = 'D:projectemployee1.mdf',
size = 10MB,
filegrowth = 10%
),
(
--次要数据文件--
name = 'employee2',
filename = 'D:projectemployee2.ndf',
size = 20MB,
maxsize = 100MB,
filegrowth = 1MB
)
log on
(
--首先个日志文件--
name = 'employee_log1',
filename = 'D:projectemployee_log1.ldf',
size = 10MB,
filegrowth = 1MB
),
(
--次之个日志文件--
name = 'employee_log2',
filename = 'D:projectemployee_log2.ldf',
size = 10MB,
maxsize = 50MB,
filegrowth = 1MB
)

细心:以上三个种类数据库,别去删,删了有高低的主题素材。

---------------------------------查询已存在的数据库消息---------------------------
select * from sysdatabases

数据类型:

---------------------------------删除数据库------------------------------------
drop database School

    1、数值型:

---------------------------------创造Student数据库表----------------------------
--1、选取操作的数据库--
use School
go

          整型:int  smallint  bigint  tinyint

--决断表是不是留存--
if exists(select * from sysobjects where name = 'Student')
drop table Student

          浮点型:float  real

--2、创建表---
create table Student
(
--具体的列名 数据类型 列的表征(是还是不是为空)--
StudentNo int identity(2,1) not null,
LoginPwd nvarchar(20) not null,
StudentName nvarchar(20) not null,
Sex int not null,
GradeId int not null,
phone nvarchar(50) not null,
BornDate datetime not null,
Address nvarchar(255),
Email nvarchar(50),
IDENTITYcard varchar(18)
)
go

          货币型:money

---查看全部数据库对象(数据库表)---
select * from sysobjects

    2、布尔型(bit):

drop table Student

         True

----------------------创建subject课程表-------------------
-----1、判定表是不是留存;若存在则删除再成立,若一纸空文则一向开立--------
if exists(select * from sysobjects where name = 'subject')
drop table subject

         False

use School
go

    3、二进制型

---创建subject课程表--
create table subject
(
SubjectNo int not null identity(1,1),
SubjectName nvarchar(50),
ClassHour int,
GradeID int
)

         binary

----------------------------------------创建Result成绩表-------------------
-----1、推断表是不是留存;若存在则删除再次创下立,若海市蜃楼则直接创设--------
if exists(select * from sysobjects where name = 'Result')
drop table Result

         varbinary

use School
go

         image

---创建Result成绩表--
create table Result
(
StudentNo int not null,
SubjectNo int not null,
ExamDate Datetime not null,
StudentResult int not null
)

    4、文件数据类型

-----------------------------------------创建Grande年级表-------------------
-----1、判定表是还是不是留存;若存在则删除再次创下制,若不设有则直接创制--------
if exists(select * from sysobjects where name = 'Grade')
drop table Grade

        char    固定长度

use School
go

        vachar  可变长度

---创建Grande年级表--
create table Grade
(
GradeId int not null,
GrandeName nvarchar(50)
)

        nvarchar

-----------------------------------------T-SQL加多封锁-------------------------
--给StudentNo增添主键约束---
alter table Student
add constraint pk_StuNo primary key(StudentNo)

        nchar  

--给居民身份证增多唯一约束--
alter table Student
add constraint uq_StuIdcard unique(IDENTITYcard)

        text    长文本音信

---给地点address增多暗中认可约束--
alter table Student
add constraint df_stuaddress default('地址不详') for Address

        ntext   可变长度的长文本

---删除地址address私下认可约束---
alter table Student
drop constraint df_stuaddress

        datetime 日期和岁月

----------出寿辰期加多检查约束--------
alter table Student
add constraint ck_stuBorndate check(Borndate > '1980-01-01')

新建数据库:

---------与Grand(年级表)创设主外键关系--------

    1、数据库文件  :主数据文件和副数据文件

--1、添加Grade主键(操作Grade)---
alter table Grade
add constraint pk_graid primary key(GradeId)

    2、日记文件:二个或多少个

--2、添加Grade外键(操作Student)--
alter table Student
add constraint fk_stuGradeID foreign key(GradeId) references Grade(GradeId)

    3、create database 名称

 

重命名数据库:exec sp_renamedb new,old

-------------------给subject课程表增添约束-----------------------

去除数据库:drop database 名称1,名称2

----给subjectNo列增加主键约束------
alter table subject
add constraint pk_SubID primary key(SubjectNo)

新建数据库:

------给课程名称subjectName加多非空约束;-----
-----with nocheck:已经存在多少不经过check约束-------
alter table subject with nocheck
add constraint ck_subName check(SubjectName is not null)

    create database test(数据库文件名)

-----学时务必高出0-----
alter table subject with nocheck
add constraint ck_ClassHour check(ClassHour > 0)

    on

-----与Grade年级表增添主外键约束----
alter table subject with nocheck
add constraint fk_GradeID foreign key(GradeID)
references Grade(GradeID)

    (

----------给result成绩表增加约束------------

    name=test_data(主数据文件),

-------增添多少个约束---------
alter table Result
add
constraint pk_No_subID_date primary key(StudentNo,SubjectNo,ExamDate),
constraint df_examdate default(getdate()) for ExamDate,
constraint ck_StudentResult check(StudentResult between 0 and 100),
constraint fk_StuNo foreign key(StudentNo) references Student(StudentNo),
constraint fk_subNo foreign key(SubjectNo) references Subject(SubjectNo)

    filename = 'D:ProgramFilesSQLdatatest_data.mdf',

--删除多少个约束--
alter table Result
drop constraint pk_No_subID_date,fk_subNo,fk_StuNo,ck_StudentResult,df_examdate

    size=6(开头化大小),

--------退换列的数据类型----------
alter table Result
alter column StudentResult int

    maxsize=12,

    filegrowth(增长率)=10%

    )

    log on

    (

    name=test_log(日志文件),

    filename='D:ProgramFilesSQLdatatest_log.ldf',

    size=1,

    maxsize=8,

    filegrowth=10%

    )

创建表:

  create table 教师表

  (

  教师编号 int identity(1,1) primary key,

  教授姓名 varchar(20) not null,

  教师年龄 int,

  教授薪水 money,

  奖金 money,

  总收入 money,

  合营学校 varchar

  )

  说明:

    identity:表示自拉长,平日为ID赋值

    primary key:主键

    not null:不为空

  注意:种种字段前边的逗号别忘了

查询表:

    select * from 教师表

    select 奖金,总收入 from 教师表

删除表:

    use test--切换来该表所在的数据库下,若是已经在,就绝不切换

    drop table 体育场所表--删除全部表

除去表,但不删除表结构,只清空数据;

    Truncate table 教师表

重命名表:

    exec sp_rename 教师表,教师表1

新增添字段:

    alter table 教师表

    add Email varchar(60) default ''

修改字段:

    alter table 教师表

    alter column 教授薪给 int

去除字段:

    alter table 教师表

    drop column 家庭住址

新添多少:

    insert into 教师表(教师年龄,教职名称,教授薪金,课程)

    values(19,'微微',100000,'java')

询问数据:

    select * from 教授表 where 教授报酬<10000

 

    select * from 教授表 where 教授薪给 in(5555,6666,9999)

    select * from 教师表 where 姓名  not in(select 班主任 from 课程表)

    select 姓名,教师报酬 奖金 as 营业收入 from 教授表

 

    select * from 课程表 where 合营学院 like '%马%'

    select * from 课程表 where 同盟学院 like '黑%'

 

     select top 4 * from 课程表

    select top 20 percent * from 教师表

 

    select * from 课程表1 intersec select * from 课程表2   集合交

 

    select * from 教师表,课程表1 where 教师表.姓名=课程表1.班主任

    select * from 教师表,课程表1 where 姓名=班主任     去后缀

    排序:

        select * from 助教表 order by 年龄 --暗中认可升序,倒序desc

        select * from 教师表 order by 年龄,教授薪金

    去重:

        select distinct 姓名 from 教师表

    总结求和:

        select COUNT(*) as 行数 from 教师表

        select COUNT(姓名) from 教师表

    平均:

        select avg(教授工资) from 教师表

    最大和微小:

        select max(教授薪俸) from 教授表

革新数据:

    update 教师表 set 助教年龄=28,教授薪俸=7777 where 教授编号=4

    update 助教表 set 姓名='水旦中学之' 姓名

删除数据:

    delete from 教授表 where 教师编号=7

 

约束:

1、unique:独一约束,三个表能够有三个约束,但primary 约束唯有三个

 

2、Primary key:约束独一标志数据库中的每条记下,主键必须带有独一值,不能够包蕴null值,有且唯有二个主键。

 

3、Foreign key:多个表的羁绊

 

4、check 约束:假若对单个列定义check约束,那么该列值运维特定的值。

                  假设对三个表定义check约束,那么此约束会在特定的列中对值          进行限定。

5、default:默认值

alter table userIofo

add constraint PK_userId primary key(userId),

    constraint CK_userPwd check(len(userPwd)>6),

    constraint Ck_Gender check(Gender=0 or Gender=1),

    constraint DF_Gender default(0) for gender,

    constraint CK_Email check(Email like '%@%')

--[1]外键约束时只顾类型,长度必须与引用的主键列的品种,长度一致

--[2]外键约束时只顾援用表中务供给有主键列

--[3]exec sp_helpconstraint 表名称

编辑:澳门新葡8522最新网站 本文来源:SQL基本操作

关键词: www8029com