1、了解提供数据库服务的软件有哪些
主流:Oracle sql-server mysql DB2
Postgresql Sybase access vf
商业软件:Oracle sql-server DB2
开源软件:mysql Postgresql
服务运行的平台:LINUX 、Windows
跨平台:Oracle DB2 mysql postgresql
既跨平台又开源的软件:mysql
2、数据库服务应用在哪里
购物网站、论坛、银行、证券公司、购票系统
网站论坛通常用mysql
国家机构等通常用Oracle
Mysql+web (LAMP: Linux apache mysql php LNMP:Nginx)
3、mysql软件有哪些优点
1)是一个开放源码的小型关系型数据库管理系统(100M左右、表表之间有联系,非关系型数据库-NoSQLogic)
2)跨平台,支持AIX FreeBSD HP-UX Linux Windows等多种操作系统
3)使用C和C++编写你,支持多种编译器,保证源代码的可移植性(make)
4)为多种编程语言提供API,支持Python Java Perl PHP等脚本语言
广泛应用在中小型的网站
4、搭建数据库服务器
rpm包: rpm �Civh xxx.rpm
yum �Cy install xxx 功能已经集成好
源码包:可以定制功能./configure 选项 make make install
在ip地址是192.168.1.1服务器上搭建数据库服务
软件包名: rpm �Civh mysql-server mysql
mysql-server :服务端
mysql客户端,提供命令工具
mysql-devel 用来开发mysql程序的文件
rpm -qi 软件包名 查看详细信息
启动服务:service mysqld start
进程名:mysqld
进程的所有者,所属组:mysql mysql (源码包安装时需要自己设置)
端口号:3306 netstat -naptul | grep :3306
传输协议:TCP
主配置文件:/etc/my.cnf
数据库目录:/var/lib/mysql
登录数据库服务器―>选择一个库―>选择一个表―>把数据插入到表里
登录数据库服务器:mysql 连接数据库的工具
whichmysql
rpm �Cqf/usr/bin/mysql
-h数据库的ip地址/名 -uroot -p密码
root是数据库的管理员,默认数据库管理员登录本机数据库服器不需要密码
mysql �Chlocalhost �Curoot = mysql
mysql 库名 登录到指定的库
SQL语句:结构化查询语言,以;结尾
selectuser() ; //查看当前登录数据库的用户 用户名@客户端地址
;分割sql语句 \c终止sql语句 \G换行
select查询所在库 use 数据库名切换库
select databases();显示当前所在库
show databases;查看服务器已有的库
show tables 显示所在库,已有的表
select * from user\G 换行显示表里的所有记录
select * fromuser 不换行显示表里的所有记录
select user,host from mysql 只显示表中user字段和host字段的记录
information_schema:虚拟库,存放的数据不占用物理磁盘空间,存放在当前的物理内存,保存已有库和表的信息,以及数据库运行的参数信息。
useinformation_schema 可以不以;结尾
mysql:授权库,保存用户的授权信息,存储的数据占用物理磁盘空间,当客户端登录数据库服务器时,使用此库表里的记录验证用户登录默认数据库管理员只能在数据库服务器本机登录,且没有密码,很重要,工作中要备份
test:公共库,默认是一个空库,可以连接到数据库的用户对此库拥有完全权限
数据库服务器上的库以文件夹的形式存放在数据库目录下,文件夹名与数据库名同名;表以文件的形式存放在自己所在的数据库对应的文件夹里,文件名与表名相同,默认情况下mysql会把一个表的数据用三个文件来保存
use test; //选择test库
showtables; //查看当前所在库下的已有的表,每个表占一行
select * from 表名; //查看指定表中的所有记录 ,\G换行显示
5、数据库管理
create database 数据库名; 创建数据库,所有者和所属组为mysql
数据库名的命名规则:数字、字母、下划线,区分大小写,不能用纯数字,具有唯一 性,不能用SQL的关键字,不能用特殊字符,要有标识性
在/var/lib/mysql目录中创建一个目录,也是创建了数据库,权限是root,默认不 能建表
show databases; //显示数据库
drop database 数据库名; //删除数据库
use 数据库名; //切换数据库
6、表管理
create table 表名( // 在当前库中创建表
<字段名 字段类型>[(宽度)约束条件],
<字段名 字段类型>[(宽度)约束条件],
<字段名 字段类型>[(宽度)约束条件],
…
);
create table 数据库名.表名( //在指定库创建表
<字段名 字段类型>[(宽度) 约束条件],
<字段名 字段类型>[(宽度) 约束条件],
…
);
describe 表名; //查看表结构,表在当前库
describe 数据库名.表名
insert into 数据库名.表名(字段名1,字段名2,字段名n) values //插入记录
(字段名1的值,字段名2的值,字段名n的值),
(字段名1的值,字段名2的值,字段名n的值),
(字段名1的值,字段名2的值,字段名n的值);
//顺序项表中插入值时,可省略字段名,字符型的字段用双引号
delete from 【表】
select * from 表名; //查看表记录
select now(); //查看系统时间
select month(now()); //查看月份
select 字段名 from 表名; //查看指定字段
mysql的数据类型
1)数值类型(年龄、体重、身高、工资):
整数型(小整数tinyint 大整数smallint 极大整数bigint)
浮点型(单精度float(n,m) n表示数字总位数,m表示小数位个数
双精度 double(n,m) )
小整形默认为有符号的、宽度4,unsigned指定无符号、宽度默认3
数值类型的宽度为显示宽度,不够显示宽度时,默认用空格补位,zerofull用0补位,设置宽度的目的视为了节省内存空间
2)字符串类型(名字、家庭住址):
定长char: 0-255字节,当小于指定宽度时,用空格补齐
变长varchar:0-65535字节,当小于指定宽度时,根据实际长度占用空间。L+D,节省空间,开销大
3)日期时间类型(生日、出生年份、注册时间):
年year 1个字节 范围1901-2155 用两位给year赋值时,1-69用20补齐,70-99用19补齐
日期date 4个字节 范围0001-01-01 9999-12-31 YYYY-MM-DD
小时time 3个字节 格式HH:MM:SS
日期时间datetime 8个字节,范围1000-01-01 00:00:00 9999-12-31 00:00:00 timestamp 4个字节范围1970-01-01 00:00:00 2073-12-31 00:00:00 不赋值时,默认用系统当前时间赋值
mysql内置的时间函数
now() 获取开始执行函数时的系统时间
sysdate() 执行时动态获得系统时间
sleep(N) 休眠N秒
curtime() 获取系统当前时间
curdate() 获取系统当前日期
month() 获取指定时间中的月份
date() 获取指定时间中的日期
time() 获取指定时间中的时间
year() 获取指定时间中的年份
4)枚举类型(性别、爱好,专业):字段的值只能在列举的范围内选择
单选 enum(“值1”,”值2”,”值n”) 赋值时可用序号
多选 set(“值1”,”值2”,”值n”)
约束条件:
Null:默认可以为空, not null 不允许为空
Key:索引字段
Default:默认情况下为NULL, default 设置默认值
Extra:额外设置
修改表结构(desc 表名)
修改表结构会影响表中已有记录,因此要在插入表记录之前修改表结构,若已有记录,在修改前先备份。
1、alter table 数据库名.表名 处理动作; //修改表结构
处理动作:
添加新字段 add add 字段名 字段类型(宽度) 约束条件 after 字段名,
add 字段名 字段类型(宽度) 约束条件,
add 字段名 字段类型(宽度) 约束条件;
1)默认新添加的字段在已有字段的下方
2)first 把新字段添加在已有字段的首位
3)after 字段名 把新加字段放在指定字段前
删除字段 drop drop 字段名,
drop 字段名;
修改字段类型 modify modify 字段名 新字段类型(宽度) 约束条件,
modify 字段名 新字段类型(宽度) 约束条件,
modify 字段名 新字段类型(宽度) 约束条件;
***把不改变的原样写上。
修改字段名change change 原字段名 新字段名 字段类型(宽度) 约束条件,
change 原字段名 新字段名 字段类型(宽度) 约束条件,
change 原字段名 新字段名 字段类型(宽度) 约束条件;
//当把类型(宽度)约束条件 是新的设置的时候,就一起把字段类型和约束条件也修改了