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   LNMPNginx)

3mysql软件有哪些优点

     1)是一个开放源码的小型关系型数据库管理系统(100M左右、表表之间有联系,非关系型数据库-NoSQLogic

     2)跨平台,支持AIX FreeBSD  HP-UX  Linux Windows等多种操作系统

     3)使用CC++编写你,支持多种编译器,保证源代码的可移植性(make

     4)为多种编程语言提供API,支持Python Java  Perl   PHP等脚本语言

  广泛应用在中小型的网站

4、搭建数据库服务器

     rpm包: rpm –ivh  xxx.rpm  

yum  –y install  xxx   功能已经集成好

     源码包:可以定制功能./configure 选项      make    make  install

     ip地址是192.168.1.1服务器上搭建数据库服务

     软件包名: rpm –ivh 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 –qf/usr/bin/mysql

-h数据库的ip地址/ -uroot  -p密码

root是数据库的管理员,默认数据库管理员登录本机数据库服器不需要密码

mysql  –hlocalhost –uroot  = mysql

mysql 库名  登录到指定的库

 

SQL语句:结构化查询语言,以;结尾

selectuser() ; //查看当前登录数据库的用户  用户名@客户端地址

;分割sql语句   \c终止sql语句  \G换行

         select查询所在库    use 数据库名切换库

         select databases();显示当前所在库

         show databases查看服务器已有的库

         show tables     显示所在库,已有的表

         select * from user\G 换行显示表里的所有记录

         select * fromuser  不换行显示表里的所有记录

         select userhost 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)

    小×××默认为有符号的、宽度4unsigned指定无符号、宽度默认3

  数值类型的宽度为显示宽度,不够显示宽度时,默认用空格补位,zerofull0补位,设置宽度的目的视为了节省内存空间

 

     

 

2字符串类型(名字、家庭住址):

定长char 0-255字节,当小于指定宽度时,用空格补齐

变长varchar0-65535字节,当小于指定宽度时,根据实际长度占用空间。L+D,节省空间,开销大

3日期时间类型(生日、出生年份、注册时间):

year  1个字节 范围1901-2155  用两位给year赋值时,1-6920补齐,70-9919补齐

日期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 表名)

修改表结构会影响表中已有记录,因此要在插入表记录之前修改表结构,若已有记录,在修改前先备份。

1alter  table  数据库名.表名  处理动作;   //修改表结构

处理动作:

添加新字段 add  add  字段名 字段类型(宽度约束条件 after 字段名,

                   add  字段名  字段类型(宽度约束条件,

                  add  字段名  字段类型(宽度约束条件;

1)默认新添加的字段在已有字段的下方

2first 把新字段添加在已有字段的首位

3after  字段名  把新加字段放在指定字段前

        删除字段 drop   drop  字段名,

drop  字段名;

        修改字段类型   modify    modify  字段名 新字段类型(宽度约束条件,

 modify  字段名 新字段类型(宽度约束条件,

modify  字段名  新字段类型(宽度约束条件;

***把不改变的原样写上。

修改字段名change  change 原字段名 新字段名 字段类型(宽度) 约束条件,

change 原字段名 新字段名 字段类型(宽度) 约束条件,

change 原字段名 新字段名 字段类型(宽度) 约束条件;

//当把类型(宽度)约束条件 是新的设置的时候,就一起把字段类型和约束条件也修改了