1.MySQL的安装和操作
MySQL安装无需下载源文件,可以直接用apt-get命令进行安装:
apt-get update #更新软件源
apt-get install mysql-server #安装mysql
复制
#上述命令会安装以下包:
apparmor
mysql-client-5.7
mysql-common
mysql-server
mysql-server-5.7
mysql-server-core-5.7
复制
因此无需再安装mysql-client等。
安装过程会提示设置mysql root用户的密码,设置完成后等待自动安装
默认安装完成就启动了mysql。
启动和关闭mysql服务
service mysql start
service mysql stop
复制
检查是否安装成功:
netstat -tap | grep mysql
复制
检查之后,如果看到有mysql 的socket处于listen,状态则表示安装成功
登陆mysql数据库进入mysql shell界面:
mysql -u root -p
复制
输入安装过程中设置的root密码,即可登录mysql:
2.mysql的操作:
(1)显示数据库
mysql> show databases;
复制
MySql安装完毕自带一个数据库:mysql。mysql库非常重要,它里面有MySQL的系统信息,用户改密码和新增用户,实际上就是用这个库中的相关表进行操作。
2)进入mysql数据库并显示该数据库中的表
# 打开库,对每个库进行操作就要打开此库
mysql>use mysql;
# 命令行提示数据库切换到当前数据库
Database changed
# 显示该数据库中所有的表
mysql> show tables;
复制
(3)显示数据表的结构,命令格式:describe表名
mysql> describe user;
复制
(4) 显示表中的记录
#显示mysql库中user表中的记录。所有能对MySQL用户操作的用户都在此表中。
mysql>select*from user;
复制
(5)建库
CREATEDATABASE 用于创建数据库。
SQL语句格式:CREATE DATABASE 库名;
复制
# 例如:创建一个名字位aaa的库
mysql> create database aaa;
复制
(6) 建表
CREATETABLE 语句用于创建数据库中的表。
SQL语句格式:
CREATE TABLE 表名称
(
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,
….
);
复制
1. #在刚创建的aaa库中建立表person,表中有id(序号,自动增长),xm(姓名),xb(性别),csny(出身年月)四个字段
2. mysql>use aaa;
3. mysql> create table person (id int(3) auto_increment notnull primary key, namevarchar(10),sex varchar(10),date date);
4. # 可以用describe命令察看刚建立的表结构
5. mysql> describe person;
复制
(7) 增加记录
INSERT INTO 语句用于向表格中插入新的行。
SQL语句格式:
INSERT INTO 表名称 VALUES (值1, 值2,….);
INSERT INTO table_name (列1, 列2,…) VALUES (值1, 值2,….);
复制
1. # 例如:向person表中增加几条相关记录
2. mysql> insert into person values(null,'Mike','male','2020-01-01');
3. mysql> insert into person values(null,'Mary','female','2020-02-01');
4. # 因为在创建表时设置了id自增,因此无需插入id字段,用null代替即可
5. # 可用select命令来验证结果
6. mysql>select*from person;
复制
(8) 修改记录
Update 语句用于修改表中的数据。
SQL语句格式:
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值;
复制
1. # 例如:将Mike的出生年月改为2020-03-01
2. mysql> update person set csny='2020-03-01'where xm='Mike';
复制
(9) 删除记录
DELETE 语句用于删除表中的行。
SQL语句格式:
DELETE FROM 表名称 WHERE 列名称 = 值;
复制
1. # 例如:删除Mike的记录。
2. mysql>deletefrom person where xm='Mike';
复制
10) 删库和删表
DROP 语句用于删除表中的行。
SQL语句格式:
drop database 库名;
drop table 表名;
复制
1. # 例如,删除person表
2. mysql> drop table person;
3. # 例如,删除aaa库
4. mysql> drop database aaa;
复制
(11) 查看mysql版本
在mysql5.0中命令如下两种方式:
mysql> show variables like 'version';
mysql>select version();
复制
(12)退出mysql服务器
mysql>exit;
复制
或者
mysql> quit;
复制
3 MySQL数据库实例操作
Student学生表
Name | English | Math | Computer |
zhangsan | 69 | 86 | 77 |
lisi | 55 | 100 | 88 |
创建上述表格的sql语句为:
登陆MySQL(退出指令为exit;或quit;)(语句后有一个英文分号)
mysql -u root -p #mysql数据库root密码为hadoop
复制
创建数据库
create database test;
复制
使用数据库
use test;
create table student(name varchar(30)notnull,English tinyint unsignednotnull,Math tinyint unsignednotnull,Computer tinyint unsignednotnull);
复制
插入两条记录sql语句为:
insert into student values("zhangsan",69,86,77);
insert into student values("lisi",55,100,88);
复制
设计完后,用select语句输出所有的相关信息:
select*from student;
复制
查询zhangsan的Computer成绩:
select name ,Computerfrom student where name ="zhangsan";
复制
修改lisi的Math成绩,改为95.给出截图:
update student setMath=95where name="lisi";
select name ,Mathfrom student where name ="lisi";
复制
JAVA编程实现MySQL的操作:
添加数据:
Name | English | Math | Computer |
Scofield | 45 | 89 | 100 |
1. import java.sql.*;
2. public class mysql_test {
3.
4. /**
5. * @param args
6. */
7. //JDBC DRIVER and DB
8. static finalString DRIVER="com.mysql.jdbc.Driver";
9. static finalString DB="jdbc:mysql://localhost/test";
10. //Databaseauth
11. staticfinalString USER="root";
12. staticfinalString PASSWD="hadoop";
13.
14. publicstaticvoid main(String[] args){
15. //TODO Auto-generated method stub
16. Connection conn=null;
17. Statement stmt=null;
18. try{
19. //加载驱动程序
20. Class.forName(DRIVER);
21. System.out.println("Connecting to a selecteddatabase...");
22. //打开一个连接
23. conn=DriverManager.getConnection(DB, USER, PASSWD);
24. //执行一个查询
25. stmt=conn.createStatement();
26. String sql="insertinto student values('scofield',45,89,100)";
27. stmt.executeUpdate(sql);
28. System.out.println("Inserting records intothe table successfully!");
29. }catch(ClassNotFoundException e){
30. //TODO Auto-generated catch block
31. e.printStackTrace();
32. }catch(SQLException e){
33. //TODO Auto-generated catch block
34. e.printStackTrace();
35. }finally
36. {
37. if(stmt!=null)
38. try{
39. stmt.close();
40. }catch(SQLException e){
41. //TODO Auto-generated catch block
42. e.printStackTrace();
43. }
44. if(conn!=null)
45. try{
46. conn.close();
47. }catch(SQLException e){
48. //TODO Auto-generated catch block
49. e.printStackTrace();
50. }
51. }
52. }
53.}
复制
获取scofield的English成绩信息
1
. import java.sql.*;
2. public class mysql_query {
3.
4. /**
5. * @param args
6. */
7. //JDBC DRIVER and DB
8. static finalString DRIVER="com.mysql.jdbc.Driver";
9. static finalString DB="jdbc:mysql://localhost/test";
10.//Database auth
11.staticfinalString USER="root";
12.staticfinalString PASSWD="hadoop";
13.publicstaticvoid main(String[] args){
14. //TODO Auto-generated method stub
15. Connection conn=null;
16. Statement stmt=null;
17. ResultSet rs=null;
18. try{
19. //加载驱动程序
20. Class.forName(DRIVER);
21. System.out.println("Connecting to a selecteddatabase...");
22. //打开一个连接
23. conn=DriverManager.getConnection(DB, USER, PASSWD);
24. //执行一个查询
25. stmt=conn.createStatement();
26. String sql="selectname,English from student where name='scofield' ";
27. //获得结果集
28. rs=stmt.executeQuery(sql);
29. System.out.println("name"+"\t\t"+"English");
30. while(rs.next())
31. {
32. System.out.print(rs.getString(1)+"\t\t");
33. System.out.println(rs.getInt(2));
34. }
35. }catch(ClassNotFoundException e){
36. //TODO Auto-generated catch block
37. e.printStackTrace();
38. }catch(SQLException e){
39. //TODO Auto-generated catch block
40. e.printStackTrace();
41. }finally
42. {
43. if(rs!=null)
44. try{
45. rs.close();
46. }catch(SQLException e1){
47. //TODO Auto-generated catch block
48. e1.printStackTrace();
49. }
50. if(stmt!=null)
51. try{
52. stmt.close();
53. }catch(SQLException e){
54. //TODO Auto-generated catch block
55. e.printStackTrace();
56. }
57. if(conn!=null)
58. try{
59. conn.close();
60. }catch(SQLException e){
61. //TODO Auto-generated catch block
62. e.printStackTrace();
63. }
64. }
65.}
66.}
复制