一、MySQL 命令操作
1、新建、删除、修改数据表等 操作命令 (模糊查询)
mysql> CREATE DATABASE RUNOOB; (创建数据库) // CREATE DATABASE 数据库名;
mysql> USE RUNOOB; (选择数据库) // USE 数据库名;
mysql> DROP DATABASE RUNOOB; (删除数据库) // DROP DATABASE 数据库名;
mysql> DROP TABLE runoob_tbl (删除数据表) // DROP TABLE 数据表名
mysql> SELECT * FROM runoob_tbl; (查询 runoob_tbl 表中所有数据)
mysql> DELETE FROM runoob_tbl WHERE id=1; (删除数据)
mysql> UPDATE runoob_tbl SET title='学习 C++' WHERE id=3; (修改数据)
mysql> UPDATE runoob_tbl SET name='张三'; (设置name这个字段的所有数据值为张三)
mysql> SELECT * FROM runoob_tbl WHERE author='菜鸟教程'; (查询author='菜鸟教程'的数据)
LINK (模糊查询)
mysql> SELECT * FROM runoob_tbl WHERE author LIKE '%COM'; (获取 author 字段中以 COM 为结尾的所有记录)
mysql> SELECT * FROM runoob_tbl WHERE author LIKE 'COM%'; (获取 author 字段中以 COM 为开头的所有记录)
mysql> SELECT * FROM runoob_tbl WHERE author LIKE '%COM%'; (获取 author 字段中包含 COM 的所有记录)
mysql> SELECT * FROM runoob_tbl WHERE author NOT LIKE '%COM%'; (获取 author 字段中不包含 COM 的所有记录)
注: LINK 扩展查询
'_a_' //三位且中间字母是a的
'_a' //两位且结尾字母是a的
'a_' //两位且开头字母是a的
2、新建数据表和数据插入
(插入数据)-----------------------------------------------------------------------------------------------------------
INSERT INTO `zfw_user` VALUES
('1', '张三', '0', '男', '20', '159xxxx0519', '140************255', '北京市丰台区XXXXXXX', '/uploads/pic/1.jpg',
'xinlang@163.com', '曾经的回忆', '0', '2020-07-01 10:51:32', '2020-07-01 10:51:35', '2020-07-01 10:51:37');
mysql>INSERT INTO table_name
->( field1, field2,...fieldN )
->VALUES
->( value1, value2,...valueN );
(创建数据表)-----------------------------------------------------------------------------------------------------------
mysql> CREATE TABLE `zfw_user` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '姓名',
`pid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '上级ID',
`sex` enum('男','女') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '男' COMMENT '性别',
`age` tinyint(3) unsigned NOT NULL DEFAULT '20' COMMENT '年龄',
`phone` char(15) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '手机号码',
`card` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '身份号码',
`address` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '家庭住址',
`pic` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '身份证照片',
`email` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '邮箱',
`content` text COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '个人简介',
`is_check` enum('0','1') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '0' COMMENT '是否审核,0未审核,1审核',
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
(创建数据表中的个别单词含义解释) ---------------------------------------------------------------------------------------
unsigned (无符号)
NOT NULL (不为空)
AUTO_INCREMENT (自增)
COMMENT '姓名' (备注信息)
DEFAULT '0' (默认信息)
PRIMARY KEY (`id`) (主键id)
AUTO_INCREMENT=1 (从1开始自增)
ENGINE=MyISAM (默认存储引擎),存储引擎InnoDB与MyISAM两种(InnoDB支持事务,MyISAM不支持)
CHARSET=utf8mb4 (字符集)
COLLATE=utf8mb4_unicode_ci (排序规则)
区别:
utf8mb4_unicode_ci:
基于标准的Unicode来排序和比较,能够在各种语言之间精确排序,在特殊情况下,
Unicode排序规则为了能够处理特殊字符的情况,实现了略微复杂的排序算法,所以兼容度比较高,但是性能不高。
utf8mb4_general_ci:
没有实现Unicode排序规则,在遇到某些特殊语言或者字符集,排序结果可能不一致,但是在比较和排序的时候速度更快。
二、MySQL 数据类型
查阅手册
MySQL中定义数据字段的类型对你数据库的优化是非常重要的。
MySQL支持多种类型,大致可以分为三类:数值、日期/时间 和 字符串(字符)类型。
数值类型
类型 | 大小 | 范围(有符号) | 范围(无符号) | 用途 |
---|---|---|---|---|
TINYINT | 1 byte | (-128,127) | (0,255) | 小整数值 |
SMALLINT | 2 bytes | (-32 768,32 767) | (0,65 535) | 大整数值 |
MEDIUMINT | 3 bytes | (-8 388 608,8 388 607) | (0,16 777 215) | 大整数值 |
INT或INTEGER | 4 bytes | (-2 147 483 648,2 147 483 647) | (0,4 294 967 295) | 大整数值 |
BIGINT | 8 bytes | 查阅手册 | 查阅手册 | 极大整数值 |
FLOAT | 4 bytes | 查阅手册 | 查阅手册 | 单精度浮点数值 |
DOUBLE | 8 bytes | 查阅手册 | 查阅手册 | 双精度浮点数值 |
DECIMAL | DECIMAL(M,D) | M>D,为M+2否则为D+2值 | M>D,为M+2否则为D+2值 | 小数值 |
日期和时间类型
表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。
每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。
TIMESTAMP类型有专有的自动更新特性,将在后面描述。
类型 | 大小 | 范围 | 格式 | 用途 |
---|---|---|---|---|
DATE | 3 | 1000-01-01/9999-12-31 | YYYY-MM-DD | 日期值 |
TIME | 3 | '-838:59:59'/'838:59:59' | HH:MM:SS | 时间值或持续时间 |
YEAR | 1 | 1901/2155 | YYYY | 年份值 |
DATETIME | 8 | 1901/2155 | YYYY-MM-DD HH:MM:SS | 混合日期和时间值 |
TIMESTAMP | 4 | 查阅手册 | YYYYMMDD HHMMSS | 混合日期和时间值,时间戳 |
字符串类型
字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。
类型 | 大小 | 范围(有符号) |
---|---|---|
CHAR | 0-255 bytes | 定长字符串 |
VARCHAR | 0-65535 bytes | 变长字符串 |
TINYBLOB | 0-255 bytes | 不超过 255 个字符的二进制字符串 |
TINYTEXT | 0-255 bytes | 短文本字符串 |
BLOB | 0-65 535 bytes | 二进制形式的长文本数据 |
TEXT | 0-65 535 bytes | 长文本数据 |
MEDIUMBLOB | 0-16 777 215 bytes | 二进制形式的中等长度文本数据 |
MEDIUMTEXT | 0-16 777 215 bytes | 中等长度文本数据 |
LONGBLOB | 0-4 294 967 295 bytes | 二进制形式的极大文本数据 |
LONGTEXT | 0-4 294 967 295 bytes | 极大文本数据 |
三、MySQL连接
命令如下:
mysql -h localhost -u root -p 执行输入mysql -h localhost -u root -p 回车
C:\Users\asus>mysql -h localhost -u root -p 或者win+r 运行,输入cmd后,输入mysql -h localhost -u root -p 后回车
mysql> exit 退出MySQL 输入exit
这里以win7系统为例。
1、使用WIN+R打开运行窗口,输入mysql -h localhost -u root -p,打开进入cmd窗口。
2、输入密码,密码为空,则直接回车(前提必须启动数据库)。
如图所示
运行窗口
输入密码
进入数据库界面