数据库介绍以及对Mysql数据库及表的操作


MySql
介绍
数据库介绍以及对Mysql数据库及表的操作
数据库简介
之前通过流操作文件的方式存储数据弊端:
1. 效率低
2. 不管是存还是取都比较麻烦
3. 一般只能存储小量数据
4. 只能存储文本数据

  • 什么是DB

DataBase:数据库
数据库是一个文件集

  • 什么是DBMS

DataBaseManagementSystem:数据库管理系统是管理数据库文件的软件

  • 数据库分类

 经过数学理论验证可以存储现实生活中各种关系的数据库,如果存储的数据之间有关系会在数据库中以表的形式把相关数据封装起来

   有多种存储数据的方式如Redis(非关系型数据库的一种)
   redis是通过Key-Value   

  1. 关系型数据库
  2. 非关系型数据库
  • 主流关系型数据库介绍

 系统:windows Linux 
    背景故事:08年被Sun 09年被Oracle收购 Oracle 开源 卖服务 
    发展:MySql5.5 使用了Oracle数据库的核心技术 性能提高30%,但因为影响了Oracle导致mysql面临闭源,MySql面临闭源后 一些大牛程序员从Orecle出来 创建了MariaDB数据库

  windows Linux Oracle公司 拉里艾莉森32 执行效率最高 性能最好 最贵 闭源

 IBM 大型数据库 Linux和unix操作系统 闭源 收费软件 

 微软公司 windows系统 市场排名第三  主要被.net(C#)开发的网站所使用

 轻量级数据库 ios android 或一些嵌入式设备上,很小只有几十k 

  1. MySql 
  2. Oracle 
  3. DB2 
  4. SQL Server
  5. Sqlite 

 
           Structured Query Language:结构化查询语言 

Sql是执行在客户端(windows在命令行下执行,linux在终端执行)下或者通过java代码执行在JDBC

打开客户端并登陆mysql

   linux下在任何位置直接打开终端即可
              windows下使用各种客户端打开
          登陆mysql命令 直接在终端下执行以下代码 然后输入密码

  • SQL

    mysql -uroot -p 
          退出:exit;  

  • SQL语句规范

1. 以;(分号)结尾
2. 关键字之间有空格 通常一个空格 但是有多个也没问题
3. sql语句中可以添加换行
4. SQL 不区分大小写

  • 数据库相关SQL

1. 查看所有数据库命令:
        
        show databases;
2. 创建数据库 通常一个项目只对应1个数据库
    格式:create database 数据库名称;
        
        create database db1;
    指定字符集的创建格式 :create database 数据库名称 CHARACTER SET utf8;
        
        create database db2 character set gbk;
3. 查看数据库详情
    -格式:show create database 数据库名称;
        
        show create database db1;
4. 删除数据库
    -格式:drop database 数据库名称;
        
        drop database db2;
5. 选中数据库
    
        use db2;

  • 表相关SQL

什么是表
  -表是数据库中的数据组成单位 类似于Java中的对象 
   表中的字段 对应对象中的属性
创建表的原理:
   在客户端中写完创建表的sql语句后客户端会把sql语句交给DBMS(MySql)DBMS解析后 会在数据库中创建语句中的表 和表中的字段

表的引擎
1. InnoDB:支持数据库的高级处理包括 事物 外键等 默认是innodb

2. Myisam:只支持数据的基本存储    创建表时指定表的字符集 和 引擎

和数据库相关:
1.创建数据库 create database db1;
              create database db1 character set gbk
2.查看所有库: show databases;
3.查看单独的库: show create database db1;
4.删除数据库: drop database db1;
5.使用数据库:use db1;
和表相关:
1. 创建表 
    create table t1 (id int, 
            name varchar(10));
    -制定引擎和字符集
    create table t1 (id int, 
            name varchar(10)) engine=innodb charset=utf8;
2.查看所有表 show tables;
3.查看表结构 desc t1;
4.查看表属性 show create table t1;

对表操作
1.创建表 create table student (id int,name varchar(10));
2.带引擎和字符集的创建 create table student (id int,name varchar(10)) engine=innodb(myisam) charset=gbk;
3.查看所有 show tables;
4.查看表属性 show create table student;
5.查看表结构 desc student;


和表相关sql:
1.创建表:create table t1 (id int) engine=innodb charset=utf8;
2.查看所有: show tables;
3.查看单个:desc t1;   show create table t1;
4.修改表名: rename table t1 to t2;
5.添加字段:alter table t2 add age int (first或after 字段名);
6.修改名和类型:alter table t2 change age fatherAge int;
7.修改类型和顺序:alter table t2 modify fatherAge varchar(20) (first或after 字段名);
8.修改属性:alter table t2 engine=myisam charset=utf8;
8.删除字段:alter table t2 drop age;
9.删除表: drop table t2; 

数据相关SQL
1.插入数据:
insert into student values(1,'lisi',2,3,2);
insert into student (id,name) values (1,'xm');
批量就是在values后面写多个小括号 通过, 分开 括号里面写值
2.查询数据:select * from student; 
select id,name from student;
3.修改数据: update student set age=18 where age=20;
4.删除:delete from student where age=18;    

  • eclipse SQL客户端

1.先准备mysql-connector-java-5.1.6.jar 
2.打开eclipse 打开window-》showView->Other找到DataSource Explorer 和 SQLResults 显示出来
3.在DataSourceExplorer里面的DatabaseConnections 上右键 点击 New
4.在弹出窗口中找到MySql
5.点击下拉选项旁边的加号 
6.在弹出页面中选中5.1  然后点击第二个选项卡(JarList) 点击clear All
7.点击AddJar 找到第一步下载的jar包
8.点击ok

9.在新页面中把URL:jdbc:mysql://localhost:3306/db1 最后的值修改为自己已存在数据库的名称
10.finish
11.在New MySQL(MySQL v.5.50)上右键点击 OpenSQLScrapbook 
12.在type中选择 mysql5.1 在name 选择唯一的值 在database中选择 唯一的值

**在此工具中不能操作数据库**

  • 乱码问题

1.数据库编码保证是utf8
2.表保证是utf8
3.windows的命令行默认编码为gbk 需要在命令行中先进入mysql执行 set names gbk; 

4.修改mysql默认数据库的编码格式
windows: 在开始菜单中找到所有程序找到mariaDB里面的my.ini 在里面添加 character-set-server=utf8 即可