Mysql笔记(二)简单增删改查
程序员文章站
2021-11-28 11:23:20
...
这是我在学习Mysql之路上做的笔记,今天将它粘出来。这一篇主要是简单增删改查。有错误的欢迎大家指出。。。
#增删改查
#创建部门表
CREATE TABLE IF NOT EXISTS tb_dept(
deptno INT PRIMARY KEY auto_increment COMMENT '部门编号',
dname VARCHAR(18) COMMENT '部门名称',
loc VARCHAR(100) COMMENT '部门地址'
)ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='部门表';
#创建员工表
CREATE TABLE IF NOT EXISTS tb_emp(
empno INT PRIMARY KEY auto_increment COMMENT '员工编号',
ename VARCHAR(18) NOT NULL COMMENT '员工姓名',
job enum('总经理','项目经理','软件构造师','软件开发工程师','软件测试工程师',
'市场营销经理','财务经理','人力资源','质量管理经理') DEFAULT '软件开发工程师' COMMENT '员工职位',
mgr int COMMENT '上级领导',
hiredate DATE COMMENT '入职时间',
sal int COMMENT '薪资',
comm int COMMENT '奖金',
phone VARCHAR(18) UNIQUE COMMENT '电话',
dept_id int COMMENT '部门编号',
CONSTRAINT fk_emp FOREIGN KEY (dept_id) REFERENCES tb_dept(deptno)
)ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='员工表';
#1、增加
#一次插入多条记录INSERT
INSERT INTO tb_dept VALUES
('7100', '董事部', '十堰'),
('7200', '产品研究部', '十堰2'),
('7300', '项目开发部', '上海'),
('7400', '质量管理部', '深圳'),
('7500', '市场营销部', '深圳'),
('7600', '客户服务部', '深圳'),
('7700', '财务部', '十堰'),
('7800', '人力资源部', '十堰');
INSERT INTO tb_emp VALUES
('7101', 'King', '总经理', null, '2009-08-21', '5000', null, '18772221788', '7100'),
('7301', 'Johnson', '项目经理', '7101', '2010-08-21', '3500', '200', '15072624256', '7300'),
('7201', 'Jones', '软件构造师', '7301', '2015-08-21', '3200', null, null, '7200'),
('7302', 'Brown', '软件开发工程师', '7301', '2016-08-09', '3100', '50', null, '7300'),
('7303', 'Miller', '软件开发工程师', '7301', '2018-05-21', '3000', null, null, '7300'),
('7304', 'Davis', '软件开发工程师', '7301', '2018-10-21', '2800', '50', null, '7300'),
('7305', 'Wilson', '软件开发工程师', '7301', '2014-08-21', '3300', null, null, '7300'),
('7306', 'Thomas', '软件测试工程师', '7301', '2015-06-21', '3200', null, null, '7300'),
('7501', 'Jackson', '市场营销经理', '7101', '2016-08-21', '2920', '100', '18342521566', '7500'),
('7701', 'Clark', '财务经理', '7101', '2013-06-21', '3300', null, '17552223457', '7700'),
('7801', 'Tom', '人力资源', '7101', '2011-07-21', '2860', '60', '18776660111', '7800'),
('7401', 'Tomas', '质量管理经理', '7101', '2011-08-03', '2800', null, '18773345012', '7400');
#查看数据
SELECT *FROM tb_dept;
SELECT *FROM tb_emp;
#从一张表复制数据到新表中
#复制了表tb_dept的 结构、数据 ,但是不复制约束
CREATE TABLE dept SELECT *FROM tb_dept;
#查看数据
SELECT *FROM dept;
#2、删除
#DELETE删除表数据,保留表结构,可以回滚
DELETE FROM tb_dept WHERE dname='销售部';
#DROP删除表结构和数据:删除最快,直接从内存删除
DROP TABLE tb_dept;
#TRUNCATE清空一个表数据,不可以回滚
TRUNCATE TABLE tb_dept;
#3、修改
UPDATE tb_dept SET loc='上海' WHERE dname='销售部';
UPDATE tb_emp SET ename='Luolei',job='开发工程师' WHERE empno=7113;
#auto_commit自动提交
#查询MySQL自动提交设置(1自动提交,0手动提交)
show variables like 'autocommit';
SELECT @@autocommit;
SET autocommit=1;
#4、查询
#查看数据
SELECT *FROM tb_dept;
SELECT *FROM tb_emp;
DESC tb_emp;
#DISTINCT查询清除重复行
SELECT DISTINCT loc FROM tb_dept;
#联合查询
select DISTINCT dept_id,job from tb_emp;
#使用between区间
SELECT *FROM tb_emp WHERE sal BETWEEN 1300 AND 2000;
#包含in
SELECT *FROM tb_emp WHERE mgr IN(7103);
SELECT *FROM tb_emp WHERE mgr IN(7103,7099);
#IS NULL
SELECT *FROM tb_emp WHERE comm IS NULL;
#(_)一个字符,(%)零个或多个字符
SELECT *FROM tb_emp WHERE ename LIKE '%so_';
#逻辑运算符
#AND OR NOT
SELECT *FROM tb_emp WHERE dept_id=40 AND mgr='7103';
SELECT *FROM tb_emp WHERE mgr ='7103' OR mgr ='7099';
SELECT *FROM tb_emp WHERE NOT mgr='7103';
#order by排序(默认asc升序,desc降序)
#orderby多个字段时,用逗号分隔每一个字段,排序的方法是先按第一个字段排序,如果有相同的再按后续的字段依次排序。
SELECT *FROM tb_emp ORDER BY sal DESC,comm ASC;
上一篇: 使用JDOM创建XML文档的DTD
下一篇: eclipse环境连接MySQL问题