欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SQL基本操作

程序员文章站 2023-10-11 11:25:20
系统数据库: 1、master:用于记录所有SQL server系统级别的信息,比如说登录的信息,系统设置信息。如果他没了。你的SQL server就挂了。 2、model:模型的意思,就像模板一样。创建数据库都是继承model。如果你在该数据库下创建一张表,以后每创建新数据库,就已经有了model ......

系统数据库

    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 表名称