1.基本使用
1.1链接服务器
mysql -h 127.0.0.1 -P 3306 -u root -p
注意:
- 如果没有写 -h 127.0.0.1默认是连接本地
- 如果没有写 -P 3306 默认是连接3306端号
2.库的操作
2.1创建数据库
语法:
CREATE DATABASE [IF NOT EXISTS] db_name
[create_specification [, create_specification]…]
create_specification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
说明:
- 大写表示关键字
- [] 表示可选项
- CHARACTER SET: 指定数据库采用的字符集
- COLLATE: 指定数据库字符集的校验规则
2.2查看系统默认字符集和校验规则
show variables like ‘character_set_database’;
show variables like ‘collation_database’;
2.3查看数据库支持的字符集和校验规则
语法:
show charset;
show collation;
说明:
- 字符集控制数据库用什么语言
- 校验规则决定数据的校验方法
e.g
- 创建一个数据库,不区分大小写
create database test1 collate utf8_general_ci;
use test1;
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');
- 创建一个数据库,区分大小写
create database test2 collate utf8_bin;
use test2;
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');
- 对两张表的结果进行查询
- 对两张表的结果进行排序
2.4查看数据库
show databases;
2.5修改数据库
语法:
ALTER DATABASE db_name
[alter_spacification [,alter_spacification]…]
alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
说明:
- 修改数据库主要是修改数据库的字符集和校验规则
2.6删除数据库
语法:
DROP DATABASE [IF EXISTS] db_ name;
执行删除后的结果:
- 数据库内部看不到对应数据库
- 对应的数据库文件夹被删除,级联删除,里面的数据表全部被删
2.7备份和还原
备份:
mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径
还原:
mysql> source D:/mysql-5.7.22/mytest.sql;
2.8查看链接情况
show processlist
3.表的操作
3.1创建表
语法:
CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;
说明:
- field 表示列名
- datatype 表示列的类型
- character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准
- collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准
3.2查看表
desc 表名;
3.3修改表
ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column datatype]…);
ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,column datatype]…);
ALTER TABLE tablename DROP (column);
3.4删除表
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] …
4.数据类型
4.1数据类型分类
bit类型
语法:
bit[(M)] : 位字段类型。M表示每个值的位数,范围从1到64。如果M被忽略,默认为1。
注意:bit字段在显示时,是按照ASCII码对应的值显示
float类型
语法:
float[(m, d)] [unsigned] : M指定显示长度,d指定小数位数,占用空间4个字节
decimal类型
语法:
decimal(m, d) [unsigned] : 定点数m指定长度,d表示小数点的位数
说明:
- float和decimal和很像,但精度不同。float表示的精度大约是7位,decimal整数最大位数m为65。支持小数最大位数d是30。如果d被省略,默认为0.如果m被省略,默认是10
char类型
语法:
char(L): 固定长度字符串,L是可以存储的长度,单位为字符,最大长度值可以为255
说明:
- char(2)表示可以存放两个字符
varchar类型
语法:
varchar(L): 可变长度字符串,L表示字符长度,最大长度65535个字节
说明:
- varchar长度可以指定为0到65535之间的值,但是有1 - 3 个字节用于记录数据大小,所以说有效字节数是65532
- 当我们的表的编码是utf8时,varchar(n)的参数n最大值是65532/3=21844,因为utf8中,一个字符占用3个字节,如果编码是gbk,varchar(n)的参数n最大是65532/2=32766(因为gbk中,一个字符占用2字节)
日期类型
常用日期类型有以下三个:
- datetime 时间日期格式 ‘yyyy-mm-dd HH:ii:ss’ 表示范围从1000到9999,占用八字节
- date:日期 ‘yyyy-mm-dd’,占用三字节
- timestamp:时间戳,从1970年开始的 yyyy-mm-dd HH:ii:ss格式和datetime完全一致,占用四字节
enum
语法:
enum:枚举,“单选”类型;
enum(‘选项1’,‘选项2’,‘选项3’,…);
set
语法:
set:集合,“多选”类型;
set(‘选项值1’,‘选项值2’,‘选项值3’, …);