数据库常用操作笔记

纯手打 真累。。。。

常用的字段类型

数字 :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

posted @ 2018-04-18 01:38  秋de寒  阅读(252)  评论(0编辑  收藏  举报