一、MySQL基础操作

1、SQL语句中的快捷键

1. \G:格式化输出
 2. \s:查看服务器端信息
 3. \c:结束命令输入操作
 4. \q:退出
 5. \h:查看帮助

2、数据库操作

1. 查看数据库:show databases;
 2. 创建数据库:create database 库名 default charset=utf8mb4;
 3. 删除数据库:drop database 库名;
 4. 打开数据库:use 库名;

3、数据表操作

1. 查看表:show tables;
 2. 创建表:create table 表名 (字段名1 类型,字段名2 类型)engine=innodb default charset=utf8mb4;
 3. 创建表:如果表不存在则创建,存在则不执行。create table if not exists 表名 (......);
 4. 删除表:drop table 表名;
 5. 查看表结构:desc 表名;
 6. 查看建表语句:show create table 表名;

4、数据操作

1. 插入
		insert into 表名(字段1,字段2,字段3) values(值1,值2,值3);
		insert into 表名(字段1,字段2,字段3) values(a值1,a值2,a值3),(b值1,b值2,b值3);
 2. 查询
		select * from 表名;
		select 字段1,字段2,字段3 from 表名;
		select * from 表名 where 字段=某个值;
 3. 修改(字段值)
		update 表名 set 字段=某个值 where 条件;
		update 表名 set 字段1=值1,字段2=值2 where 条件;
		update 表名 set 字段=字段+值 where 条件;
 4. 修改(表结构)
		alter table 表名 action(更改的选项)
		# 在 users 表中 追加 一个 num 字段
			alter table users add num int not null;
		# 在指定字段后面追加字段 在 users 表中 age字段后面 添加一个 email 字段
			alter table users add email varchar(50) after age;
		# 在指定字段后面追加字段,在 users 表中 age字段后面 添加一个 phone
			alter table users add phone char(11) not null after age;
		# 在表的最前面添加一个字段
			alter table users add aa int first;
		# 删除字段 alter table 表名 drop 被删除的字段名
			alter table users drop aa;
		# 修改表中的 num 字段 类型,使用 modify 不修改表名
			alter table users modify num tinyint not null default 12;
		# 修改表中的 num 字段 为 int并且字段名为 nn
			alter table users change num mm int;
		# 语法:alter table 原表名 rename as 新表名
		# 在常规情况下,auto_increment 默认从1开始继续递增
			alter table users auto_increment = 1000;
		# 修改表引擎语句
			alter table users engine = 'myisam';
 5. 删除(字段)
		delete from 表名 where 字段=某个值;
 6. 删除(表结构)
		drop table 表名

二、MySQL数据类型

1、字符串数据类型

1. 定长串:char
	接受长度固定的字符串,其长度是在创建表时指定的;
	定长列不允许存储多于指定长度字符的数据;
	指定长度后,就会分配固定的存储空间用于存放数据。
 2. 变长串:varchar
	存储可变长度的字符串;
	varchar(7) 如果实际插入4个字符, 那么它只占4个字符位置,当然插入的数据长度不能超过7个字符。

注意:
	既然变长数据类型这样灵活,为什么还要使用定长数据类型?
	回答:因为性能,MySQL处理定长列远比处理变长列快得多

mysql os命令刷数据库 mysql刷新快捷键_mysql

2、数值类型

mysql os命令刷数据库 mysql刷新快捷键_mysql_02

3、日期和时间类型

mysql os命令刷数据库 mysql刷新快捷键_mysql os命令刷数据库_03

三、表的字段约束

1. unsigned:无符号(给数值类型使用,表示为正数,不写可以表示正负数都可以)
 2. 字段类型后面加括号限制宽度:
	char(5)、varchar(5) 在字符类型后面加限制表示能存储的最大字符个数为5
	int(4) 没有意义,默认无符号的int为int(11),有符号的int(10)
	int(4) unsigned zerofill 表示最小显示宽度为4,长度不足4的前面补0,长度超过4并且满足int类型范围的值正常显示。只有当给int类型设置有前导零时,设置int的宽度才有意义
 3. not null:不能为空,在操作数据库时如果输入该字段的数据为NULL ,就会报错
 4. default:设置默认值
 5. primary key:主键不能为空,且唯一,一般和自动递增一起配合使用。
 6. auto_increment:定义列为自增属性,一般用于主键,数值会自动加1
 7. unique:唯一索引(数据不能重复:用户名)可以增加查询速度,但是会降低插入和更新速度

四、MySQL运算符

1. 算术运算符: +、 -、 *、 /、 %
 2. 比较运算符: =、 >、 <、 >=、 <=、!=
 3. 数据库特有的比较: in、not in、is null、is not null、like、between、and
 4. 逻辑运算符: and、or、not
 5. like: 支持特殊符号%和_ ,%表示任意数量,_表示任意一位字符
	a%表示以a开头的字符串
	%a表示以a结尾的字符串
	%a%表示包含a的字符串