连接服务器
CMD里面的命令:mysql -uroot -p
若显示Can’t connect to MySQL sever on ‘localhost’,那么右键计算机-管理-服务-重新启动MySQL即可
MySQL语句规范
SQL必须用分隔符结尾
数据名称和表名称最好都小写
将分隔符由;改为了//,程序见到//才会停止
mysql -uroot -p delimiter=//
开启输出日志
\T D:\MySQL\output_diary\mysql1.txt
\t ##表示停止写日志
数据库操作
创建数据库
CREATE DATABASE [IF NOT EXISTS] maizi1;
[ ]表示可选,就是可敲可不敲
创建不同于默认的编码方式的数据库
SHOW CREATE DATABASE maizi1 DEFAULT CHARACTER SET = 'gck'
修改已有数据库的编码方式
ALTER DATABASE maizi3 DEFAULT CHARACTER SET utf8
常用命令
查看上一步产生的警告
SHOW WARNINGS;
查看已有的数据库
SHOW DATABASES;
查看已有数据库的定义
SHOW CREATE DATABASE maizi1;
打开数据库
USE db_name
查看当前打开数据库的名称
SELECT DATABASE();
删除指定数据库
DROP DATABASE maizi4
数据表的相关操作
数据表是数据库最重要的组成部分之一,是其他对象的基础,数据表是存储数据的数据结构,数据表是包含了行和列构成的二维网络。
数据表至少有一列,可以没有行或者多行,数据表名称要求唯一,而且不要包含特殊字符。
创建数据表
MySQL 中的数据类型
整数类型
TINYINT
有符号:±27-1,无符号:(0,28-1)
SMALLINT:跟上面一样,不过指数部分分别为215,216
MEDIUMINT:223,224
INT:231,232
BIGINT:265,264
BOOL,BOOLEN:TINYINT(1),0为TRUE,其他为FALSE
不用死记硬背,可以通过help \h ? 来查看数据类型的范围
浮点类型
FLOAT[(M,D)]:M代表数字总位数,D代表小数后面的位数。
字符串类型
- CHAR(M):定长字符串,M个字节
- VARCHAR(M):变长字符串,L+1字节,L<=M
- TINYTEXT
- TEXT
- MEDIUMTEXT
- LONGTEXT
- ENUM(‘value1’,‘value2’,…):当值可以列举的时候,从列举之中选择一个
- SET(‘value1’,‘value2’),可以选择多个值
日期时间类型
- TIME
- DATE
- DATETIME
- TIMESTAMP
- TEAR
MQL存储引擎
什么是存储引擎?
用户可以根据不同的存储方式,来选择存储引擎。
如何查看MySQL数据引擎
- 查看MySQL支持的存储引擎
SHOW ENGINES\G;
\G:表示分行显示
- 查看显示支持的存储引擎信息
SHOW VARIABLES LIKE 'have%';
- MySQL常用的存储引擎及特点
- InnoDB存储引擎:读取效率低,占用数据大
- MyISAM存储引擎:占用磁盘空间小,但是不支持事务
- MEMORY存储引擎:速度快,提高表的处理,但是数据存储在内存中,用了必须删掉。安全性不高,适合一次性。
同一个数据库可以使用多个数据引擎,根据不同的表进行选择。
建立TABLE的步骤
- 建立TABLE第一步:找到表头的数据类型,比如:
编号:MEDIUMINT 无符号
姓名:VARCHAR(20)
性别:ENUM(‘男’,‘女’,‘保密’)
电话:字符串|整数 无负数
地址:变长字符串(200)
邮箱:变长字符串(50)
薪水:浮点数FLOAT(8,2)
是否结婚:布尔类型 TINYINT(1) - 创建数据表
添加注释:# 或者 –
# 注释内容
-- 注释内容
-- 创建maizi数据库
CREATE DATABASE IF NOT EXISTS `maizi` DEFAULT CHARACTER SET 'UTF8';
USE `maizi`;
-- 创建学员表(user)
-- 编号 id
-- 用户名 username
-- 年龄 age
-- 性别 sex
-- 邮箱 email
-- 地址 addr
-- 生日 birth
-- 薪水 salary
-- 电话 tel
-- 是否结婚 married
-- 注意:当需要输入中文的时候,需要临时转换客户端的编码方式
-- SET NAMES GBK;
-- 字段注释 通过COMMENT 注释内容 给字段添加注释
CREATE TABLE IF NOT EXISTS `user`(
id SMALLINT,
username VARCHAR(20),
age TINYINT,
sex ENUM('男','女','保密'),
email VARCHAR(50),
addr VARCHAR(200),
birth YEAR,
salary FLOAT(8,2),
tel INT,
married TINYINT(1) COMMENT '0代表未结婚,非0代表已婚'
)ENGINE=INNODB CHARSET=UTF8;
- 查看指定表的表结构
DESC tbl_name
DESCRIBE tbl_name
SHOW COLUMNS FROM tbl_name
- 向表中插入记录
INSERT tbl_name VALUE|VALUES(值,...);
- -查询表中所有记录
SELECT * FROM tbl_name;
SELECT * FROM test1;
测试整型
- 添加无符号的数据类型
CREATE TABLE test2(
num1 TINYINT UNSIGNED,
num2 TINYINT
);
INSERT test2 VALUES(0,-12);
- 零填充
CREATE TABLE test3(
num1 TINYINT ZEROFILL,
num2 SMALLINT ZEROFILL,
num3 MEDIUMINT ZEROFILL,
num4 INT ZEROFILL