数据库的增、删、改、查例子

来源:互联网 发布:九把刀楼下的房客 知乎 编辑:程序博客网 时间:2024/05/21 04:23
-- 创建数据库
CREATE DATABASE mydb;

-- 删除数据库
DROP DATABASE mydb;


-- 创建表
CREATE TABLE t_user(
-- primary KEY 申请该列为主键列。 主键列不能重复,不能为null
-- AUTO_INCREMENT 自动增长列,由DBMS分配该列的值,确保该列的值不重复
-- 同时不为null,该列只能是int
id INT PRIMARY KEY AUTO_INCREMENT,
-- varchar 为可变长度的字符类型
userNAme VARCHAR(20),
-- date为日期类型,只能表示年月日
birthday DATE,
-- double为浮点型
money DOUBLE

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

-- 添加记录
INSERT INTO t_user(userNAme,birthday,money) VALUES('张三','1990-02-02',3000);
INSERT INTO t_user(userName,birthday,money) VALUES('李四','1992-01-01',1000);
INSERT INTO t_user(userName,birthday,money) VALUES('王二','1993-02-04',2000);
INSERT INTO t_user(userName,birthday,money) VALUES('赵五','1994-03-04',1500);
INSERT INTO t_user(userName,birthday,money) VALUES('赵四','1994-01-05',2500);
INSERT INTO t_user(userName,biethday,money) VALUES('孙二','1994-11-14',3000);
INSERT INTO t_user(userName,birthday,money) VALUES('周周','1987-12-23',4000);
INSERT INTO t_user(userName,birthday,money) VALUES('吴三桂','1800-01-01',5000);
INSERT INTO t_user(userName,birthday,money) VALUES('武则天','1971-05-23',500);
INSERT INTO t_user(userName,birthday,money) VALUES('陈友谅','2001-01-06',400);

-- 批量添加
INSERT INTO t_user(userName,birthday,money) VALUES('刘备','1968-08-23',5000),
('张飞','2011-03-21',300),
('关羽','2012-11-11',6000);

-- 删除表
DROP TABLE t_user;
-- 删除id为5的记录
DELETE FROM t_user WHERE id=5;
-- 删除张三
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'

-- 修改陈友谅的名字为“亮亮”,工资涨为6100
UPDATE t_user SET userName='亮亮',money=6100 WHERE userName='陈友谅';

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

SELECT * FROM t_user;

-- 显示每个员工的工资
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;
-- 显示第一条到第三条,limit表示返回限定行。
-- 第一个参数为起始条数(第一条为0),第二个参数为显示的条数
SELECT * FROM t_user LIMIT 0,3;


INSERT INTO t_user(userName,birthday) VALUES('张康年','1998-01-03'),
('赵齐贤','1999-03-04');
-- 显示公司的实习生
SELECT * FROM t_user WHERE money IS NULL;
-- 显示公司的正式工
SELECT * FROM t_user WHERE money IS NOT NULL;
-- 显示工资在5000以上的或者姓李的员工
SELECT * FROM t_user WHERE money>=5000 OR userName LIKE '李%';
-- 显示张飞和刘备的资料
SELECT * FROM t_user WHERE userName='关羽' OR userName='刘备';
SELECT * FROM t_user WHERE userName IN('关羽','刘备');
-- 将员工工资从高到低排序,
-- order by 字段 表示安字段排序,默认为升序asc,降序为desc
SELECT * FROM t_user ORDER BY money;
-- 显示所有的员工,并显示该员工的工资等级。
-- 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;
0 0
原创粉丝点击