数据库基本语句

来源:互联网 发布:热水器选购知乎 编辑:程序博客网 时间:2024/06/06 17:15


userName VARCHAR(20),
    -- date 为日期类型,只能表示年月日
    birthday DATE,
    -- double 为浮点类型
    money DOUBLE

);
-- 查询表中的所有记录
SELECT * FROM t_user;



-- 删除张三
DELETE FROM t_user WHERE userName = '张三';

-- 修改张飞的工资为5000
UPDATE t_user SET money=5000 WHERE userName = '张飞';

-- 修改70后人员工资为4500
UPDATE t_user SET money=4500 WHERE birthday>='1970-01-01'
 AND birthday<='1980-01-01';

-- 修改80后人员工资加100
UPDATE t_user SET money=money+100 WHERE birthday>='1980-01-01'
AND birthday<='1990-01-01';

SELECT * FROM t_user;

-- 修改张学友的名字为‘歌神’,工资涨为8000
UPDATE t_user SET userName='歌神',money=8000 WHERE userName='张学友';

-- 修改id为14的员工,工资为5500,生日修改为1988-05-20
UPDATE t_user SET money=5500,birthday='1988-05-20' WHERE id=14;

-- 显示每个员工的工资
SELECT userName,money FROM t_user;

-- 显示工资在5000以上的80后员工
SELECT * FROM t_user WHERE money>=5000 AND birthday>='1980-01-01' AND
birthday<'1990-01-01';

-- 显示姓张的员工,%为通配符,表示任意长度的字符
SELECT * FROM t_user WHERE userName LIKE '张%';

-- _为通配符,匹配一个长度的任意字符
SELECT * FROM t_user WHERE userName LIKE '赵_';

-- 查询带张的员工
SELECT * FROM t_user WHERE userName LIKE '%张%';

-- 查询所有员工的工资,distinct表示去除重复记录
SELECT DISTINCT money FROM t_user;

-- 显示第一条到第三条记录
SELECT * FROM t_user LIMIT 0,3;

-- limit表示返回限定行。第一个参数为起始条数(第一条为0),第二个参数为显示的参数
SELECT * FROM t_user LIMIT 3,5;

-- 加入没有工资的实习生
INSERT INTO t_user(userName,birthday) VALUES ('张康年','1998-02-10'),
('赵齐贤','1999-10-29');

-- 显示公司的实习生
SELECT * FROM t_user WHERE money IS NULL;

-- 显示公司的正式员工
SELECT * FROM t_user WHERE money IS NOT NULL ;

-- 显示工资在3500以上的员工
SELECT * FROM t_user WHERE money>=3500 OR userName LIKE '李%';

-- 显示王花和赵六的资料
SELECT * FROM t_user WHERE userName='王花' OR userName='赵六';
SELECT * FROM t_user WHERE userName IN ('王花','赵六');

-- 将员工的工资从低到高排序,order by 字段 表示按字段排序,默认为升序asc
SELECT * FROM t_user ORDER BY money ASC ;

-- 将员工的工资从高到低排序,order by 字段 表示按字段排序,降序desc
SELECT * FROM t_user ORDER BY money DESC ;

-- 显示所有的员工,并且显示该员工的工资等级。
-- 4000以下,显示低薪,4000-5000显示中薪,5000以上显示高薪
SELECT u.*,(CASE WHEN money<4000 THEN '低薪'
WHEN money>+4000 AND money<5000 THEN '中薪'
WHEN money IS NULL THEN '实习生'
ELSE '高薪' END
)grade FROM t_user u;

 
关系型数据库是以表作为实体,以主键和外键的关联关系作为联系的数据库结构。

主键:
在关系型数据库表中,用一个唯一的标识符来标识每一行,这个标识符就是主键
外键:
在关系型数据库表中, 外键就是用来表达表和表之间的关联关系。

删除记录DELETE 与 TRUNCATE 的区别:
DELETE会记录日志,以为着删除后的数据还可以恢复,但是效率低。TRUNCATE不会记录日志,删除后的数据不能恢复,但是效率不高

为什么要保证数据库的完整性?
为了防止垃圾数据的产生,从而影响数据库的执行效率!!!

数据库完整性概述

 1. 实体完整性   保证一行数据是有效的
 2. 域完整性      保证一列数据是有效的
 3. 引用完整性   保证引用的编号是有效的
 4. 用户自定义完整性  保证自定义规则


实体完整性
     保证每行所代表的实体能互相区别,不能存在两条一模一样的记录

什么是实体完整性
     表中的一行数据如果与它所代表的实体完全一致,则不具备实体完整性。

实现方法

 1.      主键约束
 2.      主键是表中的一到多个列,主键列不能为空,也不能重复。一个表中只能有一个主键。
 3.      唯一约束
 4.      唯一约束是指给定列的所有值必须唯一,该列在表中每一行的值必须唯一。它和主键约束的区别在于该列可以为空,并且可以在一张表中给多个
 5.      列设置唯一约束。


域完整性
     域完整性是指定列的输入有效性

实现方法

 *      非空约束:Not Null
 *      默认约束:Default
 *      检查约束:Check(MySQL不支持)


什么叫引用完整性

 *     参照完整性是指分布在两个表中的列所满足的具有主从性质的约束关系。
 *      从外表键中出现的数据,必须在主表的主键列中出现。


外键于外键约束


 *      外键是指从表的某列与主表的某列存在依附关系
 *      外键约束是指在外键关联主键上强制加上一个约束,如果违反该约束,则不允许该条数据的修改


注意:没有建立外键约束不等于没有外键!!!

0 0
原创粉丝点击