SQL语句(建库、建表、修改语句)完整示例(基础篇)

 

这是如何使用SQL server来  编写 数据库  表的 操作方式 

借鉴的学习要点:

举得起放得下叫举重,举得起放不下叫负重。

低头要有勇气,抬头要有底气。

学习要加,骄傲要减,机会要乘,懒惰要除。

人生三难题:思,相思,单相思。
SQL之-建库、建表、建约束、关系、部分T-sql语句

熟能生巧,不断去练习,去重复,掌握最基本的操作。
---

完整示例:


create database sql_test
go
--打开数据库 sql_test
use sql_test
go

--建立学生表
create table students
(studentnumber char(4)primary key,studentname varchar(50)not null)
go

--修改学生表
alter table students

--添加班级编号字段
--(注意如果添加的字段不为空的话,是不能被添加的)
add classnumber char(4) null 
go

--建立班级表
create table class
(classnumber char(4) primary key,classname varchar(50)not null)
go

--建立课程表
create table course
(coursenumber char(4) primary key,coursename varchar(50)not null, classbegin datetime)
go

--修改课程表
alter table course
--添加课程代号字段
add coursecode varchar(10) null
go

alter table course
--删除开课日期字段
drop column classbegin 
go

alter table course
--修改课程名称字段
alter column coursename varchar(20) not null
go

--建立一个product_test_one 表,与下个表类似,只不过在constraint前面有个‘逗号’不影响执行

create table product_test_one
(
id char(10) not null,
name varchar(20) null,
price money default 20.5,
quantity smallint null constraint pk_id primary key clustered(id)
)
go

use sql_test
go
--建立一个product_test_two
create table product_test_two
(
  id char(10)not null,
  name varchar(20) null,
  price money default 20.5,
  quantity smallint null constraint pk_id2 primary key clustered(id)
)
go

--删除表 product_test_one 表
drop table product_test_one
go

use sql_test
--建立一个student表,使其中的name 字段具有唯一性
create table student
(
 --表字段
  id char(8),
  name char(10),
  --添加一个主键约束
  constraint pk_id primary key(id),
  --添加一个唯一性约束
  constraint uk_name unique(name)
)
go

use sql_test
--建立一个student4表,同上(注意;constraint与constraint之间一定要有逗号,否则会出错!)
create table student4
(
  id char(8),
  --表字段
  name char(10),
  constraint pk_id4 primary key(id),
  constraint uk_name4 unique (name)
)
go

--删除表student4
drop table student4
go

use sql_test
--建立一个student3表,同上
create table student3
(
--表字段
 id char(8),
 name char(10),
 constraint pk_id3 primary key(id),
 constraint uk_name3 unique(name)
)

--删除表 student3
drop table student3
go

use sql_test
--constraint 约束名 check(逻辑条件表达式)
--创建一个‘员工’表 使其输入的性别字段(sex)只能接受‘m’或者‘f’,
--而不能接受其他数据
--并且为phone 字段创建检查约束,限制只能输入类似0108564712之类的数据
--而不能随意输入其他数据
create table employee
(
  id char(5),
  name char(20),
  sex char(2),
  phone int,
  --此间一定要有‘逗号’分隔,定义主键约束
  constraint pk_zid primary key(id),
  constraint chk_sex check(sex in('f','m')),
  constraint chk_phone check(phone like '(010)[0-9][0-9][0-9][0-9][0-9][0-9][0-9]')
)
go

use sql_test
--constraint 约束名 default 约束表达式[for 字段名]
--创建一个表‘默认约束’,为字段sex 创建默认约束
create table defaultcontrol
(
  id char(5) primary key,
  sex varchar(2) constraint con_sex default 'm'
)
go

--修改‘默认约束’表
alter table defaultcontrol
--增加一个字段为 ‘name’,默认值为‘good boy’
add name varchar(10) null constraint con_name default 'good boy'
go

--往班级表里添加8条记录
insert into class values('bj01','一班')
insert into class values('bj02','二班')
insert into class values('bj03','三班')
insert into class values('bj04','四班')
insert into class values('bj05','五班')
insert into class values('bj06','六班')
insert into class values('bj07','七班')
insert into class values('bj08','八班')

--显示班级所有记录
select*from class
go

--删除班级表里班级编号大于bj06的记录
delete from class where classnumber>'bj06'
go

--显示班级所有记录
select*from class
go

--向学生表里添加记录
insert into students values('xs01','one','bj01')
insert into students values('xs02','two','bj01')
insert into students values('xs03','three','bj01')
insert into students values('xs04','four','bj02')
insert into students values('xs05','five','bj03')
insert into students values('xs06','six','bj02')
insert into students values('xs07','seven','bj04')
insert into students values('xs08','eight','bj03')
insert into students values('xs09','nine','bj04')
insert into students values('xs10','ten','bj05')
insert into students values('xs11','eleven','bj06')
insert into students values('xs12','twleve','bj06')
go
--显示学生所有的记录
select*from students
go

--连接查询
select*from students,class where students.classnumber=class.classnumber

--以下效果同上一条相同
--选择的连接查询

select students.studentnumber,class.classnumber,students.studentname,class.classname from students,class where students.classnumber=class.classnumber
go

--查询一班的学生
select*from students where classnumber  in(select classnumber from class where classnumber='bj01')

--与上面一条查询语句一样的功能
select a.studentnumber,a.studentname,a.classnumber from students as a,class as b where a.classnumber=b.classnumber and b.classnumber='bj01'
go

--统计一班学生人数
select COUNT(studentnumber) as studentcount from students where classnumber in(select classnumber from class where classnumber='bj01')
go

--group的用法和count() 函数的用法
--统计一班学生人数,并显示学生的名字和所在班级
select COUNT(studentnumber)as studentcount,studentname,classnumber from students
where classnumber in(select classnumber from class where classnumber='bj01')
group by classnumber,studentname
go

你可能感兴趣的:(数据库专题)