数据库 第一讲
数据库 mysql 关系型数据库管理系统
存储数据的管理系统
数据库分为关系型数据库和非关系型数据库
关系型数据库
mysql,SQL sever,Oracle(甲骨文),Sybase,DB2
mysql以前时属于瑞典的mysqlAB公司的,现在属于Oracle公司
关系型数据库:以表的形式保存在数据库中,数据保存在表中(库--表--数据)
关系型数据库可以通过SQL语句进行查询数据或者多表查询数据(增删改查)
特点:
1,体积小,速度快,支持多系统,使用c++语言编写开发
2,开源数据库,免费使用
3,web(网页)应用系统最主流的一个关系型数据库管理工具
4,mysql适用于大多数中小企业公司使用
5,支持事务处理
非关系型数据库:MongoDB,Redis 非关系型数据库
一般非关系型数据库用作中间件的比较多,也是关系型数据库中一部分功能,
数据会保存在一个大的仓库中,不会单独保存在某个表中
特点:
1,易于扩展
2,性能高
3,不支持事务处理
mysql数据库支持Windows环境安装和Linux环境安装
Linux 环境安装
mysql 客户端
mysql -server 服务端
rpm -qa|grep mysql 查看当前Linux系统是否已经安装了mysql的安装包
yum install mysql 在线安装mysql客户端
yum install mysql-server 在线安装mysql服务端
yum erase +包名 删除安装包
注意点:1,如果查询结果为空,说明当前Linux系统没有安装mysql
2,如果查询的结果显示mysql-libs....说明没有山粗干净,一般新的
Linux环境默认有mysql-libs....这个安装包
3,如果环境中有已经安装好的mysql,可以使用命令删除
service mysqld start 启动mysql服务
service mysqld restart 重启mysql服务
service mysqld stop 停止mysql服务
在mysql服务启动的情况下,才可以使用mysql数据库
mysql -u root -p 回车(没有设置密码时,连续2次回车),进入数据库
mysqladmin -u root password ‘123456’ 设置一个密码(在数据库外设置)
exit或者quit 退出mysql操作界面
密码保存在:vim/etc/my.cnf mysql配置文件(启动文件)
如果忘记密码,需要进入 /etc/my.cnf文件中,把skip-grant-tables 注释去掉
(作用时跳过登陆验证)#号表示注释,这一行代码不会运行,
show databases;显示所有的库(;表示sql语句),查看当前的mysql数据库中的哪些库
create database+库名;表示创建一个库
use + 库名;表示进入到库里面,进入一个库,才能对库里面的表进行操作;
drop database+库名;删除一个库
show tables;查看库中的所有表;
create table + 表名(字段名,数据类型,显示宽度,约束)
字段名:表格里的标题名
数据类型:mysql5.0以上版本,
1,一个汉字占多少个字符和编码格式有关,
UTF-8:一个汉字=3个字节,GBK:一个汉字=2个字节
int 整数 4个字节 -2‘31--2'31-1(最多保存10位数)
bigint 长整型 8个字节
float(m,d) 单精度浮点型 8位精度(4字节)m总个数 d小位数
double(m,d)双精度浮点型 16位精度(8字节) m总个数 d小位数
char 固定长度,最多255个字符 性能好
varchar 可变长度,最多65535个字符 性能不好
date 3字节 yyyy-mm-dd 日期值
time 3字节 hh:mm:ss 时间值
yyyy-mm-dd hh:mm:ss 混合日期和时间值
例如:创建一个学生表,表里面有:学号,姓名,年龄
create table student(id int(4),name char(12),age int(2));
约束:1,primary key 主键约束
特点:a,表里字段永远唯一;b,not null 不能为空
2,not null 非空约束
3,defult 默认值约束
4,auto_increment 自动增长 一般都是数字在表中,自动增长都放在主键约束的字段上
desc +表名;查看表结构emp?dept?
field:表字段;type:字符数据类型和显示长度;null:表字段是否为空;key:表示主键约束;default:是否有默认值;extra:自动增长·
insert into;1,插入数据,添加表数据
insert into+表名 values(字段1值,字段2值,字段3值) 1,插入所有字段数据,有几个字段就必须写几个字段的值,并且一一对应,字符段必须用单引号或者双引号引起来,只有整数数据不需要
insert into student values(1,'xiaowang',1912),(2,’大王‘,1993);
2, 插入部分字段数据
insert into +表名(需要新增的字段名)values(’xiaosan‘),(’xiaowu‘);
insert into student(name)values('xiaosan'),(’xiaowu‘);或者同时插入2个字段名数据
注意点:插入的字段名和对应的字段值必须一致
select 查询表数据from deprt?
select*from+表名;查看表中所有数据