数据库系统概论-第三章

DDL Data-Definition Language 数据定义语言mysql

DDL不只定义一组关系(表结构),而且能定义关系的信息。sql

DDL包括:关系的模式(表结构),属性的取值范围,完整性约束(非空,主外键),关系维护的索引集合(表的索引),关系的安全性和权限信息(表权限),关系在磁盘上的物理存储结构.数据库

数据库支持多种基础类型,char类型用于存储固定长度的字符串,好比属性A的取值范围定义为char(10),其取值为'Avi',数据库自动在其后填充七个空格。当属性A的取值范围为varchar(10)时,数据库不会在其后填充空格,因此取值范围为char(10)和varchar(10)的'Avi'在数据库中比较时不必定相等。通常避免使用char.安全

DML Data-Manipulation Language 数据操做语言函数

SQL将任何涉及null的运算视为unknown,既不是is null也不是is not null。

大学数据库:
找出Comp.Sci系开设的三个学分的课程
SELECT title from course WHERE dept_name = 'Comp. Sci.' AND credits = 3;code

找出名为Einstein的教师所教的全部学生的标识,保证结果中没有重复
SELECT DISTINCT a.s_ID FROM advisor a JOIN instructor i ON a.i_ID = i.ID WHERE i.NAME = 'Einstein';索引

找出教师的最高工资
SELECT MAX(salary) from instructor;ip

找出工资最高的全部教师名称
SELECT NAME FROM instructor WHERE salary = (SELECT MAX(salary) as max_salary from instructor);ci

给Comp. Sci系的每位教师涨10%的工资
UPDATE instructor SET salary = salary * 1.1;字符串

查询全部至少选修了一门Comp.Sci课程的学生名称
SELECT DISTINCT NAME AS name FROM student WHERE dept_name = 'Comp. Sci.';

MYSQL的like是大小写不敏感的,使用binary能够使其区分大小写
SELECT * FROM department WHERE dept_name like binary '%Sci%';

SQL的like是大小写敏感的,使用lower()函数能够使其不分区大小写
SELECT * FROM department WHERE dept_name like lower('%Sci%');

考虑查询

select distinct p.id
from p,a1,a2
where p.id = a1.id or p.id = a2.id;

select from 多表在mysql便是作内链接查询,若是p,a1,a2有

MYSQL若是没有设置的话,在update的时候须要用主键做为where的条件,须要使用SET SQL_SAFE_UPDATES = 0;关闭安全更新设置(1的话则开启安全更新设置)

Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column. To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect.

相关文章
相关标签/搜索