MySQL介绍
-
MySQL AB是由MySQL的创始人和主要开发人创办的公司,瑞典
-
MySQL—>SunàOracle,现在属于oracle公司
-
MySQL数据库特点:
-
开源
-
免费
-
跨平台(windows/linux/unix/苹果)
-
处理并发性很好(理论上支持13000多个并发),安全稳定
-
轻巧,不耗资源,安装文件只有几十M,而且对CPU、内存要求不高
MySQL安装和配置
-
一般来讲,一台机器装一个MySQL就可以了
-
安装和配置见文档MySQL安装图解
数据库服务器、数据库和表的关系如图:
MySQL使用
-
使用命令行窗口连接MySQL数据库
基本语法:在dos下输入:mysql –u 用户名–p密码
特别说明:-p后面的密码不要留空格!
使用该命令的时候需要配置一下环境变量。
-
MySQL数据库也提供图形化界面来登录MySQL数据库
-
如何在MySQL中创建数据库
基本语法
create database数据库名
-
创建一个名称为mydb1的数据库
createdatabase mydb1
-
创建一个使用utf-8字符集的mydb2数据库
create database mydb2character set utf8
-
创建一个使用utf-8字符集,并带校对规则的mydb3数据库
create database mydb3character set utf8 collate utf8_general_ci
4.MySQL中的一些常用指令
-
显示数据库:
show databases;
-
查看创建数据库的定义信息
show create database数据库名;
-
删除数据库:
drop database数据库名
-
如何指定使用某个数据库
use数据库名
-
如何备份和恢复数据库
备份:
mysqldump –u用户名–p密码 数据库名 >存放路径
(该指令需要在dos控制台下直接执行)
恢复:
-
创建一个数据库:mydb2,(但是这个数据库目前是空的)
-
use 数据库名
-
source 文件名.sql(在mysql控制台执行)
-
创建表(基本语句)
基本语法:
Createtable 表名(
列名列的数据类型,
列名列的数据类型,
列名列的数据类型,
…
)characterset 字符集 collate校对规则
案例:
创建一张用户表
Createtable users(
Id int,
Name varchar(64),
Pwd varchar(64),
Birthday date
)
MySQL数据类型
-
数值型
-
Bit(m) m默认为1,最大为64。
案例:
Createtable test1(id bit(1));
-
TinyInt[unsigned]
如果是有符号,则表示范围:-128~127,
如果是无符号0~255;用一个字节存储;
案例:
Createtable test3(num tinyint);---(-128~127)
Createtable test4(num tinyint unsigned);---(0~255)
-
SmallInt[unsigned]用2个字节存储
因此它的范围是
有符号:-2^15~2^15-1
无符号:0~2^16-1
…这里给出参考文档中的总结:
TINYINT[(M)] [UNSIGNED] [ZEROFILL]
一个很小的整数,1个字节存储。有符号的范围是-128到127,无符号的范围是0到255。
SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
一个小整数,2个字节存储。有符号的范围是-32768到32767,无符号的范围是0到65535。
MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
一个中等大小整数,3个字节存储。有符号的范围是-8388608到8388607,无符号的范围是0到16777215。
INT[(M)] [UNSIGNED] [ZEROFILL]
一个正常大小整数,4个字节存储。有符号的范围是-2147483648到2147483647,无符号的范围是0到4294967295。
INTEGER[(M)] [UNSIGNED] [ZEROFILL]
BIGINT[(M)] [UNSIGNED] [ZEROFILL]
一个大整数,8个字节存储。有符号的范围是-9223372036854775808到9223372036854775807,无符号的范围是0到18446744073709551615。
-
Float[(M,D)][unsigned],四个字节存储,定长。
M代表有效位,D代表小数点后有几位。
案例:
Create table test5(num float);
Create table test6(numfloat(5,1));
-
Double,8个字节存储
用法与float类似,只是表示的范围更大了,都是定长。
-
Decimal(M,D)
-
Numeric(M,D)
用于表示小数,或者整数
Create table test7 (num numeric);
什么都不写表示默认存的是整数。看下图:
这样就可以表示有效位为5,小数点有2位的数。
-
文本、二进制类型
一览图:
常用的:
-
Char(m)
M范围是0~255,定长
Char(20),如果你存放了‘abc’字串,实际在表中是这样的‘abc 17个空格…’
Createtable test10(name char(10));
☞mysql自带的客户端默认支持utf8码,所以我们在添加中文的时候,需要设置一下,让Client支持GBK
-
show variables like ‘char%’;//显示关于字符的设置参数
-
set character_set_client=gbk;//可以存中文
-
set character_set_results=gbk;//可以显示中文
-
Varchar(m)
m表示大小,范围0~65535,变长。
varchar(20),如果你存放了‘abc’字串,实际在表中就是‘abc‘;
建议:如果表的某列长度固定,比如产品编号,或者是学号…而且是在255之内,我们应当使用char,如果长度不能取得,或者长度大于255小于65535,则使用varchar。
-
Text
该类型可以存放更大的字串。
-
日期类型
-
Date
日期(年,月,日)
Createtable test10(birthday date);
对于date,只保存年-月-日
-
Datetime
Createtable test11(hiredate datetime);
Datetime保存年-月-日时:分:秒
-
Timestamp
邮戳:该类型可以保存年-月-日时:分:秒
它与datetime最大的区别是,当你update某条记录的时候,该列值会自动更新。
Createtable test12 (name varchar(64),salary float,hiredate timestamp,hiredate2datetime);
建议:如果不知道该不该用timestamp,就不要用!
MySQL修改表结构
-
--添加新的列
Altertable 表名 add列名数据类型
-
--修改列(列的类型和大小)
Altertable 表名 modify列名新的数据类型
-
--删除某列
Altertable 表名 drop列名