Mysql数据库

本文介绍了MySQL数据库管理系统的特点,包括开源性、支持大型数据库、多语言支持等。详细讲解了MySQL的基本概念,如表头、列、行、值、键等,并提供了数据库的开启、使用、用户管理及常用操作命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介:

  MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。  MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
Mysql是开源的,所以你不需要支付额外的费用。
Mysql支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
MySQL使用标准的SQL数据语言形式。
Mysql可以允许于多个系统上,并且支持多种语言。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。
Mysql对PHP有很好的支持,PHP是目前最流行的Web开发语言。
MySQL支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为8TB。
Mysql是可以定制的,采用了GPL协议,你可以修改源码来开发自己的Mysql系统。
 

MySQL 为关系型数据库(Relational Database Management System), 这种所谓的"关系型"可以理解为"表格"的概念, 一个关系型数据库由一个或数个表格组成, 如图所示的一个表格:

 
表头(header): 每一列的名称;
列(row): 具有相同数据类型的数据的集合;
行(col): 每一行用来描述某个人/物的具体信息;
值(value): 行的具体信息, 每个值必须与该列的数据类型相同;
键(key): 表中用来识别某个特定的人/物的方法, 键的值在当前列中具有唯一性。

数据库的开启和使用:

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; 
显示当前的数据库


MYSQL:终端命令

注释 -- 注释
-- 创建用户
create user "name"@"localhost" identified by "passward";
-- 修改用户的密码
set password for "name"@"localhost" =password("name");
-- 对于用户授权操作
grant update,insert,select,create on *.* to "name"@"localhost";
-- 登录数据库
mysql -u name -p
-- 查看数据库,显示所有数据库
show databases;
-- 创建数据库
create database xxxx;
-- 删除数据库
drop database xxxx;


-- 使用数据库,下面若不特殊说明就是使用这个数据库
use mysql;
-- 查看表,显示所有的表
show tables;
-- 创建一张表
create table student(
id int unsigned not null primary key auto_increment,-- 自动递增 键值唯一
name varchar(10) not null,
age tinyint not null,-- 表示此列不能为空
)charset utf8;-- 支持中文
-- 查看表的结构
describe student;
-- 修改表的结构
alter table student add birthday date;-- 日期型变量
alter table student add tel char(11) default "-";-- 增加列若错误用"-"填充
alter table student drop id;-- 删除列
alter table student add id int unsigned not null auto_increment primary key first;-- 插入名为id无标志整形键值的一列,并且插为第一列
alter table student rename stu;-- 重命名表名为stu
-- 插入数据
insert into student (id,name,age,birthday,tel)values(1,"",20,"1998-1-1","12323164231");
insert into student (name,age,birthday)values ("name",22,"1996-1-10");
insert into student values(3, "王五", 22, "1997-1-1", "12345678900"),
(4, "aa", 23, "1996-1-1", "12345678901");
-- 删除表
drop table student;
查询数据
select *from student;
select name from student where age >=20;
-- 修改数据
update student set tel ="  " where id =2;
-- 删除数据
delete from student where id =3;




创建一个银行账户数据库
create table my_account(
num char(16) not null unique,
name varchar(8) not null,
money decimal(10,2) default 0.00
)charset utf8;
-- 插入数据
insert into my_account values("0……01","张三",1000.00),
("0……02","李四",2000.00);
-- 修改数据
alter table my_account add id int unsigned primary key auto_increment first;
-- 转账操作,若中途出现意外情况会导致转账失败
update my_account set money=money-1000 where id=0;-- 扣除1000元
-- 事务操作
-- 开启事务
start transaction;
-- 转账操作
update my_account set money=money -1000 where id =2;
update my_account set money=money +1000 where id =1;
-- 提交结果
commit;
-- 回滚到初始状态
rollback;
-- 设置回滚点
savepoint sp1;-- sp1回滚点名字
-- 回滚到回滚点

rollback to sp1;

MYSQL的数据类型:


int()-- 括号里面用于设置显示的位数

tinyint()

smallint()

mediumint()

bigint()

浮点型:

float(m,d)-- m显示的整数位数 d显示的小数位数

double(m,d)

定点数: 

decimal(m,d)

字符串:



char和varchar:
1.char(n) 若存入字符数小于n,则以空格补于其后,查询之时再将空格去掉。所以char类型存储的字符串末尾不能有空格,varchar不限于此。 
2.char(n) 固定长度,char(4)不管是存入几个字符,都将占用4个字节,varchar是存入的实际字符数+1个字节(n<=255)或2个字节(n>255),所以varchar(4),存入3个字符将占用4个字节。 
3.char类型的字符串检索速度要比varchar类型的快。
 
varchar和text: 
1.varchar可指定n,text不能指定,内部存储varchar是存入的实际字符数+1个字节(n<=255)或2个字节(n>255),text是实际字符数+2个字节。 
2.text类型不能有默认值。 

3.varchar可直接创建索引,text创建索引要指定前多少个字符。varchar查询速度快于text,在都创建索引的情况下,text的索引似乎不起作用

二进制数据:

1.BLOB和text存储方式不同,TEXT以文本方式存储,英文存储区分大小写,而_Blob是以二进制方式存储,不分大小写。 
2.BLOB存储的数据只能整体读出。 

3.TEXT可以指定字符集,BLOB不用指定字符集。

日期类型:

date "2018-5-6"

time "15:25:26"

datetime 

timestamp 自动存储记录修改时间



若定义一个字段为timestamp,这个字段里的时间数据会随其他字段修改的时候自动刷新,所以这个数据类型的字段可以存放这条记录最后被修改的时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值