Oracle数据库:Oracle公司提供的,商业的大型的数据库。收费的。
DB2数据库:IBM公司。商业的大型的数据库。收费的。
SQL Server 数据库:微软的,中型数据库,主要和微软的开发语言结合使用。收费的。
MySql数据库:早期瑞典公司开发,后期被sun公司收购,sun被Oracle收购。从6.0版本出现了收费的。
SqlLite:微型的数据。
1.命令行模式:
> net start mysql
> net stop mysql
注意:mysql的这个名字以在服务里的名字为准
2.windows服务界面启动:
win+R 启动 运行界面
输入:services.msc 启动服务
找到mysql服务并启动
命令行模式(进入mysql的bin目录下/配置环境变量path):
C:\Users\QuBo>mysql -u root -p
Enter password: ****
注意:所有数据库语句写完之后,最后需要一个分号结束。
查询数据库的语法:
> show databases; 查询所有数据库
查看当前数据库(的编码表)
> show create database 数据库名称;
注意:在数据库中,utf-8编码表的名称必须写成utf8.
创建数据库:
语法:create database 数据库名称 [character set 编码表名] ;
如果创建数据库的时候没有指定编码表,默认和安装数据库时设置的系统编码表一致。
删除数据库:
> drop database 数据库名;
修改数据库编码集:
> alter database 库名 character set 编码表名;
切换数据库:
> use 数据库名;
查询当前正在使用的数据库:
> select database();
Java中的数据类型 mysql数据库中的数据类型
byte
short
int int
long
char String char(数据长度) varchar(数据长度)
boolean bit 0 1
double double
float DECIMAL(数据总宽度,小数位数)和
NUMERIC(数据总宽度,小数位数)
date date time datetime
数据库中字符或字符串使用char varchar
char是定长
varchar是可变长度
char(5) “aa” aa在数据库中会占用5列
varchar(5) “aa” aa在数据库中仅占用2列
数据表的创建:
语法:create table 表名(
列名 列的类型 [列的约束],
列名 列的类型,
......
);
> create table employee(
id int,
name varchar(100),
sex varchar(10),
age int,
salary double,
job varchar(50)
);
查看数据表结构:
> show tables;
查看某个数据表的定义格式(编码表):
> show create table 表名
查看数据表的结构:
> desc 表名;
数据表表名的操作:
语法:alter table 表名 增/删/改 列名 类型(长度) 约束;
1、增加列:
alter table 表名 add 列名 类型(长度) 约束;
2、修改现有列类型、长度和约束:
alter table 表名 modify 列名 类型(长度) 约束;
3、修改现有列名称:
alter table 表名 change 旧列名 新列名 类型(长度) 约束;
4、删除现有列:
alter table 表名 drop 列名 ;
5、修改表名 :
rename table 旧表名 to 新表名;
6、修改表的字符集:
alter table 表名 character set utf8;
数据表删除:
> drop table 表名;
> insert into 表名(列名,列名...) values(值,值,.....);
> update 表名 set 列名=值 , 列名=值 [where 条件];
> delete from 表名 [where 条件]; //一条一条的删除
> truncate tabel 表名; //删除该表,并新建一个空表
> select * from 表名 [where 条件] ;
数据表的约束有三种:
主键约束、唯一约束、非空约束。
1、主键约束:primary key
2、唯一约束,unique
3、非空约束,not null
4、复合主键,即有多个字段构成主键,且不能够重复,重复指多个字段内容同时相同时才叫重复,
> create table test1
> ( id int ,name varchar(30),age int
> primary key (id,name));
5、foreign key (外键),外键对应主表是一对一,但主表对应外键是一对多
--①外键只能指向主键类型②外键与主键的数据类型要相同
6、check 约束字段的范围
> create table test2
> ( sex nvarchar(1) check(sex in ('男','女')) , --性别男或女
> sal int check(sal>=100 and sal<=1000)); --约束sal在100~1000之间
7、default (默认值)使用
> create table mes
> ( mesId int primary key identity(1,1), --identity,从1 开始 ,+1递增
> mesCon varchar(300) not null,
> mesDate datetime default getdate() --不赋值时,默认是发送的时间即 getdate()
> )
> insert into mes(mesCon,mesDate) values('你好')
语法一 :
查询数据库中的某张表的所有数据
语法:select * from 表名 [where 条件] ;
语法二 :
查询某张表中指定的列
语法:select 列名 , 列名 ..... from 表名 [where 条件];
语法三 :
查询表中年龄大于等于23岁的学生信息
语法:select * from person where age >=23;
条件运算符:
1)相等 或 不等
相等= 不等 <>
2) 区间
区间:between ...and... 在两者之间取值 between 70 and 80
等价于 >=70 and <=80 注意前面那个数要比后面那个数要小
sage >=24 and sage<=50 between 24 and 50
3)in(值,值,值) 在指定值中任取一个 in(70,80,90) 值可以是70、80或者90
where 列名 in (值,值,值.......);
where 列名=值 or 列名=值 or 列名=值 .......
4)like '模糊查询pattern' 进行模糊查询 ,表达式有两个占位符 % 任意字符串 _ 任意单个字符
name like '张%' 所有姓张学员 %张%
name like '张_' 所有姓张名字为两个字学员 _张_
5) is null 判断该列值为空 ,is not null 判断是否为不空
语法四 :
对查询的结果进行排序:使用order by 子句排序查询结果。
语法:select 列名 , 列名 ... from 表名 order by 列名 asc (升序)| desc(降序)
别名:
可以对查询出来的列名 起别名。
语法:select 列名 as 别名,列名 as 别名,列名 as 别名.... from 表名 where 条件;
SQL语言中定义了部分的函数,可以帮助我们完成对查询结果的计算操作:
count 统计个数
sum函数:求和
avg函数:求平均值
max、min 求最大值和最小值
group by分组函数
备份命令:
在mysql的安装目录的bin目录下有mysqldump命令,可以完成对数据库的备份。
由于mysqldump命令不是sql命令,需要在dos窗口下使用。
> mysqldump -u 用户名 -p 数据库名 > 磁盘SQL文件路径
> mysqldump -u root -p webdb > c:\weddb-copy.sql
在备份数据的时候,数据库不会被删除。可以手动删除数据库。同时在恢复数据的时候,不会自动的给我们创建数据库,仅仅只会恢复数据库中的表和表中的数据。
恢复命令:
恢复数据,需要手动的先创建数据库:
> create database mybd3; //在msyql命令下
> mysqldump -u root -p webdb < c:\weddb-copy.sql //在dos下