MySQL数据库的操作java教案课件.pptx
1,会计学,MySQL数据库的操作java,1会计学MySQL数据库的操作java,简单、免费、扩展性、相对成熟等一直都是MySQL的吸引所在。 最具人气开源数据库,MySQL绝非浪得虚名Apple,Google、Facebook、Twitter大量使用了MySQL,,简单、免费、扩展性、相对成熟等一直都是MySQ,直接点击“Next”,继续,选择安装类型,3个类型: Typical、Complete、Custom。选择“自定义” (Custom)安装,然后点“Next”下一步,出现自定义安装界面,第四章 MySQL的操作_安装,直接点击“Next”,继续,选择安装类型 3个类型: Typ,默认情况下MySQL将会被安装到C:Program FilesMySQLMySQL Server 5.1文件夹里面。自己可以改路径,点“Change”更改路径。,默认情况下MySQL将会被安装到C:Program Fi,点“OK”后回到自定义安装界面,可看见路径已经改为你设置的路径,点“Next”,准备开始安装,第四章 MySQL的操作_安装,点“OK”后回到自定义安装界面,可看见路径已经改为你设置的路,第四章 MySQL的操作_安装,第四章 MySQL的操作_安装,填完信息后,点“Next”,然后出现预览你刚才填的信息的界面,再点“Next”出现安装完成界面,这里有个配置向导的选项(Configure the MySQL Server now),建议勾选立即配置你的MySQL。,点击“Finish”完成安装,并开始配置MySQL,填完信息后,点“Next”,然后出现预览你刚才填的信息的界面,第四章 MySQL的操作_4.1安装,第四章 MySQL的操作_4.1安装,第四章 MySQL的操作_4.1安装,选“Detailed configuration”,第四章 MySQL的操作_4.1安装 选“Detai,进入服务类型选择页面。选“Developer Machine”(开发者机器),这样占用系统的资源不会很多,进入服务类型选择页面。,进入数据库用法选择页面。选择“Multifunctional Database”,进入数据库用法选择页面。,进入选择InnoDB数据存放位置页面,不用更改设置,直接放在Installation Path安装目录里即可,进入选择InnoDB数据存放位置页面 不用更改设置,直接放在,选择MySQL的同时联接数,选择“Manual Setting”,设置为100(自己设置),选择MySQL的同时联接数 选择“Manual Settin,配置MySQL在TCP/IP通讯环境中的端口,选择默认的3306端口即可。,配置MySQL在TCP/IP通讯环境中的端口 选择默认的33,选择MySQL中的字符设置,这里的选择将会影响你是否能在MySQL中使用中文。 选择gb2312字符集以便支持简体中文, 繁体中文选big5,选择MySQL中的字符设置 这里的选择将会影响你是否,设置Windows服务选项,“Launch the MySQL Server automatically”一定要勾选,这样Windows启动时, MySQL就会自动启动服务, 要不然就要手工启动MySQL。许多人说安装MySQL后无法启动、无法连接、出现10061错误,原因就在这里。,设置Windows服务选项 “Install As Wind,设置根帐号root的登录密码,“Modify Security Settings”是设置根帐号的密码, 输入你设定的密码即可。“Create An Anonymous Account”是创建一个匿名帐号,这样会导致未经授权的用户非法访问你的数据库,有安全隐患,建议不要勾选。,设置根帐号root的登录密码 “Modify Securit,点“Execute”开始配置,当出现“Service started successfully”时,说明你的配置完成, MySQL服务启动成功,点“Finish”完成,整个MySQL的配置完成。,点“Execute”开始配置,当出现“Serv,MySQL的启动和连接,一、查看并启动MySQL服务。,安装完MySQL后,它就已经自动启动服务了,并且在开始菜单中有其客户端的快捷方式连接,MySQL的启动和连接 一、查看并启动MySQL服务。,通过Windows的服务管理器查看。 “开始”“运行”,输入“services.msc”,回车。 弹出Windows的服务管理器,然后就可以看见服务名为“mysql”服务项,其右边标明“已启动”,通过Windows的服务管理器查看。,可以通过Windows的服务管理器查看。“开始”“运行”,输入“services.msc”,回车。弹出Windows的服务管理器,然后就可以看见服务名为“mysql”服务项,其右边标明“已启动”,可以通过Windows的服务管理器查看。,也可以通过“控制面板”中的“管理工具”,也可以通过“控制面板”中的“管理工具”,如果没有“已启动”字样,说明MySQL服务未启动,不能连接,会出现10061错误。,如果没有“已启动”字样,说明MySQL服务未启,然后输入“net start mysql”就启动mysql服务。停止mysql服务“net stop mysql” (注意,这里是输入的MySQL服务的名字。如果MySQL服务的名字是DB或其它名字,应该输入“net start DB”或其它名),启动MySQL服务,方法一: “开始”“运行”,输入“cmd”,回车弹出XP命令提示符界面。,然后输入“net start mysql,假如安装的时候取的服务名是mysql,那么起停数据库服务的命令是:D:net stop mysqlThe MySQL service is stopping.The MySQL service was stopped successfully.D:net start mysqlThe MySQL service is starting.The MySQL service was started successfully.,假如安装的时候取的服务名是mysql,那么起停,到windows的服务管理里手工起停。,启动MySQL服务,方法二:,当直接敲入mysql的时候遇到如下错误,说明数据库服务还未启动:D:mysqlERROR 2003 (HY000): Cant connect to MySQL server on localhost (10061),到windows的服务管理里手工起停。 启动MySQL,二、连接和退出MySQL,格式:mysql -h主机地址 -u用户名 -p用户密码,1、连接到本机上的MYSQL。 首先在打开DOS窗口,然后进入目录Crogram FilesMySQLMySQL Server 5.0bin(安装的时候如果已经把该目录设置到了环境变量PATH里, 不用进入该目录),再键入命令mysql -uroot p,回车后提示你输密码,输入密码直接回车即可进入到MYSQL中,MYSQL的提示符是: mysql,二、连接和退出MySQL 格式:mysql -h主机地址 -,MySQL数据库的操作java教案课件,Welcome to the MySQL monitor. Commands end with ; or g.Your MySQL connection id is 1 to server version: 5.1.45-ntType help; or h for help. Type c to mysql,这就说明连接MySQL成功,“mysql”说明已经成功联入MySQL服务器了,可以开始msql的操作,Welcome to the MySQL monitor.,2、连接到远程主机上的MYSQL。 假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。 则键入以下命令:D:mysql -h110.110.110.110 -uroot -pabcd123 注:u与root可以不用加空格,其它也一样。,2、连接到远程主机上的MYSQL。,3、退出MYSQL命令:D:exit(回车)或D:quit(回车)你也可以用control-D退出。,3、退出MYSQL命令:,三、修改用户密码直接修改user表的root用户口令:mysql use mysql;-用名叫mysql的库作当前库Database changedmysql update user set password=password(1234) where user=root;Query OK, 1 row affected (0.00 sec)Rows matched: 1 Changed: 1 Warnings: 0mysql flush privileges;Query OK, 0 rows affected (0.14 sec)注:flush privileges的意思是强制刷新内存授权表,否则用的还是缓冲中的口令。,三、修改用户密码,四、MYSQL 创建用户,第一方法,grant权限1,权限2,.权限non数据库名.表名to用户名identifiedby连接口令;,GRANT ALL PRIVILEGES ON test.student TO dysnwpu IDENTIFIED BY 123456 WITH GRANT OPTION;,grant select on test.SC to dys1 identified by abc;,例1:,例2:,四、MYSQL 创建用户第一方法 grant权限1,权限2,第二方法 create user,第二方法 create user,删除用户,删除用户,切换用户,切换用户,五、基本操作命令,注:如果你打命令时,回车后发现忘记加分号,你无须重打一遍命令,只要打个分号回车就可以了。也就是说你可以把一个完整的命令分成几行来打,完后用分号作结束标志就完成。可以使用光标上下键调出以前的命令。mysql命令的大小写结果是一致的。,五、基本操作命令 注:如果你打命令时,回车后发现,1、建库,1、建库,2、建表,CREATE TABLE Student (Sno CHAR(9) PRIMARY KEY,Sname CHAR(20) UNIQUE,Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(20) );,2、建表 *对数据库元素操作必须先打开数据库*CREATE,2、建表,CREATE TABLE Student (Sno CHAR(9) PRIMARY KEY,Sname CHAR(20) UNIQUE,Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(20) );,*对数据库元素操作必须先打开数据库*2、建表 CREATE,mysql show databases;,3、显示数据库列表:,mysql库很重要,它里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。,mysql show databases;3、显示数据库列,4、显示库中的数据表,mysql use mysql;,mysql show tables;,4、显示库中的数据表 mysql use mysql; m,4、显示库中的数据表,4、显示库中的数据表,5、显示数据表的结构:,mysql desc student;,5、显示数据表的结构:mysql desc student,原因:mysql数据库中没有student表,它存在于testdb库中,原因:mysql数据库中没有student表,它存在于tes,修改基本表,向Student表增加“入学时间”列,其数据类型为日期型。ALTER TABLE Student ADD S_entrance DATE; 不论基本表中原来是否已有数据,新增加的列一律为空值。,修改基本表 向Student表增加“入学时间”列,MySQL数据库的操作java教案课件,6、显示表中的记录,mysql select * from student;Empty set (0.00 sec),7、将表中记录清空,mysql delete from student;Query OK, 0 rows affected (0.00 sec),6、显示表中的记录 mysql select * from,8、删库和删表,mysql drop table student;Query OK, 0 rows affected (0.11 sec)mysql drop database test;Query OK, 0 rows affected (0.01 sec),8、删库和删表 mysql drop table stud,六、建库、建表、改表以及插入数据,INSERT INTO Student VALUES (20120101, 宁俊,男,20,IS, 2012-10-01); INSERT INTO Student VALUES (20120102, 张生岳,男,21,MA, 2012-10-01); INSERT INTO Student VALUES (20120103, 刘阿俊,男,19,IS, 2012-10-01);INSERT INTO Student VALUES (20120104, 岳春蕾,女,18,CS, 2012-10-01);INSERT INTO Student VALUES (20120105, 郭姗姗,女,19,IS, 2012-10-01);INSERT INTO Student VALUES (20120106,张珊珊,女,18,IS, 2012-10-01);INSERT INTO Student VALUES (20120107,臧珊,女,18,IS, 2012-10-01);INSERT INTO Student VALUES (20120108,田晓宇,女,18,MA, 2012-10-01);,INSERT INTO Student VALUES (20120101, 宁俊,男,20,IS, 2012-10-01);,六、建库、建表、改表以及插入数据 INSERT INTO,MySQL数据库的操作java教案课件,建立一个“课程”表Course,CREATE TABLE Course (Cno CHAR(4) PRIMARY KEY, Cname CHAR(40), Cpno CHAR(4), Ccredit SMALLINT);,建立一个“课程”表Course CREATE TABLE,INSERT INTO Course VALUES (1,数据库, 5,3);INSERT INTO Course VALUES(2,数学分析, ,4);INSERT INTO Course VALUES(3,信息系统, 1, 2);INSERT INTO Course VALUES(4,VF, 3, 3);INSERT INTO Course VALUES(5, JAVA, , 2);,INSERT INTO Course VALUES (1,MySQL数据库的操作java教案课件,CREATE TABLE SC(Sno CHAR(9), Cno CHAR(4),Grade SMALLINT, CONSTRAINT SC_ibfk_1 FOREIGN KEY (Sno) REFERENCES Student(Sno), CONSTRAINT SC_ibfk_2 FOREIGN KEY (Cno) REFERENCES Course(Cno) ENGINE = InnoDB DEFAULT CHARSET = latin1;,建立一个“选课”表SC,CREATE TABLE SC(Sno CHAR(9),建,MySQL数据库的操作java教案课件,1.两个表必须是 InnoDB表,MyISAM表暂时不支持外码;,2.外码列必须建立了索引,MySQL 4.1.2以后的版本在建立外码时会自动创建索引,3.外码关系的两个表的列必须是数据类型相似,也就是可以相互转换类型的列,比如int和tinyint可以,而int和char则不可以;,外码的好处:可以使得两张表关联,保证数据的一致性和实现一些级联操作;,1.两个表必须是 InnoDB表,MyISAM表暂时不支持外,外键的定义语法:CONSTRAINT symbol FOREIGN KEY id (index_col_name, .)REFERENCES tbl_name (index_col_name, .)ON DELETE RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULTON UPDATE RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT,外键的定义语法:,该语法可以在 CREATE TABLE 和 ALTER TABLE 时使用, 如果不指定CONSTRAINT symbol,MYSQL会自动生成一个名字。 ON DELETE、ON UPDATE表示事件触发限制,可设参数:RESTRICT(限制外表中的外键改动)CASCADE(跟随外键改动)SET NULL(设空值)SET DEFAULT(设默认值)NO ACTION(无动作,默认的),该语法可以在 CREATE TABLE 和 AL,INSERT INTO SC VALUES (20120101,2,55);INSERT INTO SC VALUES (20120101,1,75);INSERT INTO SC VALUES (20120102,3,85);INSERT INTO SC VALUES ( 20120102,1,45);INSERT INTO SC VALUES (20120102,4,75);INSERT INTO SC VALUES (20120103,5,95);INSERT INTO SC VALUES (20120103,2,95);INSERT INTO SC VALUES ( 20120104,2,75);INSERT INTO SC VALUES ( 20120104, 4,79);INSERT INTO SC VALUES ( 20120105,2,85);INSERT INTO SC VALUES ( 20120106,1,85);INSERT INTO SC VALUES ( 20120107,2,95);INSERT INTO SC VALUES ( 20120108,3,78); INSERT INTO SC VALUES ( 20120105,4,95); INSERT INTO SC VALUES ( 20120108,2,96);,INSERT INTO SC VALUES (20120,为学生-课程数据库中Student, Course, SC三个表建立索引。 CREATE UNIQUE INDEX Stusno ON Student(Sno);CREATE UNIQUE INDEX Coucno ON Course(Cno);CREATE UNIQUE INDEX SCno ON SC(Sno ASC, Cno DESC);,为学生-课程数据库中Student, Cour,单表查询,MySQL查询操作(举例),SELECT Sno, Sname, SsexFROM Student;,单表查询MySQL查询操作(举例)SELECT Sno,单表查询,MySQL查询操作(举例),SELECT Sname, 2014-SageFROM Student;,单表查询MySQL查询操作(举例)SELECT Sname,单表查询,MySQL查询操作(举例),SELECT Sno FROM SC;,SELECT DISTINCT Sno FROM SC;,单表查询MySQL查询操作(举例)SELECT Sno F,单表查询,MySQL查询操作(举例),SELECT Sno, SnameFROM StudentWHERE Sdept= CS;,单表查询MySQL查询操作(举例)SELECT Sno,单表查询,MySQL查询操作(举例),SELECT Sno, Sname, SsexFROM StudentWHERE Sage20;,单表查询MySQL查询操作(举例)SELECT Sno,单表查询,MySQL查询操作(举例),SELECT SnameFROM StudentWHERE Sdept= IS AND Sage20;,单表查询MySQL查询操作(举例)SELECT Sname,单表查询,MySQL查询操作(举例),SELECT Sno, GradeFROM SCWHERE Cno=3ORDER BY Grade DESC;,单表查询MySQL查询操作(举例)SELECT Sno,单表查询,MySQL查询操作(举例),SELECT COUNT(*)FROM Student;,SELECT MAX(Grade)FROM SCWHERE Cno=1;,单表查询MySQL查询操作(举例)SELECT COUNT,单表查询,MySQL查询操作(举例),SELECT Cno, COUNT(Sno)FROM SCGROUP BY Cno;,单表查询MySQL查询操作(举例)SELECT Cno,SELECT Sno FROM SC GROUP BY Sno HAVING COUNT(*) 2;,SELECT Sno FROM SC,SELECT Student.Sno, Sname, Ssex, Sage, Sdept, Cno, GradeFROM Student,SCWHERE Student.Sno=SC.Sno;,MySQL查询操作(连接查询),SELECT Student.Sno, Sname, Ss,MySQL数据库的操作java教案课件,SELECT Sno,Sname,SdeptFROM Student S1WHERE S1.Sdept IN (SELECT Sdept FROM Student S2 WHERE S2.Sname= 宁俊);,SELECT Sno,Sname,Sdept,MySQL数据库的操作java教案课件,SELECT Sno,Sname,SdeptFROM Student S1WHERE S1.Sdept = (SELECT Sdept FROM Student S2 WHERE S2.Sname= 宁俊);,或者,SELECT Sno,Sname,Sdept或者,SELECT Student.Sno,Sname FROM Student,SC,Course WHERE Student.Sno = SC.Sno AND SC.Cno = Course.Cno AND Course.Cname=数据库;,SELECT Student.Sno,Sname,SELECT DISTINCT student.Sno,Sn,对吗?为什么?,对吗?,SELECT DISTINCT student.Sno,Sname FROM SC,student WHERE Grade60 and student.Sno= SC.Sno;,SELECT DISTINCT student.Sno,Sn,SELECT Student.Sno,Sname,Cname,GradeFROM Student,SC,Course WHERE Student.Sno = SC.Sno and SC.Cno = Course.Cno;,SELECT Student.Sno,Sname,Cname,SELECT Sname FROM StudentWHERE EXISTS (SELECT * FROM SC WHERE Sno=Student.Sno AND Cno=1);,SELECT Sname FROM Student,SELECT Sname FROM StudentWHERE NOT EXISTS (SELECT * FROM SC WHERE Sno = Student.Sno AND Cno=1);,SELECT Sname FROM Student,视图操作,CREATE VIEW IS_S1(Sno,Sname,Grade) AS SELECT Student.Sno, Sname, Grade FROM Student,SC WHERE Sdept= IS AND Student.Sno=SC.Sno AND SC.Cno= 1;,视图操作CREATE VIEW IS_S1(Sno,Snam,基本表,基本表,视图,视图,UPDATE IS_S1 SET Sname= 程帅 WHERE Sno= 20120101;,修改视图前,修改视图,UPDATE IS_S1 SET Sname= 程帅,原始基本表,原始基本表,修改视图后,修改视图后,基本表也发生改变,基本表也发生改变,作业:将前面所有的例子依次做一遍,作业:,点“OK”后回到自定义安装界面,可看见路径已经改为你设置的路径,点“Next”,准备开始安装,第四章 MySQL的操作_安装,点“OK”后回到自定义安装界面,可看见路径已经改为你设置的路,切换用户,切换用户,2、建表,CREATE TABLE Student (Sno CHAR(9) PRIMARY KEY,Sname CHAR(20) UNIQUE,Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(20) );,2、建表 *对数据库元素操作必须先打开数据库*CREATE,5、显示数据表的结构:,mysql desc student;,5、显示数据表的结构:mysql desc student,为学生-课程数据库中Student, Course, SC三个表建立索引。 CREATE UNIQUE INDEX Stusno ON Student(Sno);CREATE UNIQUE INDEX Coucno ON Course(Cno);CREATE UNIQUE INDEX SCno ON SC(Sno ASC, Cno DESC);,为学生-课程数据库中Student, Cour,SELECT Sno FROM SC GROUP BY Sno HAVING COUNT(*) 2;,SELECT Sno FROM SC,视图操作,CREATE VIEW IS_S1(Sno,Sname,Grade) AS SELECT Student.Sno, Sname, Grade FROM Student,SC WHERE Sdept= IS AND Student.Sno=SC.Sno AND SC.Cno= 1;,视图操作CREATE VIEW IS_S1(Sno,Snam,