命令格式:mysql -h hostname -u username -p
语法说明如下:
· mysql为登录命令名,存放在 MySQL的安装目录下。
· -h表示后面的参数hostname为服务器的主机地址,当客户端与服务器在同一台机器上时,hostname可以使用localhost或127.0.0.1。
· -u表示后面的参数username为登录MySQL服务的用户名。
· -p则表示后面要输入的参数为指定用户的密码。
show character set;
常用的字符集有:latin1、utf8、gb2312和gbk。
(1) latin1:是系统启动时默认的字符集。
(2) utf8:也称为通用转换格式,是针对Unicode字符的一种变长字符编码。
(3) gb2312和gbk:是简体中文集,而gbk是对gb2312的扩展。
set character_set_client = gbk;
set character_set_results = gbk;
set character_set_connection = gbk;
要更改其他字符集时,只需要将gbk更改为其他字符集即可。
存储引擎不同时,数据库文件存放的位置也不同。可以使用以下语法进行查询:
show global variables like "%datadir%";
create database | schema [if not exists] <数据库名>
[ [default] character set <字符集名>] [ [default] collate <校对规则名>];
语法说明如下:
· [ ]中的内容是可选的。
· create database 与 create schema 是完全等价的。
· <数据库名>:创建数据库的名称。注意在MySQL中不区分大小写(但在Linux中是区分大小写的)。
· if not exists:此选项可以用来避免数据库已经存在而重复创建的错误。
· [default] character set:指定数据库的默认字符集。
· [default] collate:指定字符集的默认校对规则。(注:-ci不区分大小写|-cs区分到小写-bin按二进制编码)
(1) 查看当前用户权限范围以内的数据库,其语法格式如下:
show databases [link '数据库名'];
语法说明如下:
· like 从句是可选择的,用于匹配指定的数据库名称。
· 数据库名由单引号' '包围。
(2) 查看指定数据库的信息,其语法格式如下:
show create database 数据库名;
打开数据库的语法格式为:
use 数据库名;
alter database | schema [数据库名] { [ default ] character set = <字符集名> |
[ default ] collate = <校对规则名> }
语法说明如下:
· alter database | schema 用于更改数据库的全局特性。
· 使用 alter database | schema 需要获得数据库的 alter 权限。
· 数据库名称可以忽略,此时语句对应于默认数据库。
· character set 子句用于更改默认的数据库字符集。
删除数据库后,数据库中的所有表也随之删除,其语法格式如下:
drop database [if exists] <数据库名>;
数据类型 | 类型说明 | 说明 |
---|---|---|
整数类型 | tinyint | 1字节 |
smallint | 2字节 | |
mediumint | 3字节 | |
int | 4字节 | |
bigint | 8字节 | |
浮点类型|定点类型 | float(p,[s]) | 单精度浮点类型 |
double(p,[s])或real(p,[s]) | 双精度浮点类型 | |
decimal(p,[s])或numerice(p,[s]) | 定点数类型,默认的精度为10,小数点位数为0 | |
位值类型 | bit(m) | m表示每个值的位数,从1到64 |
字符串类型 | char(m) | 固定长度字符串 |
binary(m) | ||
varchar(m),varbinary(m) | 可变长度字符串 | |
tinyblob,tinytext | 特殊的字符串类型,保存如文章、评论、简历、新闻内容、图片等 | |
blob,text | ||
mediumblob,meduimtext | ||
longblob,longtext | ||
enum('value1','value2', ...) | 取决于枚举值的数量(最大65535个值) | |
set('value1','value2', ...) | 具体取决于集合成员的数量(最多64个成员) | |
日期时间类型 | date | YYYY-MM-DD |
time | hh: mm: ss | |
datetime | YYYY-MM-DD hh: mm: ss | |
timestamp | 与datetime格式相同 | |
year | 表示年,格式:YYYY |
约束名 | 作用 | 说明 |
---|---|---|
primary key | 主键 | 标识主键,使其唯一且不为空 |
foreign key | 外键 | 标识外键,用来实现两表数据之间的关系 |
unique | 唯一 | 强调表中一列或多列组合的唯一性,可以取一个空值 |
default | 默认 | 插入新纪录时自动填充的值 |
check | 范围 | 别名(检查约束)限制表中列可接受的值 |
not null | 非空 | 表示数据列不允许为空值 |
auto_increment | 序列号 | 表中字段都不适合做主键时使用,初始值为1,步长为1 |
create table [ if not exists ] <表名>
(<列名 1> <数据类型> [<列级完整性约束条件 1>]
[, <列名 2> <数据类型> [<列级完整性约束条件 2>]] [, ...]
[, <表级完整性约束条件>] [, ...]
)[charset = 'utf8'];
语法说明如下:
(1) 表名:必须符合标识符的命名规则。
(2) 列名:在表中要唯一,必须符合标识符的命名规则。
(3) 列级完整性约束条件:
· check:检查约束,用于检验输入的值是否满足指定的条件。
· 其他见上表
(4) 表级完整性约束条件:
· primary key:主键约束,指名该列或组合列为主键,列值或组合列值唯一。
[ constraint <约束名> ] primary key (列名 1,列名 2,...列名 n)
· foreign key:外键约束,用于设置参照完整性规则,语法如下:
[ constraint <约束名> ] foreign key (外键列) references <被参照的表名 (参照列) >
(5) 在有default '中文' 时需在末尾加上 charset = 'utf8'
(1) 查看表结构,语法格式如下:
descride <表名>;
(2) 查看表详细结构,语法格式如下:
show create table <表名>;
alter table <表名>
{ add <新字段名> <数据类型> [<列级完整性约束>] [first | after 已有字段] [, ...] ——增加列
| add constraint <约束名> <约束类型> <约束设置> ——增加约束
| drop { [constraint] <约束名> | colunm <字段名>} ——删除约束或字段
| change <旧字段名> <新字段名> <新数据类型> ——修改字段名
| modify <字段名> <新数据类型> [<列级完整性约束>] ——修改数据类型或约束
| rename [TO] <新表名> ——对表重命名
| engine = <更改的存储引擎名> ——修改存储引擎
};
drop table [if exists] <表名 1> [, ...];
使用drop table 命令一次可以删除一个或多个没有被其他表关联的数据表。
create table [if not exists] <新表名>
[ like <参照表名>]
| [ [as] (select 语句) ];
语法说明如下:
· like:使用like关键字可以复制表的结构,不会复制内容。
· as:可省略,使用as关键字可以复制表的结构和内容。