保证直接只属于一个主键
三范式:
保证原子性消除部分依赖
消除传递依赖
主键和外键在多表中出现不算冗余
CREATE DATABASE 数据库名 //创建数据库
DROP DATABASE 数据库名 //删除数据库
可以改
停止服务和启动服务
连接到mysql服务器
CHARSET = "latin1";//不支持中文
COMMENT"xxxx" //注释
DESCRIBE myschool//显示表
show TABLE//表是否存在
DROP TABLE [表名 iF EXISTS] ;删除前if判断是否存在
PRIMARY KEY(字段,字段);//联合主键
DESCRIBE 表名 //查看表怎样定义
DESC 表名 //查看表怎样定义
use 表名 选中这个表
表增加删除修改 存储引擎用lnnoDB,查询用MylSAM
SHOW VARIABLES LIKE 'storage_engine%';//查看默认引擎
DEFAULT"XXXX"//默认值
HELP conntents 查看帮助文档目录列表
HELP Data Types;//可以选择一项查询 查看所支持的类型
UNIQUE KEY//唯一的不能重复
auto_increment//自动自增
.frm 表结构
EXISTS :
SELECT * FROM 表名 WHERE EXISTS(子查询)//查询效率更快
EXISTS//存在这个条件才执行
NOT EXISTS //不存在这个条件才执行
SELECT * FROM IF EXISTS ____ //是否存在表
ALTER TABLE 旧表名 RENAME [TO] 新表名;//修改表名
ALTER TABLE 表名 ADD 字段名 数据类型 [属性];//添加字段
ALTER TABLE 表名 ADD CONSTRAINT ......添加约束
添加主键
ALTER TABLE 表名 ADD CONSTRAINT '外键名' FOREIGN KEY (外键字段) REFERENCES 关联表名(关联字段)
ALTER TABLE 表名 CHANGE 原字段名 新字段名 数据类型 [属性];//修改字段
ALTER TABLE 表名 DROP 字段名 //删除字段
TRUNCATE TABLE 表名;//清空表 重置自增列表结构字段索引不变比DELETE 快
DELETE TABLE 表名 //清空表
一次性插入多条数据:
INSERT INTO 表名 (name,password)
VALUES
("王五","123456"),
("王五","123456");
把查询的结果插入新表:
CREATE TABLE 新表名 (SELECT name,password from 表名);
更新数据:
UPDATE 表名 SET 字段1=值1,字段2=值2...字段n=值n[WHERE 条件];
删除:
DELETE FROM 表名 [WHERE 条件];
指定行数记录:LIMIT分页的关键字
[LIMIT [起始行数,]显示条数]
SELECT NOW();//获取当前系统时间
SELECT * FROM (SELECT * FROM 表名) 别名 //不写别名会报错
CREATE TEMPORARY TABLE 表名(
)//建立一个临时表 只在当前查询有效
TIMESTAMP//需要设置某时间字段默认值为系统时间 当字段为插入数据默认为系统时间
SELECT * FROM xxx WHERE (
SELECT * FROM sss WHERE(
//内查询可以写外查询的字段
)
)
查询索引:
SHOW INDEX FROM 表名