一、常见的几种数据库
MySql、SQL SERVER、Oracle、sybase、DB2等
MySql是一个快速的、多线程、多用户和健壮的SQL数据库服务器。MySql服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置的软件中去。
与其他数据库相比,MySql具有以下的优势:
l MySql是一个关系数据库管理系统。
l MySql是开源的
l MySql服务器是一个快速的、可靠的和易于使用的数据库服务器
l MySql服务器工作在客户、服务器或嵌入式系统中
l 有大量的MySql软件可以使用
我今天讲的MySql是在VMWARE虚拟机下基于linux操作系统的MySql
二、MySql服务开启与使用
1、开启mysql服务:
service mysql start
或者 /etc/init.d/mysql start
如果你需要在Linux系统启动时启动 MySQL 服务器,你需要在 /etc/rc.local 文件中添加以下命令:/etc/init.d/mysql start
2、检测服务是否开启:
netstat -tap | grep mysql
通过上述命令检查之后,如果看到有mysql 的socket处于 listen 状态则表示安装成功
3、客户端登陆服务器:
mysql -u 用户名 -p密码
以上命令执行后会输出 mysql>提示符,这说明你已经成功连接到Mysql服务器上,你可以在 mysql> 提示符执行SQL命令:
show databases; 显示当前的数据库
use 数据库名;(在当前的数据库里显示的数据库里找一个)
show tables;显示当前的数据库里的表
三、MySql的数据类型
1)整型:
2)浮点型
3)字符串
4)二进制数据
l BLOB和text存储方式不同,TEXT以文本方式存储,英文存储区分大小写,而_Blob是以二进制方式存储,不分大小写。
l BLOB存储的数据只能整体读出。
l TEXT可以指定字符集,BLOB不用指定字符集。
5)日期时间类型
6)数据类型的属性
四、MySql使用
1、登录到MySql
mysql -h 主机名 -u 用户名 -p
-h : 该命令用于指定客户端所要登录的MySQL主机名, 登录当前机器该参数可以省略;
-u : 所要登录的用户名;
-p : 告诉服务器将会使用一个密码来登录, 如果所要登录的用户名密码为空, 可以忽略此选项。
2、创建数据库
create database 数据库名 [其他选项];
如:create database my_db character set gbk;这个语句创建的是一个名为my_db的数据库,通过character set gbk 将数据库字符编码指定为中文字符。
3、创建表
create table 表名称(列声明);
如:以创建 students 表为例, 表中将存放 学号(id)、姓名(name)、性别(sex)、年龄(age)、联系电话(tel)
创建语句如下:
create table students
(
id int unsigned not null auto_increment primary key,//ID号是个无符号的整型,不能为空,能自动增加,把ID号设为了主键
name char(8) not null,//name的长度是8个字符,不能为空
sex char(4) not null,//性别是4个字符,不能为空
age tinyint unsigned not null,//年龄,1个字节无符号的整型,不能为空
tel char(13) null default "-"//电话号码,13个字符的字符,默认为‘—’
);
4、数据插入
使用的一般形式如下:insert [into] 表名 [(列名1, 列名2, 列名3, ...)] values (值1, 值2, 值3, ...);
例如, 要给 my_db 数据库中的 students 表插入一条记录, 执行语句:
insert into students values(NULL, "王刚", "男", 20, "13811371377");
按回车键确认后若提示 Query Ok, 1 row affected (0.05 sec) 表示数据插入成功。 若插入失败请检查是否已选择需要操作的数据库。
有时我们只需要插入部分数据, 或者不按照列的顺序进行插入, 可以使用这样的形式进行插入: insert into students (name, sex, age) values("孙丽华", "女", 21);
5、数据的查询
select 列名称 from 表名称 [查询条件];
例如要查询 students 表中所有学生的名字和年龄, 输入语句 select name, age from students;
也可以使用通配符 * 查询表中所有的内容, 语句: select * from students;
6、数据更新
update 表名称 set 列名称=新值 where 更新条件;
例如
将id为5的手机号改为默认的"-": update students set tel=default where id=5;
将所有人的年龄增加1: update students set age=age+1;
将手机号为 13288097888 的姓名改为 "张伟鹏", 年龄改为 19: update students set name="张伟鹏", age=19 where tel="13288097888";
7、数据删除
delete from 表名称 where 删除条件;
使用示例:
删除id为2的行: delete from students where id=2;
删除所有年龄小于21岁的数据: delete from students where age<20;
删除表中的所有数据: delete from students;
8、数据库表的修改
1) 添加列
基本形式: alter table 表名 add 列名 列数据类型 [after 插入位置];
示例:
在表的最后追加列 address: alter table students add address char(60);
在名为 age 的列后插入列 birthday: alter table students add birthday date after age;
2) 修改表
alter table 表名 change 列名称 列新名称 新数据类型;
示例:
将表 tel 列改名为 telphone: alter table students change tel telphone char(13) default "-";
将 name 列的数据类型改为 char(16): alter table students change name name char(16) not null;
3) 删除列
alter table 表名 drop 列名称;
示例: 删除 birthday 列: alter table students drop birthday;
4) 重命名表
alter table 表名 rename 新表名;
示例:
重命名 students 表为 workmates: alter table students rename workmates;
5) 删除整张表
drop table 表名;
示例: 删除 workmates 表: drop table workmates;
6) 删除整张数据库
drop database 数据库名;
示例: 删除 my_db 数据库: drop database my_db;