Mysql数据库使用

数据库产品介绍

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();

mysql数据库的数据类型

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 表名;

数据表的增删改查(CRUD)

> 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中的函数

SQL语言中定义了部分的函数,可以帮助我们完成对查询结果的计算操作:
count 统计个数
sum函数:求和
avg函数:求平均值
max、min 求最大值和最小值
group by分组函数

MySQL 数据库的备份和恢复

备份命令:
在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下

你可能感兴趣的:(Mysql数据库使用)