1,l列约束
1,声明了主键约束的列不允许出现重复的值,一个表中只能有一个主键约束通常加载编号列,可以加快数据的查找速度
null表示空,代表一个暂时无法确定的值,例如:无法确定有i个员工的手机号,邮箱....
null是关键字,在使用这个之的时候不能有引号
2,非空约束
声明了非空约束的列不允许插入null——not null
3,默认值约束——default
如果插入数据就不是使用默认值
4,唯一约束——inique
声明了唯一约束的的列上不允许出现重复的值
一个表中可以有多个唯一约束,允许插入null,甚至是多个null
5,检查约束,用户可以自己指定约束条件——check
create table student(
score tinyint check(score>=0 score<=0)
);
Mysql不支持检查约束
6,外键约束
声明了外键约束的列伤插入的值必须在另一个表的主键列伤出现过,目的是为了确保两个表之间建立了关联
外键约束和另一个表主键列类型保持一样
foreign key(外键列) references 令一个表(主键列)
7,字曾列
auto_increment:自动增长,如果设置了自增列,在插入编号的时候只需要赋值为null,就会获得最大值并加一
自增列必须应用在整数形式的
2,简单查询
1,查询特定的列
示例:查询所以员工的编号和姓名
select eid,ename from emp;
查询语法:
select ename,sex,birsday,salary from emp;
2,查询所有的列
select eid,ename,sex,birsday,salary,deptid from emp;
select * from emp;
3,给列取别名
示例:查询出所有员工的编号和姓名使用一个字母作为别名
select eid as a,ename as birsday as b from emp;
select 项目 as 称呼 from 表格;
select 项目1 as 称呼1,项目2 as 称呼2 from 表格;
4,显示不同的记录
示例:查询员工都分布在那些部门
select daptid from emp;
select distinct deptid from emp;
练习:查询出有哪些性别的员工
select sex deptid from emp;
5,查询时执行计算
示例:计算出:2+5-9+8*12;
select 2+5-9+8*12;
练习:查询出所有员工的姓名和年薪
select ename,(salary*12+2000)+20000 as salary from emp;
6,查询结果排序
select *from 表格 order by 查询的名称;
示例:查询出所有部门,结果按照编号从大到小排列
select *from dept order by eid asc;
示例:查询出所有部门,结果按照编号从大到小排列
select * from emp order by birshday asc;
如果查:
示例:所有员工,结果按工资降序排,如果相同按姓名排
select *from emp order by salary desc,ename asc;