Sql 数据库的新建,表的新建,约束操作,简单查询
2015-10-24 12:15
507 查看
1.数据库的建立
2.带有if判断语句的表的建立,若表存在则删除重建
3.查看表所有的约束
4.添加和删除约束
5.表的查询:模糊插叙like等...
2.带有if判断语句的表的建立,若表存在则删除重建
3.查看表所有的约束
4.添加和删除约束
5.表的查询:模糊插叙like等...
create database SchoolDB; use SchoolDB go -- 学生信息表 if OBJECT_ID(N'StuInfo',N'U') is not null -- 如果该表已经存在,则现删除再建立 drop table StuInfo create table StuInfo( StuID int primary key, -- 学号 StuName nvarchar(10), -- 姓名 StuCity nvarchar(50), -- 所在城市 StuAge int, -- 年龄 MajorID int -- 专业编号 ); -- 专业信息表 if OBJECT_ID(N'MajorInfo',N'U') is not null -- 如果该表已经存在,则先删除该表,再重新建立该表 drop table MajorInfo create table MajorInfo( MajorID int primary key not null,-- 专业编号 MajorName nvarchar(30) -- 专业名称 ); -- 课程表 if OBJECT_ID(N'CourseInfo',N'U') is not null -- 如果该表已经存在,则先删除再建立 drop table CourseInfo create table CourseInfo( CourseID int not null, -- 课程编号 CourseName nvarchar(20) -- 课程名称 ); -- 选课表 if OBJECT_ID(N'SelCourse',N'U') is not null drop table SelCourse create table SelCourse( StuID int not null, -- 学生学号 CourseID int not null, -- 课程编号 Score float -- 课程分数 ); -- 查看所有约束 select *from sysobjects where parent_obj in(select id from sysobjects where name='SelCourse'); -- 添加主键约束 alter table CourseInfo add constraint PK_CourseInfo primary key(CourseID); alter table SelCourse add constraint PK_SelCourse primary key(StuID,CourseID); -- 添加外键约束 alter table StuInfo add constraint FK_StuInfo_MajorInfo foreign key (MajorID) references MajorInfo; alter table SelCourse add constraint FK_CourseInfo foreign key(CourseID) references CourseInfo; alter table SelCourse add constraint FK_SelCourse_StuInfo foreign key(StuID) references StuInfo; -- 删除主键 alter table SelCourse drop constraint PK_SelCourse; -- 添加数据 -- 向StuInfo添加数据 insert into StuInfo(StuID,StuName,StuCity,StuAge,MajorID)values(1001,'Hello','江西南昌',21,20001); -- 哲学 insert into StuInfo(StuID,StuName,StuCity,StuAge,MajorID)values(1002,'Amli','巴基斯坦',22,20006); -- 物理学 insert into StuInfo(StuID,StuName,StuCity,StuAge,MajorID)values(1003,'War','阿欧斯',21,20005); -- 数学 insert into StuInfo(StuID,StuName,StuCity,StuAge,MajorID)values(1004,'Warys','阿修罗',24,20004); -- 化学 insert into StuInfo(StuID,StuName,StuCity,StuAge,MajorID)values(1005,'Piesf','北京',14,20003); -- 文学 insert into StuInfo(StuID,StuName,StuCity,StuAge,MajorID)values(1006,'Fusnas','上海',34,20002); -- 音乐 insert into StuInfo(StuID,StuName,StuCity,StuAge,MajorID)values(1007,'Mlks','南昌',12,20002); -- 音乐 insert into StuInfo(StuID,StuName,StuCity,StuAge,MajorID)values(1008,'Pols','海南',36,20000); -- 天文学 insert into StuInfo(StuID,StuName,StuCity,StuAge,MajorID)values(1009,'oosa','龙南',26,20001); -- 哲学 insert into StuInfo(StuID,StuName,StuCity,StuAge,MajorID)values(1010,'ddawa','长沙',25,20004); -- 化学 insert into StuInfo(StuID,StuName,StuCity,StuAge,MajorID)values(1011,'Dwad','常熟',24,20005); -- 数学 insert into StuInfo(StuID,StuName,StuCity,StuAge,MajorID)values(1012,'Osjsa','美国',23,20006); -- 物理学 insert into StuInfo(StuID,StuName,StuCity,StuAge,MajorID)values(1013,'Posangdas','纽约',28,20004); -- 化学 insert into StuInfo(StuID,StuName,StuCity,StuAge,MajorID)values(1014,'Yhndsg','休斯敦',21,20001); -- 哲学 insert into StuInfo(StuID,StuName,StuCity,StuAge,MajorID)values(1015,'Cgajjd','印度',55,20003); -- 文学 -- 查询 select*from StuInfo; -- 插入专业表 insert into MajorInfo(MajorID,MajorName)values(20001,'哲学'); insert into MajorInfo(MajorID,MajorName)values(20002,'音乐艺术'); insert into MajorInfo(MajorID,MajorName)values(20003,'文学'); insert into MajorInfo(MajorID,MajorName)values(20004,'化学'); insert into MajorInfo(MajorID,MajorName)values(20005,'数学'); insert into MajorInfo(MajorID,MajorName)values(20006,'物理学'); insert into MajorInfo(MajorID,MajorName)values(20007,'核物理学'); insert into MajorInfo(MajorID,MajorName)values(20009,'计算机科学'); insert into MajorInfo(MajorID,MajorName)values(20000,'天文学'); -- 查询 select *from MajorInfo; -- 插入课程表 insert into CourseInfo(CourseID,CourseName) values(101,'大学英语'); insert into CourseInfo(CourseID,CourseName) values(102,'信号与系统'); insert into CourseInfo(CourseID,CourseName) values(103,'高等数学'); insert into CourseInfo(CourseID,CourseName) values(104,'数字电路基础'); insert into CourseInfo(CourseID,CourseName) values(105,'电机学'); -- 查询 select *from CourseInfo; -- 插入选课表 insert into SelCourse(StuID,CourseID,Score) values(1001,101,89.5); insert into SelCourse(StuID,CourseID,Score) values(1002,102,99.5); insert into SelCourse(StuID,CourseID,Score) values(1003,103,87.9); insert into SelCourse(StuID,CourseID,Score) values(1004,104,76.7); insert into SelCourse(StuID,CourseID,Score) values(1005,105,99.2); insert into SelCourse(StuID,CourseID,Score) values(1006,101,68.7); insert into SelCourse(StuID,CourseID,Score) values(1007,102,54.6); insert into SelCourse(StuID,CourseID,Score) values(1008,103,12.3); insert into SelCourse(StuID,CourseID,Score) values(1009,104,90); insert into SelCourse(StuID,CourseID,Score) values(10010,105,100); insert into SelCourse(StuID,CourseID,Score) values(10011,101,90.2); insert into SelCourse(StuID,CourseID,Score) values(10012,102,98.2); insert into SelCourse(StuID,CourseID,Score) values(10013,103,66.5); insert into SelCourse(StuID,CourseID,Score) values(10014,104,77.8); insert into SelCourse(StuID,CourseID,Score) values(10015,105,89.2); insert into SelCourse(StuID,CourseID,Score) values(1001,101,89.4); insert into SelCourse(StuID,CourseID,Score) values(1002,102,89.5); insert into SelCourse(StuID,CourseID,Score) values(1003,103,99.3); insert into SelCourse(StuID,CourseID,Score) values(1004,104,92); insert into SelCourse(StuID,CourseID,Score) values(1005,105,93); --查询 select *from SelCourse; select *from CourseInfo; select *from MajorInfo; select *from StuInfo; -- 二、查询操作 --1.基本查询 --从表中查询某些列的值,这是最基本的查询语句 --语法:select 列名1,列名2,列名3,...... from 表名 select *from CourseInfo; update CourseInfo set CourseName='计算机网络' where CourseID='101'; select StuID,StuCity,StuName from StuInfo; update StuInfo set StuCity='台湾' where StuID=1004; --2.where条件 --作用:按照一定的条件查询数据 --语法: /* select 列名1,列名2... from 表名 where 列名 运算符 值 运算符 描述 = 等于 <> 不等于 > 大于 < 小于 >= 大于等于 <= 小于等于 between 在某个范围内 like 相似,搜索某种模式 */ select *from StuInfo; -- 例如:查询年龄小于22岁的学生所有信息 select *from StuInfo where StuAge between 0 and 21; select *from StuInfo where StuAge<22; select *from StuInfo where StuAge<=21; --3.between select *from StuInfo; -- 从学生中查询年龄在20-30岁之间的人的学号,姓名和专业信息 select StuID '学号',StuName '姓名',MajorID '专业',StuAge '年龄' from StuInfo where StuAge between 20 and 30; --4.like -- 作用:模糊查询。like关键字与通配符一起使用 -- 通配符 描述 -- % 替代一个或多个字符 -- _ 替代一个字符 --[charlist] 字符列中的任何单一字符 --[^charlist] 不在字符列中的任何单一字符 -- 1) 查询姓名为P开头为的学生信息 select *from StuInfo where StuName like 'P%'; -- 2) 查询姓名最后一个字母为D的同学 select *from StuInfo where StuName like '%d'; -- 3) 查询姓名带有字母a的同学 select *from StuInfo where StuName like '%a%'; -- 4) 查询姓名为4个字母的同学,并且开头为A select *from StuInfo where StuName like '____'; select *from StuInfo where StuName like 'A___'; -- 5) 查询姓名开头为P或W的同学 select *from StuInfo where StuName like '[PW]%'; -- 6) 查询姓名开头字母不为P和W的学生信息 select *from StuInfo where StuName like '[^PW]%'; -- 5、and -- and在where子语句把两个或者多个条件结合起来,表示和的意思,多个条件可以同时执行 -- 查询年龄大于18岁,并且开头字母为d的同学 select *from StuInfo where StuAge>18 and StuName like 'd%'; --6、or -- or在where语句中可以把两个或者多个条件结合起来 -- 查询姓名开头为'A','W'或'P'的学生信息 select *from StuInfo where StuName like 'A%' or StuName like 'W%' or StuName like 'P%'; --7、not -- 否定 ,取反的意思。 -- 查新姓名开头字母不为'A'的同学的信息 select *from StuInfo where StuName not like 'A%'; -- 8、order by -- 排序,对需要查询后的结果集进行排序 -- 标志 含义 说明 -- ASC 升序 默认值 ascend -- DESC 倒序 descend -- 查询学生信息的表的学号,姓名,年龄,并且分别按年龄升序,降序排序 select StuID,StuName,StuAge from StuInfo order by StuAge DESC; select StuID,StuName,StuAge from StuInfo order by StuAge ASC; -- 9、as (Alias) -- 为指定列名称和表名指定别名 -- 作用:将查询的列,或者指定需要的名字,如果表名太长,就可以用别名简称 -- 1)将结果列改为需要的名称 Select StuID as '学号',StuName as '姓名' from StuInfo; -- 2) 用表名的别名,直接标志列的来源 select S.StuID,S.StuName, S.StuCity,S.MajorID,M.MajorName from StuInfo as S left join MajorInfo as M on S.MajorID=M.MajorID; -- 3) 在合计函数中,结统计记录的条数 select COUNT(StuID) as '学生人数' from StuInfo; -- 10、distinct -- 含义不同 -- 作用查询是忽略重复的值 -- 语法: select distinct 列名 from 表名 -- 查询学生所在的城市名称,排除重复 select distinct StuCity from StuInfo; -- 查询成绩分布情况 select *from SelCourse; select distinct(Score) '分数', count(StuID) as '人数' from SelCourse group by Score; -- 11、max、min -- max函数返回一列中的最大值,NULL值不包括在计算当中 -- min函数返回一列中的最小值,NULL值不包含在计算当中 -- 备注:max和min也可以用于文本列,以获得按字母顺序的最高值和最低值 -- 1) 查询学生中的最高分数 select MAX(Score) '最高分数', MIN(Score) '最低分数' from SelCourse; -- 12、sum -- 求和 -- 求平均分 select SUM(Score)'总分',COUNT(StuID)'总人数' , SUM(Score)/COUNT(StuID) '平均分' from SelCourse; -- 13、avg average -- 返回列的平均值 select SUM(Score)'总分',COUNT(Score)'人数',AVG(Score) '平均分' from SelCourse;
相关文章推荐
- oracle 第20章 序列号和同义词
- memcached完全剖析–1. memcached的基础
- 如何将Excel导入到数据库
- jsp从数据库获取数据填充下拉框实现二级联动菜单的方法
- SQL基础语句汇总
- 数据库分库分表(sharding)系列
- Oracle临时表
- oracle 第19章 视图
- 常用数据库系统简介
- wamp 开启mysql慢查日志
- mysql 导出 sql 执行sql
- MySQL [Warning]: IP address 'xxxx' could not be resolved: Name or service not known
- 将上传文件添加到数据库
- Oracle DCD
- 32位的PL/SQL developer如何连接64位的ORACLE 11g
- MYSQL远程连接问题
- SqlServer字段说明查询(表基本信息查询)
- 数据库引起的死锁及死锁的定义
- mysql驱动包添加, 通过mysql connector 连接数据库
- redis、memcache、mongoDB 对比