数据库常用操作笔记
纯手打 真累。。。。
常用的字段类型
数字 :int typeint flot doubel 这些都可以规定长度 decimal(X,Y) 设定总共X位,小数点保留Y位
字符串:char定长 varchar不定长 text这个是大文本 定长不定长指的是在数据库中保留的大小 定长不会随数据大小而改变占用的存储空间
日期:datetime
字节:bit 可以用来表示真假 0,1 也可以用来表示选项
约束 缩写
主键 PRIMARY KEY 不能重复 不能为空 PK
非空 NOT NULL 不能为空 NU
唯一 UNIQUE 不能重复 UQ
自增 AUTO_INCREMENT 自动增长 AI
默认值 DEFAULT当用户不填时使用其设定的默认值
外键约束 使用其他表的字段(列)作为自身表字段从而建立一种联系
逻辑删除是指 不是真正的删除 而是使用一个字段进行标记 通常用isDelete来进行标记
备份数据库 其实就是生成了插入语句
进入到mysql目录里 使用 mysql -u root -p 数据库名 > 路径名/备份数据库名字.sql;
恢复数据库 mysql -u root -p 数据库名 < 路径名/备份数据库名字.sql;
数据库操作
创建数据库 CREATE DATABASE 数据库名;
删除数据库 DROP DATABASE 数据库名;
查看现有数据库 SHOW DATABASES;
查看数据库创建信息 S HOW CREATE DATABASE 数据库名;
修改数据库编码 ALTER DATABASE 数据库名称 CHARACTER SET 编码;
切换当前操作的数据库 USE 数据库名;
查看当前使用的数据库 SELECT DATABASE;
导入数据库 SOURCE 数据库名.sql
表操作
创建表 CREATE TABLE 表名(字段名 字段类型 字段约束,
字段名 字段类型 字段约束,
。。。。。。。。。。。。
【设置外键的话】
FOREIGN KEY 当前表字段 REFERENCES 被引用表.被引用字段;
);
查看所有表 SHOW TABLES;
查看表的信息 DESC 表名;
删除表 DROP 表名;
修改字段名 RENAME TABLE 表名 修改的表名;
修改字段名 ALTER TABLE 表名 CHANGE 字段名 修改的字段名 数据类型 约束 【first(放在最前) |after 字段名 (放在这个字段后)】;
修改字段类型 ALTER TABLE 表名 MODIFY 字段名 要修改的字段的数据类型 约束 【first(放在最前) |after 字段名 (放在这个字段后)】;
删除字段 ALTER TABLE 表名 DROP 字段名;
添加字段 ALTER TABLE 表名 ADD 字段名;
修改表存储类型 ALTER TABLE 表名 ENGINE=存储类型;
注意:外键约束 可以自关联
级联:当有外键约束的表的字段 数据更改时
RESTRICT 限制 不允许操作
CASCADE 级联 要改都改
SET NULL 外键置空 外键变NULL
NO ACTION 不管 你改你的我不动
建立级联:
FOREIGN KEY(外键) REFERENCES TABLY(外键) ON DELETE CASCADE ON UPDATE [级联类型]
数据添加
INSERT INTO 表名 (字段名1,字段名2,字段名3。。。。。。) VALUES (内容1,内容2,内容3。。。。。。);
INSERT INTO 表名 VALUES (必须添加所有字段对应的内容);
INSERT INTO 表名 SET (字段名1=内容,字段名2=内容。。。。。。)
数据删除
DELETE FROM 表名 逐条删除 可以筛选
TRUNCATE TABLE 表名 删除整张表,重新创建空表
数据修改
UPDATE 表名 SET 字段名=要修改的值;
添加外键约束
ALTER TABLE 表名 ADD FOREIGN KEY 当前表字段 REFERENCES 被引用表.被引用字段;
数据查询
4 SELECT [DISTINCT 加上用于去重] 要显示的字段 as 修改字段显示的名称
1 FROM 表名
2 WHERE 要筛选的记录
3 GROUP BY 字段序号 HAVING 要筛选组
5 ORDER BY 排序方式(默认升序ASC,降序为DESC)
6 LIMIT 要显示行数或者是第几行到第几行 COUNT 统计
连接查询 用于内联表或者有外键联系的
SELECT *
FROM 表1
INNER JOIN 表2 ON 表1.字段=表2.字段
INNER JOIN 表3 ON 表1.字段=表2.字段
可用 > < >= <= !=
BETWEEN num1 AND num2 在两者之间[NUM1,NUM2) 前包后不包
IN(NUM1,NUM2,NUM3) 必须字段等于NUM1 | NUM2 |NUM3 才行 可以是字符串
AND 且
OR 或
isNULL 如果遇到NULL 转换为0
like “X%” 匹配以X开头的所有
like “X_”” 匹配以X开头的后面只有1位的
REGEXP “要引用的正则”
聚合函数
SUM(字段) 求和
COUNT(字段) 计数
AVG(字段) 求平均
MAX(字段) 最大值
MIN(字段) 最小值
创建视图 其实就是封装sql查询语句
CREATE VIEW 视图名称(通常起名在前面加 V_)AS SQL查询语句
使用视图 SELECT * 视图名称
查看索引
INDEX FROM 表名
创建索引
CREATE INDEX 索引名 ON 表名 字段名(数据类型)
开启运行时间检测 SET PROFILING = 1
查看运行时间 SHOW PROFIES
表存储类型必须为 INNODB 或者 BDB 才可以使用
事务四大特性 (ACID)
原子性 不可分割 要么全完成 要么全不做
一致性 执行次序不同 结果一致
隔离性 事务之间互不干扰
持久性 事务提交的结果保存不变
开启事务 BEGIN
提交 COMMIT
回滚 ROLLBACK