MySQL基础学习运用(3)

357 阅读3分钟

1.列约束

 mysql可以对要插入的数据进行特定的验证,只要满足条件才允许插入,否则被认为的非法的插入,例如一个人的性别只能是男或女,一个人的工资只能是正数。 

 (1)主键约束——PRIMARY KEY 

 声明了主键约束的列上不允许插入重复的值;一个表中只能有一个主键约束,通常添加在编号列上,查询时候会按照编号列从小到大排序,会加快查找速度。

NULL表示空,在插入的时候,无法确定的数据通常用NULL,例如无法确定一个员工的性别,生日,无法确定商品的价格等; 

注意:NULL使用的时候不能加引号。

主键列上禁止插入NULL。 

(2)非空约束——NOT NULL 

 声明了非空约束的列上,禁止插入NULL 

 (3)唯一约束——UNIQUE 

 声明了唯一约束的列上,禁止插入重复的值,允许插入NULL,甚至是多个NULL 

两个NULL比较是不等的,所以允许插入多个。

(4)默认值约束——DEFAULT 

 可以使用DEFAULT关键字声明默认值,具体有两种方式可以应用默认值 

 INSERT INTO laptop_family VALUES(36,'神州',DEFAULT); 

 INSERT INTO laptop_family(fid,fname) VALUES(37,'惠普'); 

 (5)检查约束——CHECK 

 检查约束可以对插入的数据进行自定义的验证 

 CREATE TABLE student( 

 score TINYINT CHECK(score>=0 AND score<=100)

 ); 

 mysql不支持检查约束,会影响数据的插入速度。对服务器造成较大的压力 后期可以使用JS替代此功能。

 (6)外键约束——FOREIGN KEY 

 声明了外键约束的列上,取值必须在另一个表的主键列上出现过,两者的列类型要保持一致;一个表外键列允许使用多次,而且允许使用NULL 

 FOREIGN KEY(外键列) REFERENCES 另一个表(主键列)


2.自增列  

AUTO_INCREMENT: 自动增长,假如一个列上声明了自增列,则无需手动赋值,只需要赋值为NULL,就会自动获取当前的最大值,然后加1插入。  

注意:自增列必须添加在主键列上,自增列允许手动赋值。

3.简单查询 

 (1)查询特定的列 

 示例:查询所有员工的编号和姓名 

 SELECT eid,ename FROM emp; 

SELECT ename,sex,birthday FROM emp; 

 (2)查询所有的列 

 SELECT eid,ename,sex,birthday,salary,deptId FROM emp; 

 SELECT * FROM emp; 

 (3)给列起别名

 示例:查询所有员工的姓名和性别,使用汉字别名 

 SELECT ename AS 姓名,sex AS 性别 FROM emp; 

SELECT eid AS 编号,ename AS 姓名,salary 工资 FROM emp; 

SELECT ename a,birthday b FROM emp; 

AS关键字可以省略,保留空格即可;

 起别名的目的通常是为了简化列名称单词过长 

 (4)显示不同的记录 

 示例:查询员工都分布在哪些部门 

 SELECT DISTINCT deptId FROM emp; 

SELECT DISTINCT sex FROM emp;

 (5)查询时执行计算 

 示例:计算2+3-4*5+9*37 

 SELECT 2+3-4*5+9*37; 

SELECT ename,salary*12 FROM emp; 

SELECT ename 姓名,(salary+700)*12+8000 年薪 FROM emp; 

 (6)查询结果集排序 

 示例:查询所有的部门,结果集按照部门编号升序排列 SELECT * FROM dept ORDER BY did ASC; #ascendant 升序 

 示例:查询所有的部门,结果集按照部门编号降序排列 SELECT * FROM dept ORDER BY did DESC; #descendant 降序 desc emp;

 describe描述