JAVA学习数据库2

来源:互联网 发布:linux重启网卡 编辑:程序博客网 时间:2024/05/29 21:28
distinct 一般与count连用,用在count括号里面,取出重复记录
分组之后只能操作对应列和基本数据。
使用数据库
CREATE DATABASE mydb;

-- 创建表,先写ID,再写列
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,
-- 钱有小数,使用浮点类型   最后一个列,不用加逗号
    money DOUBLE

);

-- 查询语句,查询表中的所有记录
SELECT * FROM t_user

添加记录
-- 添加记录  INSERT INTO +表(列,列,)+ VALUE(值,值,值)
INSERT INTO t_user(userName,birthday,money) VALUE('张三','1988-02-02',3000);
INSERT INTO t_user(userName,birthday,money) VALUE('张四','1972-01-01',5000);
INSERT INTO t_user(userName,birthday,money) VALUE('王五','1977-05-05',7000);
批量添加   注意是逗号隔开,然后最后一条是分号
-- 批量添加记录
INSERT INTO t_user(userName,birthday,money)
VALUE('张飞','1992--09-30',3000),
('刘备','1992-04-04',3000),
('郑飞','1991-05-04',5000),
('张飞','1992-04-07',7000);
删除已有记录
-- 删除表
-- DROP TABLE t_user;

-- 删除某条记录,比如id为15
DELETE FROM t_user WHERE id=10;


-- 删除记录,通过其他列名字为张三的记录
DELETE FROM t_user WHERE userName='张三';

修改记录
-- 修改某个坐标,例如田七的工资为5000
UPDATE t_user SET money=5000 WHERE userName='田七';

-- 修改70后人员工资为4500
UPDATE t_user SET money=8500 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  注意money和 where之间没有符号,   名字和money之间有逗号。
UPDATE t_user SET userName='无忌公子', money=80000WHERE userName='田七';

-- 修改id为12的员工,工资为5500,生日修改为1988-05-20
UPDATE t_user SET money=5500,birthday='1988-05-20'WHERE id=12;
显示操作
-- 只显示某些列(比如只显示姓名和工资两列)
SELECT userName,money FROM t_user;

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

-- 显示姓张的员工 ,%为通配符,表示任意长度字符,  下划线 _为通配符,匹配一个长度的任意字符,比如张_ 匹配任意姓张的一个字名字的人
SELECT * FROM t_user WHERE userName LIKE '张%';

-- 查询名字中带了张的人,就使用 %张%
SELECT * FROM t_user WHERE userName='%张%';

-- 查询员工工资,并去掉重复记录 distinct
SELECT DISTINCT money FROM t_user;

-- 显示第七条开始的3条记录
-- limit  6(起始条数),3(需要显示的行数,不是第几行) ;
-- 注意,第一条是0开始的,所以第七条的下标是6
SELECT * FROM t_user LIMIT 6,3;

-- 添加部分行记录(未添加的部分的值自动为null)
INSERT INTO t_user(userName,birthday) VALUES('张康年','1990-05-05'),('赵启贤','1990-05-06');
SELECT * FROM t_user

-- 查找null    IS NUL
SELECT * FROM t_user WHERE money IS NULL;

-- 显示非null
SELECT * FROM t_user WHERE money IS NOT NULL;

-- 或者 or 显示工资在5000以上,或者
SELECT * FROM t_user WHERE money>=5000 OR userName LIKE '李%';


-- 选择操作
-- 显示张飞和王五的资料 or     IN
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以上显示高薪
-- u 显示别名  when ....then    else    ....end 


SELECT u.*,(CASE WHEN money<4000 THEN '低'
    WHEN money>=4000 AND money<5000 THEN '中'
    WHEN money IS NULL THEN '实习生'
    ELSE  '高'    END
    )'1' FROM t_user u;


0 0
原创粉丝点击