MySQL Tutorials
1、概述
目前属于Oracle,分成社区版和企业版
,关系型数据库
。
1.1 目录结构
- bin:存储可执行文件
- data:存储数据文件
- doc:文档
- include:存储包含头文件
- lib:存储库文件
- share:错误消息和字符集
配置文件:my.ini
1.2 启动和停止
在win cmd中使用net start/stop mysql
来启动和停止mysql服务
1.3 登入和登出
1.3.1 登入
mysql -uuer_name -ppassword -Pport -hhost
可以只使用mysql -uuser_name -ppasswrod
来开启,后面的可以使用默认的值。-P
是指端口号,默认3306。-h
是指地址,默认127.0.0.1。
1.3.2 登出
在MySQL命令窗口输入:exit
, quit
和\q
之中任意一个即可。
1.4 修改输入提示符
在登入时,通过-prompt
来指定提示符,或者在处于命令行时使用prompt
来指定。
在指定提示符的时候可以使用\D
, \d
, \h
和\u
来指示提示符显示当前的日期、数据库、服务器和用户。
1.5 查询数据库信息
使用SELECT VERSION()
, SELECT NOW()
, SELECT USER()
, SELECT DATABASE()
可以分别用来显示当前的数据库版本、时间、操作用户和数据库。
1.6 注释
- 行注释:
--
- 多行注释:
/**/
1.7 约定
数据库操作指令大写;数据库相关的名称小写,且单词之间用下划线分开。
1.8 关于字符编码
查看mysql中当前编码
show variables like 'char%
查看数据表的编码格式
mysql> show create table <表名>;
创建数据库时指定数据库的字符集
mysql>create database <数据库名> character set utf8;
创建数据表时指定数据表的编码格式
create table tb_books (
name varchar(45) not null,
price double not null,
bookCount int not null,
author varchar(45) not null ) default charset = utf8;
修改数据库的编码格式
mysql>alter database <数据库名> character set utf8;
修改数据表格编码格式
mysql>alter table <表名> character set utf8;
修改字段编码格式
mysql>alter table <表名> change <字段名> <字段名> <类型> character set utf8;
window命令行中中文乱码问题,连接之后使用
set names gbk;
2、数据库操作
2.1 创建
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
[DEFAULT] CHARACTER SET [=] character_name
- DEFAULT用来说明使用默认编码方式。默认编码方式通过配置文件
my.ini
中的default-character-set
中指定。 CHARACTER SET [=] character_name
用来指定数据库的字符编码方式。- 有了
IF NOT EXISTS
当指定数据库已经存在的时候,就不会报错了,否则会报错,但是报的错还是可以查找到的。
建立表的时候使用备注:
CREATE TABLE test_table (
test_grade int DEFAULT 1 COMMENT '等级'
) COMMENT = '测试表';
2.2 显示创建数据库的SQL语句
SHOW CREATE DATABASE db_name;
类似的,还有显示表的创建的SQL语句:SHOW CREATE TABLE tbl_name;
2.3 修改
修改数据库的字符编码方式的语句:
ALTER {DATABASE|SCHEMA} [DEFAULT] CHARACTER SET [=] charset_name;
2.4 删除
DROP {DATABASE|SCHEMA} [IF EXISTS] db_name
2.5 显示当前所有数据库
SHOW DATABASES;
类似的,有SHOW TABLES [FROM db_name]
用于显示当前数据库(或指定数据库)下面的所有表。
3、数据类型
3.1 整型
整数分为有符号和无符号的,通过UNSIGNED
指定。(取值范围和C语言中的类型范围一样)
- TiNYINT:1字节
- SMALLINT:2字节
- MEDIUMINT:3字节
- INT:4字节
- BIGINT:8字节
3.2 浮点型
浮点数也分为有符号的和无符号的。如下所示,前面的m指定了总的位数,后面的n指定了小数的位数,所以整数位数为m-n. 和C语言中的float和double范围一样。
- FLOAT[(m,n)]:
- DOUBLE[(m,n)]:
- DECIMAL[(m,n)]:适用于高精度要求的场景
3.3 时间类型
- YEAR:1字节,格式YYYY,范围1901-2155,零值0000
- TIME:3字节,格式HH:MM:SS,范围-838:59:59-838:59:59,零值00:00:00
- DATE:4字节,格式YYYY-MM-DD,范围1000-01-01-9999-12-31,零值0000-00-00
- DATETIME:8字节,格式YYYY-MM-DD HH:MM:SS,范围1000-01-01 00:00:00-9999-12-31 23:59:59,零值0000-00-00 00:00:00
- TIMESTAMP:4字节,格式YYYY-MM-DD HH:MM:SS,范围19700101080001-2038年的某个时刻,零值00000000000000
或者使用时间戳,用BIGINT保存指定时间的毫秒值。
3.4 字符型
- CHAR(m):m字节,0<=m<=255
- VARCHAR(m):L+1字节,L<=m<=65535
- TINYTEXT:L+1字节,L<28
- TEXT:L+2字节,L<216
- MEDIUMEXT:L+3字节,L<224