vim :然后输入i 出现插入,写入需要补充的数据,按esc,再输入:wq
vim 有三种模式:初进入为末行模式,输入i为编辑模式,输入esc为命令模式,:进入命令模式,删掉:回到末行模式
vim命令:dd删除且复制,数字+yy为复制几行。
创建数据库命令:create database 名字;
使用数据库:use 名字(后面唯一可以不加分号)
selsct *名字:查询所有列从名字里
字符:[]可选()必选 |三选一
FLOAT[(m,d)] m是有效数字位数,d是小数位数
primary key主键 的特点:第一不能为空,第二不能重复
有两种指定方式:单行主键和复合主键。
复合主键:不能直接跟两个primary key
mysql> create table tt14(
-> id int unsigned,
-> course char(10) comment '课程代码',
-> score tinyint unsigned default 60 comment '成绩',
-> primary key(id, course) -- id和course为复合主键
单行主键:后面直接跟primary key
mysql> create table tt13 (
-> id int unsigned primary key comment '学号不能为空',
-> name varchar(20) not null);
Query OK, 0 rows affected (0.00 sec)
也可以后续添加主键
create table user3(
id int,
name varchar(30)); -- 创建表以后再添加主键
alter table user3 add primary key(id);
唯一键具有唯一性且没有默认的非空约束。
外键用于定义主表和从表之间的关系:外键约束主要定义在从表上,主表则必须是有主键约束或unique约束。当 定义外键后,要求外键列数据必须在主表的主键列存在或为null。
增加:alter
更改:updata table_name set column
查询
distinct:去重
limit 数字:表示只显示多少行。
用法:select *from 文件名 limit 数字
eg:select *from egret limit 4,3;
相当于select *from egret limit 3 offset 4;
插入查询结果insert
union 默认查重,union all不查重。
左外链接会保证左表的完整性,若无对应信息则表示为空。
索引:快速查询,但同时增加了修改,增添的成本。
常见索引:唯一键,主键。
delimiter:作用设置结束符,一般默认结束符为;
一个索引能不能解决所有查询问题。
有主键,主键就是索引;而唯一键的索引需要自己添加,即index
全文索引的创建:
mysql> explain select * from articles where body like '%database%'\G
//like 后面的表示跟database有关的所有条目
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: articles
type: ALL possible_keys: NULL
key: NULL <== key为null表示没有用到索引
key_len: NULL
ref: NULL
rows: 6
Extra: Using where 1 row in set (0.00 sec)
索引的创建原则:
- 更新过于频繁的条件不适合做索引。
- 唯一性太差的字段不适合单独做索引。
- 比较频繁作为查询条件的字段应该创建索引 。
- 不会出现在where子句中的字段不该创建索引。