001-SE-0017-数据库

MYSQL :开源免费的数据库,小型的数据库.已经被Oracle收购了.MySQL6.x版本也开始收费。

Oracle :收费的大型数据库,Oracle公司的产品。Oracle收购SUN公司,收购MYSQL

DB2 IBM公司的数据库产品,收费的。常应用在银行系统中.

SQLServerMicroSoft 公司收费的中型的数据库。C#.net等语言常使用。

SyBase :已经淡出历史舞台。提供了一个非常专业数据建模的工具PowerDesigner

SQLite : 嵌入式的小型数据库,应用在手机端。

Java相关的数据库:MySQLOracle


数据库与数据库管理系统的关系


SQL语言

数据定义语言:DDL(Data Definition Language)

    用来定义数据库对象:数据库,表,列等。

    关键字:create,alter,drop等

数据操作语言:DML(Data Manipulation Language)

    用来对数据库中表的记录进行更新。

    关键字:insert,delete,update等

数据控制语言:DCL(Data Control Language)

    用来定义数据库的访问权限和安全级别,及创建用户。

数据查询语言:DQL(Data Query Language)

    用来查询数据库中表的记录。

    关键字:select等


java中数据类型对应MySQL中的数据类型

Java数据类型

简写数据类型

标准SQL数据类型
(PS:
对于不同的DB可能有所差异)

bytejava.lang.Byte

byte

TINYINT

shortjava.lang.Short

short

SMALLINT

intjava.lang.Integer

integer

INGEGER

longjava.lang.Long

long

BIGINT

floatjava.lang.Float

float

FLOAT

doublejava.lang.Double

double

DOUBLE

java.math.BigDecimal

big_decimal

NUMERIC

charjava.lang.Character

character

CHAR(1)

booleanjava.lang.Boolean

boolean

BIT

java.lang.String

string

VARCHAR

booleanjava.lang.Boolean

yes_no

CHAR(1)(‘Y’‘N’)

booleanjava.lang.Boolean

true_false

CHAR(1)(‘Y’‘N’)

java.util.Datejava.sql.Date

date

DATE(日期类型,格式为yyyy-MM-dd,只有年月日,没有时分秒)

java.util.Datejava.sql.Time

time

TIME

java.util.Datejava.sql.Timestamp

timestamp

TIMESTAMP

java.util.Calendar

calendar

TIMESTAMP

java.util.Calendar

calendar_date

DATE

byte[]

binary

VARBINARYBLOB

java.lang.String

text

CLOB

java.io.Serializable

serializable

VARBINARYBLOB

java.sql.Clob

clob

CLOB

java.sql.Blob

blob

BLOB

java.lang.Class

class

VARCHAR

java.util.Locale

locale

VARCHAR

java.util.TimeZone

timezone

VARCHAR

java.util.Currency

currency

VARCHAR


havingwhere的区别:

    having是在分组后对数据进行过滤,where是在分组前对数据进行过滤

    having后面可以使用分组函数(统计函数),where后面不可以使用分组函数。


DOS操作数据乱码解决

乱码原因:   

    因为mysql的客户端编码的问题我们的是utf8,而系统的cmd窗口编码是gbk

解决方案

    临时修改mysql客户端编码

                         set character_set_results=gbk; / set names gbk;

    永久修改

       1.在mysql安装目录下有my.ini文件

                  2.default-character-set=gbk 客户端编码设置

                  3.character-set-server=utf8 服务器端编码设置

      4.重启服务

    查看所有mysql编码

      show variables like 'character%'; 

       

      client connetion result 和客户端相关

      database server system 和服务器端相关


SQL Select语句执行顺序

    * from子句组装来自不同数据源的数据
    * where子句基于指定的条件对记录进行筛选
    * group by子句将数据划分为多个分组
    * 使用聚集函数进行计算
    * 使用having子句筛选分组
    * 计算所有的表达式
    * 使用order by对结果集进行排序
    * select集合输出

数据复制

    -- 同一个服务器上,同一个数据库中,复制表tb_src中的数据到tb_dest表(tb_dest表不存在,需要新建)
create table tb_dest select * from tb_src where ...;


-- 同一个服务器上,同一个数据库中,复制表tb_src中的数据到tb_dest表(tb_dest表存在,不需要新建)
insert into tb_dest select * from tb_src where ...;


-- 同一个服务器上,不同数据库中,复制数据库db1上的表tb_src中的数据到db2上的表tb_dest表(tb_dest表不存在,需要新建)
create table db1.tb_dest select * from db2.tb_src where ...;


-- 同一个服务器上,不同数据库中,复制表db1上的表tb_src中的数据到db2上的表tb_dest表(tb_dest表存在,不需要新建)

insert into db1.tb_dest select * from db2.tb_src where ...;


命令行执行sql文件

    1.登录mysql
    2.使用如下命令执行服务器上/tmp下的tb_user.sql

mysql> \. /tmp/tb_user.sql

备份数据库

mysql命令行备份数据库
MySQL数据库使用命令行备份|MySQL数据库备份命令

例如:
数据库地址:127.0.0.1
数据库用户名:root
数据库密码:pass
数据库名称:myweb 


备份数据库到D盘根目录
mysqldump -h127.0.0.1 -uroot -ppass myweb > d:/backupfile.sql
 
备份到当前目录 备份的sql文件中包含删除表的sql语句,使用该备份文件恢复时能够让该备份覆盖已有数据库而不需要手动删除原有数据库
mysqldump --add-drop-table -h127.0.0.1 -uroot -ppass myweb > backupfile.sql 

直接将MySQL数据库压缩备份  备份到D盘跟目录
mysqldump -h127.0.0.1 -uroot -ppass myweb | gzip > d:/backupfile.sql.gz
 
备份MySQL数据库某个(些)表。此例备份table1表和table2表。备份到linux主机的/home下
mysqldump -h127.0.0.1 -uroot -ppass myweb table1 table2 > /home/backupfile.sql
 
同时备份多个MySQL数据库
mysqldump -h127.0.0.1 -uroot -ppass --databases myweb myweb2 > multibackupfile.sql
 
仅仅备份数据库结构。同时备份名为myweb数据库和名为myweb2数据库
mysqldump --no-data -h127.0.0.1 -uroot -ppass --databases myweb myweb2 > structurebackupfile.sql
 
备份服务器上所有数据库
mysqldump --all-databases -h127.0.0.1 -uroot -ppass > allbackupfile.sql
 
还原MySQL数据库的命令。还原当前备份名为backupfile.sql的数据库
mysql -h127.0.0.1 -uroot -ppass myweb < backupfile.sql

还原压缩的MySQL数据库
gunzip < backupfile.sql.gz | mysql -h127.0.0.1 -uroot -ppass myweb
 
将数据库转移到新服务器。此例为将本地数据库myweb复制到远程数据库名为serweb中,其中远程数据库必须有名为serweb的数据库
mysqldump -h127.0.0.1 -uroot -ppass myweb | mysql --host=***.***.***.*** -u数据库用户名 -p数据库密码 -C serweb
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值