自己写的一个SQL的学习的例子

有点拼凑的意思,主要是熟悉SQL 的一些基本操作:

/* 删除学生数据库 */
drop database Students

/* 创建学生数据库 */
create database Students
on
primary
(
   name = 'Students',
   Filename = 'E:\SQL\Students.mdf',
   size = 100MB,
   maxsize = unlimited,
   filegrowth = 10%
)
log on
(
    name = 'Students_log',
    Filename = 'E:\SQL\Students_log.ldf',
    size = 20MB,
    maxsize = unlimited,
    filegrowth = 10MB
)

/* 给数据库再增加一个日志文件 */
alter database Students
add log file
(
    name = 'Students_log2',
    Filename = 'E:\SQL\Students_log2.ldf',
    size = 20MB,
    maxsize = 50MB,
    filegrowth = 10%
)

/* 创建学生表 */
use Students
create table XS
(
    学号 char(6) NOT NULL,
    姓名 char(8) NOT NULL,
    专业名 char(10) NULL,
    性别 bit NOT NULL,
    出生时间 smalldatetime NOT NULL,
    总学分 tinyint NULL,
    备注 text NULL    
)
GO

给学号列加一个主键限制

use Students
alter table XS
add constraint PK_TableName primary key(学号)

其实你也可以在开始创建的时候 定义主键列

use Students
create table XS
(
    学号 char(6) NOT NULL primary key,
    姓名 char(8) NOT NULL,
    专业名 char(10) NULL,
    性别 bit NOT NULL,
    出生时间 smalldatetime NOT NULL,
    总学分 tinyint NULL,
    备注 text NULL    
)
GO

如果要给将主键定义为多个组合列构成

USE Students
ALTER TABLE XS_KC
ADD CONSTRAINT PK_AA PRIMARY KEY(学号, 课程号)

要删除这个表

drop table XS
GO

向table插入数据

use Students
insert into XS values('001101', '王林', '计算机', 1, '2/10/1980', 40, NULL)
insert into XS values('001102', '王平', '计算机', 0, '9/02/1980', 38, NULL)
insert into XS values('001103', '王燕', '计算机', 0, '10/06/1979', 40, NULL)
insert into XS values('001104', '韦严平', '计算机', 1, '8/26/1980', 40, NULL)
insert into XS values('001105', '吴庆红', '计算机', 1, '12/30/1979', 36, NULL)
insert into XS values('001106', '李方方', '计算机', 1, '11/20/1980', 40, NULL)
insert into XS values('001107', '李明', '计算机', 1, '5/1/1980', 40, NULL)
insert into XS values('001108', '林一凡', '计算机', 1, '6/5/1980', 42, NULL)
insert into XS values('001109', '张强民', '计算机', 1, '8/21/1978', 40, NULL)
insert into XS values('001110', '张蔚', '计算机', 1, '7/22/1981', 40, NULL)
insert into XS values('001111', '赵琳', '计算机', 0, '3/18/1980', 40, NULL)
insert into XS values('001112', '罗琳琳', '计算机', 0, '1/30/1980', 40, NULL)
GO

SQL里面插入数据都是这样一条一条插入,好像除非数据有规律否则都是这样插入的。

插入完后,发现数据库里面是这样的

Untitled

汉字都变成了问号。

解决办法可以参考我的另外那个SQL 汉字变问号的文章,修正过来。

XS 表如下:

学号    姓名    专业名    性别    出生时间    总学分    备注
001101    王林    计算机    1    1980-02-10 00:00:00    40    NULL
001102    王平    计算机    0    1980-09-02 00:00:00    38    NULL
001103    王燕    计算机    0    1979-10-06 00:00:00    40    NULL
001104    韦严平    计算机    1    1980-08-26 00:00:00    40    NULL
001105    吴庆红    计算机    1    1979-12-30 00:00:00    36    NULL
001106    李方方    计算机    1    1980-11-20 00:00:00    40    NULL
001107    李明    计算机    1    1980-05-01 00:00:00    40    NULL
001108    林一凡    计算机    1    1980-06-05 00:00:00    42    NULL
001109    张强民    计算机    1    1978-08-21 00:00:00    40    NULL
001110    张蔚    计算机    1    1981-07-22 00:00:00    40    NULL
001111    赵琳    计算机    0    1980-03-18 00:00:00    40    NULL
001112    罗琳琳    计算机    0    1980-01-30 00:00:00    40    NULL

 

删除表的数据, 参考DELETE TABLE 和 TRUNCATE TABLE

 

更新表的记录

use Students
update XS
set 专业名 = '通信工程',
    备注 = '转专业学习',
    学号 = '001241'
where 姓名 = '罗琳琳'

给每个学生总学分加10分

use Students
update XS
set 总学分 = 总学分 + 10

小实验

写出T-SQL语句,对产品销售数据库(库名为CPXS)产品表进行如下操作

1。 插入如下记录

      0001 空调 3000 200

      0203 冰箱 2500 100

      0301 彩电  2800 50

2。 将产品数据库的产品表中每种商品的价格打8折

3。 将产品数据库的产品表价格打8折后小于50的商品删除

先创建那个数据库

create database CPXS
on
primary
(
    name = 'CPXS',
    filename = 'E:\SQL\CPXS.mdf',
    size = 10MB,
    maxsize = 100MB,
    filegrowth = 10%
)
log on
(
    name = 'CPXS_Log',
    filename = 'E:\SQL\CPXS_log.ldf',
    size = 2MB,
    maxsize = unlimited,
    filegrowth = 1MB
)

创建产品表

use CPXS
create table CP
(
    产品编号 char(4),
    产品名称 nvarchar(4),
    价格 smallint,
    库存量 smallint
)
go

(1)

use CPXS
insert into XS values('0001','空调','3000','200')
insert into XS values('0203','冰箱','2500','100')
insert into XS values('0301','彩电','2800','50')
GO

(2)

use CPXS
update CP
set 价格 = 价格*80%

(3)

use CPXS
delete from CP where 价格*0.8 < 50
Go
原文地址:https://www.cnblogs.com/herbert/p/1771444.html