自己写的一个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里面插入数据都是这样一条一条插入,好像除非数据有规律否则都是这样插入的。
插入完后,发现数据库里面是这样的
汉字都变成了问号。
解决办法可以参考我的另外那个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