Chapter 2. SQL Server数据库、表的基本操作

--1.创建一个数据库
create database MyDatabaseOne
--2.删除数据库
drop database MyDatabaseOne
--3.创建数据库的时候设置一些参数选项
create database MyDatabaseOne
on primary
(
    --配置主数据文件
    name=‘MyDatabaseOne‘ ,--主数据文件的逻辑名称
    filename=‘E:\MSSQLServer\MyDatebaseOne.mdf‘, --主数据文件的实际保存路径
    size=5MB, --主数据文件的初始大小
    maxsize=150MB, --主数据文件的最大大小
    filegrowth=20% --主数据文件的增长值
)
log on
(
    --配置日志文件的选项
    name=‘MyDatabaseOne_log‘,--日志文件的逻辑名称
    filename=‘E:\MSSQLServer\MyDatabaseOne_log.ldf‘,--日志文件的实际保存路径
    size=5MB,
    maxsize=150MB,
    filegrowth=20%
)

--在数据库中创建表
use MyDatabaseOne
/*
    表1:可选修的课程表:
          (主)课程编号:Lcode int
          课程名称:Lname varchar(20)
          责任课教师:Lteacher varchar(20)
          教师电话:Ltel varchar(20)
*/
create table Lessons
(
    Lcode  int identity (1001,1) primary key,
    Lname varchar(20) not null,
    Lteacher varchar (20) not null,
    Ltel varchar(20)
)

    /*
          表2:学生表:
            (主)学号:Scode int
            姓名:Sname nvarchar(20)
            性别:Sgender varchar(10)
            (外)系别:Sdepartment int
            (外)选修课程:Slesson int
     */
create table Students
(
    Scode int identity (2001,1) primary key,
    Sname nvarchar(20) not null,
    Sgender varchar(10) not null,
    Sdepartment int,
    Slesson int
)

   /*
      表3:系院表
            (主)系院编号:Dcode int
            系院名称:Dname nvarchar(20)
            系负责老师:Dteacher nvarchar(20)
            系电话:Dtel varchar(20)
      */
create table Departments
(
    Dcode  int identity (3001,1) primary key,
    Dname nvarchar(20) not null,
    Dteacher nvarchar (20) not null,
    Dtel varchar (20)
)

--向课程表插入数据:
--注:自动编号的列,默认自动增长,不需要插入值
insert into Lessons(Lname,Lteacher,Ltel) values (‘图说历史‘,‘张秀丽‘,‘1234567‘)
--注:向全部列(自动编号除外)插入值,可以省略列名不写,但插入的值顺序必须保持一致
insert into Lessons values (‘计算机基础‘,‘张雪松‘,‘12345678‘)
insert into Lessons values (‘美国文学‘,‘李泽池‘,‘123456789‘)
insert into Lessons values (‘标准日本语‘,‘本田浩二‘,‘1234567890‘)
select * from Lessons

--向院系表插入数据
insert into Departments values(‘计算机科学系‘,‘纪科‘,‘13843839438‘)
insert into Departments values(‘英语系‘,‘英明‘,‘13843839434‘)
insert into Departments values(‘音乐系‘,‘杨悦‘,‘13843839434‘)
insert into Departments values(‘美术系‘,‘刘梅‘,‘13843839436‘)
select * from Departments

--向学生表插入数据
  insert into Students values (‘张三‘,‘男‘,3001,1001)
  insert into Students values (‘李四‘,‘女‘,3002,1001)
  insert into Students values (‘王五‘,‘男‘,3003,1002)
  insert into Students values (‘赵六‘,‘女‘,3004,1003)
  insert into Students values (‘冯七‘,‘男‘,3001,1002)
  insert into Students values (‘钱八‘,‘男‘,3002,1002)
  insert into Students values (‘马丽‘,‘男‘,3001,1004)
  insert into Students values (‘牛生‘,‘男‘,3001,1003)
  insert into Students values (‘郭晓‘,‘女‘,3004,1002)
  insert into Students values (‘杨明‘,‘男‘,3001,1004)
  insert into Students values (‘顾凯‘,‘男‘,3003,1001)
  insert into Students values (‘林琳‘,‘女‘,3003,1004)
--向自动编号的列插入值
--启动"自动编号列"手动插入值得功能
set identity_insert Students on
insert into Students (Scode,Sname,Sgender) values (5000,‘王雪‘,‘女‘)
set identity_insert Students off
select * from Students

--打开/关闭查询窗口:ctrl+r

--更新语句:
--update 表名 set 列=新值,列2=新值2, . . . where 条件
--update语句,如果不加条件,表示对表中所有数据进行修改
--将表中性别为女的名字后显示(女)
update Students set Sname=Sname+‘(女)‘ where Sgender=‘女‘
select * from Students

