--创建数据库create database 学生练习on(name = srcShareDB,filename = 'E:\stuExcise.mdf',size = 10,maxsize = unlimited,filegrowth = 10%)--日志文件log on(name = srcShareLG,filename = 'E:\stuExcise.ldf',size = 3,maxsize = unlimited,filegrowth
--创建数据库
create database 学生练习
on
(
name = srcShareDB,
filename = 'E:\stuExcise.mdf',
size = 10,
maxsize = unlimited,
filegrowth = 10%
)
--日志文件
log on
(
name = srcShareLG,
filename = 'E:\stuExcise.ldf',
size = 3,
maxsize = unlimited,
filegrowth = 10%
)
--学生表
create table 学生
(
stuNO varchar(10) primary key,
stuAge int check (stuAge>0 and stuAge<150),
stuSex char(2) check (stuSex in(&#39;男&#39;,&#39;女&#39;)),
stuMajorNO varchar(10) not null
)
--课程表
create table 课程
(
lsnNO varchar(10) primary key,
lsnName varchar(10) not null,
lsnMark int check (lsnMark>&#61;0 and lsnMark<&#61;100),--注意约束要用括号括起来
lsnHour int check (lsnHour>0 and lsnHour<&#61;200)
)
--选课表
create table 选课
(
stuNO varchar(10) foreign key (stuNO) references 学生(stuNO),--注意外键约束的语法格式
lsnNO varchar(10) foreign key (lsnNO) references 课程(lsnNO),
stuMark int check (stuMark>&#61;0 and stuMark<&#61;100)
)
--添加数据
insert into 学生
values(2,20,&#39;男&#39;,&#39;软件&#39;)
--更新数据
update 学生
set stuAge&#61;stuAge-5
where stuAge&#61;19
--删除数据
delete from 学生
where stuNO&#61;&#39;2&#39;
--查找数据
select stuMark from 学生,选课 where 学生.stuNO&#61;选课.stuNO and 学生.stuNO&#61;&#39;1&#39;
约束规则&#xff1a;
1、实体完整性规则
主要是针对主键(列级和表级)的&#xff0c;主键约束用于唯一性表示表的记录&#xff0c;并且主键约束要求
该列不为空&#xff0c;切记是不为NULL而不是不为""&#xff0c;并且要求该列不能有相同项&#xff0c;否则不能执行sql
语句
2、参照完整性约束&#xff0c;即为外键约束&#xff0c;主要是表示表中列和表中列的关系
语法是&#xff1a;foreign key(列名) references 表名(列名),
其中(列名)需加括号&#xff0c;表名(列名)中列名需为所引用表的主键
3、用户自定义完整性约束
包括列值非空(not null)&#xff0c;列值唯一(unique)&#xff0c;检查列值是否满足一个布尔表达式
(check)
需要注意的是check约束需要括号&#xff0c;即check(布尔值)
连接的种类&#xff1a;
内联接&#xff1a;分为等值连接和自然连接&#xff0c;通过比较运算符来连接
语法&#xff1a;select * from table1 join table2 on table1.id&#61;table2.id
交叉连接&#xff1a;即产生笛卡儿积的连接
语法&#xff1a;select * from table1 cross join table2
外连接&#xff1a;
左外连接&#xff1a;返回左表的所有行&#xff0c;右表不匹配的用null表示
语法&#xff1a;select * from table1 left join table2 on table1.id&#61;table2.id
右外连接&#xff1a;返回右表的所有行&#xff0c;左表不匹配的用null表示
语法&#xff1a;select * from table1 right join table2 on table1.id&#61;table2.id
全连接&#xff1a;返回连接表的所有行
语法&#xff1a;select * from table1 full join table2 on table1.id&#61;table2.id
本文原创发布php中文网&#xff0c;转载请注明出处&#xff0c;感谢您的尊重&#xff01;