
SQL
Free Jim
这个作者很懒,什么都没留下…
展开
-
sql 一些关键词
1.distinct选择时不选择重复的count(distinct 选课表,学号)2.unique建表时不允许重复值3.not null不允许空值,不然无法插入4. not in不在结果集中5. group bygroup by classNo把同一班的聚集到一起且group by 后面不能用where,只能用havingstu_score存了每个学生语数英的成绩select sno from stu_score group by sno having AVG(score)&原创 2020-07-15 13:24:11 · 297 阅读 · 0 评论 -
ER图
下面说几点要素:1.实体是矩形框,属性是椭圆,菱形是关系2.菱形上如果有属性的话,表示这也有一张新表菱形上的属性加上和两个实体的主码(作外码)构成的一张新表3.连线上的1,m,n表示是怎么样的对应关系有1对1,1对m,n对m,大家根据实体之间的关系可以确定下来4.关系模式就是上面ER图表示关系的总集了(包括菱形的新表)...原创 2020-07-15 08:34:48 · 1482 阅读 · 0 评论 -
级联删除
FOREIGN KEY (sid) REFERENCES stu(sid) ON DELETE CASCADE ON UPDATE CASCADE创建表时,只在外键那添加字段即可从而实现外键的意义原创 2020-07-11 12:12:15 · 238 阅读 · 0 评论 -
MySQL 无法删除某些表
当有其他表依赖于这张表时,是无法直接删除这张表的解决:查看依赖关系,把依赖于它的表先给删掉,然后就可以删除它了原创 2020-07-10 09:32:32 · 2937 阅读 · 0 评论 -
MySQL 无法执行delete和update
safe-updates 模式下,无法执行update和delete解决:预先把这个模式关掉即可SET SQL_SAFE_UPDATES=0;原创 2020-07-10 09:30:50 · 1478 阅读 · 0 评论 -
数据库 一些名词
码/键:能唯一表示表示一个记录值的内部记录标志超键:属性值唯一(可多属性)像学号,身份证而像这样:同学A性别男,同学B性别男性别不是超键候选码/键:能唯一标识元组的最小超键(元组:一行)主码/键:候选码/键中的一个部分函数依赖:AB->C单独A也能推出C,单独B也能推出C完全函数依赖AB->C但是不能单独A推出C,单独B推出C非平凡函数依赖:X->Y,但是Y不是X的子集例子:(学号,姓名)->性别平凡函数依赖:X->Y,Y是X的子集例子:(学原创 2020-07-07 16:42:21 · 375 阅读 · 0 评论 -
主码自增
alter table student change sno int auto_increment;以后插入时可以缺省主码,让数据库自己自增填充例:stu(id,name)id为主码下面代码是可以成功运行的insert into stu(name) values('小明')原创 2020-06-23 20:00:41 · 782 阅读 · 0 评论 -
数据库 权限 语句
将查询关系S的权限授予用户WANG,并允许该用户将此权限授予其他用户;GRANT SELECT ON S TO WANG WITH GRANT OPTION收回用户U4对学生表(STUD)中学号(XH)的修改权限;REVOKE UPDATE(XH) ON STUD FROM U4每个职工只对自己的记录有SELECT权力; Grant select on 职工,部门 when user()=name to allrevoke select on 职工,部门 when user()原创 2020-06-18 19:18:50 · 2484 阅读 · 0 评论 -
数据库 范式
第一范式:数据不再分例:不允许这样第二范式:有主码即要有可以标识每个对象的码,例:ID第三范式:不存在传递依赖例:模式(学号,姓名,所在院系,学院地点,学院电话)存在以下决定关系:学号->所在院系所在院系->学院地点,学院电话则有学号->所在院系->学院地点,学院电话故该模式不符合第三范式BC范式:属性项不存在部分依赖例:(仓库id,物品id,物品名称)改模式存在关系:(仓库id,物品id)->物品名称故不符合BC范式第四范式:属性项不允许多.原创 2020-06-18 17:58:41 · 893 阅读 · 0 评论 -
Excel导入数据到数据库时字节截断
多半是给的字符串长度不够,而产生了截断原创 2020-05-17 18:08:20 · 373 阅读 · 0 评论 -
sql 变量
declare @c_no char(8)SET @c_no = '015932'select S.sno 学号,sname 姓名,sex 性别,birthday 出生日期,school_year 级别,S.class 班级 from Student S where S.sno in (select sno from select_course where course_no=@c_no)原创 2020-05-17 18:06:59 · 186 阅读 · 0 评论 -
Excel无法导入数据到SQL Server
Excel的数据要是有一行不满足约束,就会报错,而且一行数据都不会插入只有Excel的数据全部符合约束,才能成功导入所以,导入前,要先清洗Excel数据,把不满足条件的行给删除Ps:MySQL则是符合约束的插入,不符合的不插入...原创 2020-05-17 18:06:22 · 1209 阅读 · 0 评论 -
sql 对象名无效
原因:当前查询选择的数据库不对原创 2020-05-17 18:05:47 · 265 阅读 · 0 评论 -
sql 视图 排序 实例
create view studentScore(studentNo,studentname,courseName,score)as select S.studentNo,studentname,courseName,score from Student S join Score on S.studentNo=Score.studentNo join Course on Cours...原创 2020-05-02 10:56:39 · 6367 阅读 · 0 评论 -
sql 复杂查询语句一
查询至少选修了两门课程并且平均成绩大于或等于75分的学生的学号、姓名、成绩和所在班级。写出相应的SQL语句select S.studentNo,studentName,Score,className from Student S join Score on S.studentNo=Score.studentNo join Course on Course.courseNo=Score...原创 2020-05-02 10:53:42 · 1279 阅读 · 0 评论 -
sql 复杂查询语句
查询成绩高于该门课程平均分的学生的学号、姓名和成绩,写出相应的SQL查询语句(课程表中只有学号,课程号,和成绩。每门课程的平均分需要另外计算)select S.studentNo,studentName,score from Student S join Score on S.studentNo=Score.studentNo join Course on Course.cours...原创 2020-05-02 10:52:19 · 2009 阅读 · 0 评论 -
数据库 组合主键 外键
create table SBook( schoolYear TINYINT not null check(schoolYear in ('1','2','3','4','5','6','7','8')),/*取值范围*/ Number Smallint check(Number like '[0-9][0-9][0-9]' and Number!='000'),/*正则*/ courseN...原创 2020-05-02 10:49:56 · 4081 阅读 · 0 评论