SQL基本操作

系统数据库

    1、master:用于记录所有SQL server系统级别的信息,比如说登录的信息,系统设置信息。如果他没了。你的SQL server就挂了。

    2、model:模型的意思,就像模板一样。创建数据库都是继承model。如果你在该数据库下创建一张表,以后每创建新数据库,就已经有了model的表。

    3、msdb:和master一样记录信息,不同的是它记录任务调动,事件处理,数据备份及恢复,报警和异常的信息。

    4、tempdb:临时数据库,它为所有临时表,临时存储过程提供存储空间

注意:以上四个系统数据库,别去删,删了有大大小小的问题。

数据类型:

    1数值型:

          整型:int  smallint  bigint  tinyint

          浮点型:float  real

          货币型:money

    2布尔型(bit):

         True

         False

    3二进制型

         binary

         varbinary

         image

    4文本数据类型

        char    固定长度

        vachar  可变长度

        nvarchar

        nchar  

        text    长文本信息

        ntext   可变长度的长文本

        datetime 日期和时间

新建数据库:

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

    2日志文件:一个或多个

    3create database 名称

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

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

新建数据库:

    create database test(数据库文件名)

    on

    (

    name=test_data(主数据文件),

    filename = 'D:\ProgramFiles\SQL\data\test_data.mdf',

    size=6(初始化大小),

    maxsize=12,

    filegrowth(增长率)=10%

    )

    log on

    (

    name=test_log(日志文件),

    filename='D:\ProgramFiles\SQL\data\test_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 表名称

posted @ 2018-05-20 10:39  爬呀爬Xjm  阅读(492)  评论(1编辑  收藏  举报