Mysql数据库·增删改查

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

MysqlOracle(甲骨文)大型数据库MySql中小型数据库DB2SqlServer.....Mysql的发展:瑞典的MysqlAB公司2008年Sun公司(JAVA)2009年Oracle收购sun公司IBM69亿美元sunEclipse(日蚀)Oracle74亿美元sunMysql的简单使用:1.登陆mysql数据库win+r---cmdmysql-uroot-p1234修改密码:mysqlsetpasswordforroot@localhost=password('1234');此处可能存在异常情况原因:a、未配置环境变量b、Mysql服务未开启(netstartmysql)2.对库的操作a.查看所有的库showdatabases;系统自带库:information_schemamysqltestb.创建库createdatabaseday01;(不指定编码,跟随数据库系统编码)createdatabasedb1defaultcharactersetgbk;(指定编码)查看创建库的语句:showcreatedatabase库名.修改库的编码:alterdatabaseday01defaultcharactersetutf8;c.删除库dropdatabase库名.dropdatabaseday01;注意:系统自带的三个库不能删除.d.使用库usedb1;3.对表的操作表:二维关系表有行有列的关系表.记录:表中的一行数据.字段:表中的一列.常用的字段类型:字符串类型:varchar(长度)、char数值类型:int(整数)floatdouble(小数)日期类型:datea.创建表员工表:员工号姓名性别年龄职位薪水入职日期createtableemp(empnovarchar(4),namevarchar(30),sexvarchar(5),ageint(3),jobvarchar(30),salaryint(5),hiredatedate);b.查看所有的表showtables;c.查看建表语句showcreatetable表名.d.查看表结构desc表名.e.往表中插入数据e1.给表中所有的字段插入数据insertintoemp(empno,name,sex,age,job,salary,hiredate)values('1001','zhangsan','m',22,'developer',10000,'2015-12-21');简写形式:insertintoempvalues('1002','lisi','m',23,'test',8000,'2015-10-10');e2.给表中部分字段插入数据insertintoemp(empno,name,sex,age)values('1003','cuihua','w',18);解决插入中文问题:(eclipse中的设置)ConnectionURL:jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gbk插入中文:insertintoempvalues('1005','莫小贝','女',12,'武林盟主',20000,'2015-12-12');f.删除数据deletefromemp;--删除表中所有数据deletefromempwhereempno=1004;MyEclipse配置Mysql连接:1.切换到数据库界面.2.在DBBroswer中右键选择new3.配置连接:DriverTemplate:MySQLConnector/JDrivername:随便起名字ConnectionURL:jdbc:mysql://localhost:3306/test本机:localhost127.0.0.l192.168.4.223Username:rootpassword:1234DriverJARs:mysql-connector-java-5.17-bin.jarMysql常见的错误1.Can'tcreatedatabase'xxx';databaseexists不能创建xxx库,因为已经存在2.Can'tdropdatabase'xxx';databasedoesn'texist不能删除xxx库,因为已经不存在--创建库createdatabasesearchdefaultcharactersetgbk;--使用库usesearch;--创建表--员工信息表createtableemp(empnoint(4),--员工编号enamevarchar(30),--员工姓名jobvarchar(30),--职位salaryint,--工资bonusint,--奖金ageint(3),--年龄sexvarchar(1),--性别hiredatedate,--入职日期managerint(4),--领导编号deptnoint--部门编号);--部门表:createtabledept(deptnoint,--部门编号dnamevarchar(50),--部门名称locvarchar(80)--部门位置);--往emp表中插入数据null空:没有不存在insertintoemp(empno,ename,job,salary,bonus,age,sex,hiredate,manager,deptno)values(1001,'张三丰','老板',20000,100,30,'m','2009-02-02',null,10);insertintoempvalues(1002,'张无忌','程序猿',12000,200,20,'m','2010-03-02',1001,10);insertintoempvalues(1003,'小龙女','程序猿',10000,300,18,'f','2012-12-02',1001,10);insertintoempvalues(1004,'杨过','程序猿',10000,200,22,'m','2012-12-22',1003,10);insertintoempvalues(1005,'黄蓉','攻城师',15000,100,25,'f','2012-12-28',1001,20);insertintoempvalues(1006,'郭靖','攻城师',13000,100,28,'m','2013-12-02',1005,20);insertintoempvalues(1007,'李莫愁','秘书',8000,50,22,'f','2013-03-02',1001,30);insertintoempvalues(1008,'韦小宝','实施',8500,null,29,'m','2013-04-02',1001,30);insertintoempvalues(1009,'陆无双','实施',6000,100,26,'m','2014-12-12',1001,30);insertintoempvalues(1010,'黄飞鸿','打手',5000,100,20,'m','2015-03-02',1001,null);--给dept表插入数据insertintodeptvalues(10,'研发部','北京');insertintodeptvalues(20,'运维部','上海');insertintodeptvalues(30,'实施部','深圳');--查询usesearch;--1.查询emp表中的所有数据select*fromemp;--*通配符通配了emp表中的所有列。selectempno,ename,job,salary,bonus,age,hiredate,sex,manager,deptnofromemp;--select(选择,筛选..)from(从...地方)--执行顺序:from--select--2.查询emp表中员工名字以及员工的薪水selectename,salaryfromemp;--查询部分字段:select字段名1,字段名2....from表;--3.查询薪水大于10000的员工.--查什么员工---ename---empno---salary--查询条件是什么salary10000selectempno,ename,salaryfromempwheresalary10000;--selectfromwhere--执行顺序:from--where--select--4.查询薪水大于等于10000并且小于等于18000的员工--查什么empnoenamesalary--查询的条件是什么10000=salary=18000(数学中的写法)--salary=10000and&&salary=18000selectempno,ename,salaryfromempwheresalary=10000andsalary=18000;--betweenand:在...之间.selectempno,ename,salaryfromempwheresalarybetween10000and18000;select*fromemp;--5.查询薪水是10000或者12000的员工.selectempno,ename,salaryfromempwheresalary=10000orsalary=12000;--in(10000,12000);selectempno,ename,salaryfromempwheresalaryin(10000,12000);--6.查询职位是程序猿或者是攻城师并且薪水在10000到--20000之间,并且性别是男的员工--查什么empnoenamejobsalarysex--查询的条件是什么--a.职位是程序猿或者是攻城师jobin('程序猿','攻城师')--b.薪水在10000到20000之间salarybetween10000and20000--c.性别是男sex='m'--aandbandcselectempno,ename,job,salary,sexfromempwherejobin('程序猿','攻城师')andsalarybetween10000and20000andsex='m';--错误演示selectempno,ename,job,salary,sexfromempwherejob='程序猿'orjob='攻城师'andsalarybetween10000and20000andsex='m';selectempno,ename,job,salary,sexfromempwherejob='攻城师'orjob='程序猿'andsalarybetween10000and20000andsex='m';--7.查询奖金为null的员工selectename,bonusfromempwherebonus=null;select*fromemp;--null:空没有不存在--和null做比较不能使用=..要使用isselectename,bonusfromempwherebonusisnull;--8.查询奖金不是null的员工selectename,bonusfromempwherebonusisnotnull;--9.查询所有员工的年薪12*(salary+bonus)selectename,12*(salary+bonus)fromemp;--与null做运算,结果都为null--空值处理函数:ifnull()--ifnull(bonus,0):--如果bonus为null,则处理成0--如果bonus不为null,则不处理.按照bonus实际的值运算.selectename,12*(salary+ifnull(bonus,0))fromemp;--函数:单行函数组函数(聚合函数)--单行函数:单行函数会对表中的每一条记录进行操作--并且每一条记录都会产生一个

1 / 16
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功