--删除语句:
--delete from 表名 where . . .
--delete 语句如果不加where条件,表示将表中所有数据都删除
--删除Stuends中5000的数据
delete from Students where Scode=5000
--删除数据后,自动编号仍然默认继续编号
insert into Students values (‘王雪‘,‘女‘,3001,1003)
select * from Students

--删除表中全部数据:
--truncate table 表名
--特点:
--1.   truncate语句不能跟where条件
--2. 使用truncate删除后,自动编号恢复到初始值
--3. 使用truncate删除表中所有数据要比delete效率高
--4. truncate删除数据,不触发delete触发器
时间: 2024-12-06 15:26:37

Chapter 2. SQL Server数据库、表的基本操作的相关文章

SQL Server数据库表重置自增主键号(通常是指ID)

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86

千万级SQL Server数据库表分区的实现

千万级SQL Server数据库表分区的实现 2010-09-10 13:37 佚名 数据库 字号:T | T 一般在千万级的数据压力下,分区是一种比较好的提升性能方法.本文将介绍SQL Server数据库表分区的实现. AD:51CTO 网+ 第十二期沙龙:大话数据之美_如何用数据驱动用户体验 最近使用SQL SERVER一个的缓存,数据量一天100w的速度增长,同时接受客户查询,速度由于数据量越来越大越来越慢,这里感谢  KillKill 和 邀约, 最近读了一套书不错,感兴趣的同学可以读读

将txt文件内容导入sql server 数据库表中

将类似这样的txt文件,如何导入到sql server 数据库表中呢? 第一步,在开始菜单中 找到 sql server 的导入和导出数据 然后,在数据源 的下拉框中 选择 平面文件源 基本都是点击 下一步 选择好要导入数据的数据库 与表: 编辑映射 : 点击下一步 执行 然后 完成 查看数据库 表 数据已经导入 成功

修改SQL Server数据库表的创建时间最简单最直接有效的方法

说明:这篇文章是几年前我发布在网易博客当中的原创文章,但由于网易博客现在要停止运营了,所以我就把这篇文章搬了过来,因为这种操作方式是通用的,即使是对现在最新的SQL Server数据库里面的操作也是一样的,相信很多朋友都会使用到. ----------------------分割线-------------------- 网络上曾经有很多人询问怎么修改SQL Server数据库表的创建时间,但得到的回答多种多样,有的说需要使用某些软件进行修改,有的说需要修改注册表等等,其实这些方法实施起来不但麻

SQL Server数据库表锁定原理以及如何解除表的锁定

1. 数据库表锁定原理 1.1 目前的C/S,B/S结构都是多用户访问数据库,每个时间点会有成千上万个user来访问DB,其中也会同时存取同一份数据,会造成数据的不一致性或者读脏数据. 1.2 事务的ACID原则 1.3 锁是关系数据库很重要的一部分, 数据库必须有锁的机制来确保数据的完整和一致性. 1.3.1 SQL Server中可以锁定的资源: 1.3.2 锁的粒度: 1.3.3 锁的升级: 锁的升级门限以及锁升级是由系统自动来确定的,不需要用户设置. 1.3.4 锁的类型: (1) 共享

Excel文件导入SQL Server数据库表

--office 2003--如果接受数据导入的表已经存在insert into DemoTable select * from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=d:/Demo.xls',sheet1$)--如果导入数据并生成表select * into DemoTable  from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;D

sql server 数据库表误删除的恢复方法

由于意外操作,在企业管理器里误删除了数据库的表,那么误删除了表数据怎么办呢? 很多人的一贯做法是先从日志恢复,如果从日志恢复不行就从mdf文件本身恢复. 那么误删除数据后,最先要做的是先分离数据库,停止数据库服务,吧mdf和ldf复制出来. 从mdf文件恢复数据早在几年前就应用到客户数据库,但是从mdf恢复数据有一定的局限性,mdf文件很容易被其他表的记录覆盖掉删除的记录,,就会出现从mdf恢复数据出现数据不完整或者出现数据重复的现象. 为了更好的服务客户,我们开发了两种工具,一种是用mdf进行

SQL Server数据库表索引碎片整理

在SQLServer数据库,通过DBCC ShowContig或DBCC ShowContig(表名)检查索引碎片情况,指导我们对其进行定时重建整理. 运行结果如下: 1 2 3 4 5 6 7 8 9 10 11 DBCC SHOWCONTIG 正在扫描 'tbModule' 表... 表: 'tbModule'(1845581613):索引 ID: 0,数据库 ID: 9 已执行 TABLE 级别的扫描. - 扫描页数.....................................

获取SQL SERVER数据库表结构

select a.name, b.name + '('+ convert(varchar,a.length) + ')' + case a.isnullable when 1 then ' Null' else '' end as [type], '' as Pretty  from syscolumns a join systypes b on (a.xusertype = b.xusertype) where a.id = object_id('TableName') Order By a.