一、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处理定长列远比处理变长列快得多
2、数值类型
3、日期和时间类型
三、表的字段约束
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的字符串
详情请参考:MySQL教程|菜鸟教程