1.MySQL数据类型及其简介
整数类型
浮点数类型和定点数类型
M:表示数据的总长度(不包括小数位数) D:表示小数位数 例如:Decimal(6,2) 1452.89(此为存入的数据)
存入数据的时候,小数点后保留两位多余的需要四舍五入存入
日期和时间类型
字符串类型
二进制类型
2.数据库的一些基本操作:
简介:数据库(Database)是按照数据结构来组织、存储和管理的仓库。
显示所有数据库操作:show databases;
创建数据库语法:Create databases 数据库名称;
删除数据库语法:drop databases 数据库名称;
3.数据库中创建表
查看表基本结构语法:DESCRIBE(DESC) 表名;
查看表详细结构语法:show create table 表名;
修改表名语法:alter table 旧表名称 rename 新表名;
修改字段语法:alter table 表名 change 旧属性名 新属性名 新数据类型;
增加字段语法:alter table 表名 ADD 属性1 数据类型【约束条件】 ;
删除字段语法:alter table 表名 drop 属性名;
删除表语法:drop table 表名;
4.数据库中数据的查询
查询所有字段语法:SELECT 字段1,字段2,字段3...FROM 表名;或 SELECT * FROM 表名;
查询指定字段语法:SELECT 字段1,字段2,字段3...FROM 表名;
Where条件查询语法:SELECT 字段1,字段2,字段3...FROM 表名 WHERE 条件;
带IN关键字查询语法:SELECT 字段1,字段2,字段3...FROM 表名 WHERE 字段 [NOT] IN(元素1,元素2,元素3);
带BETWEEN AND的查询范围语法:SELECT 字段1,字段2,字段3...FROM 表名 WHERE 字段[NOT] BETWEEN 取值1 AND 取值2;
带LIKE的模糊查询语法:SELECT 字段1,字段2,字段3...FROM 表名 WHERE 字段[NOT] LIKE “字符串”;(“%”代表任意字符,“_”代表单个字符)
空值查询语法:SELECT 字段1,字段2,字段3...FROM 表名 WHERE 字段 IS[NOT]NULL;
带AND的多条件查询语法:SELECT 字段1,字段2,字段3...FROM 表名 WHERE 条件表达1 AND 条件表达2;
带OR的多条件查询语法:SELECT 字段1,字段2,字段3...FROM 表名 WHERE 条件表达1 OR 条件表达2;
DISTINCT去重复查询语法:SELECT 字段名 FROM 表名;
对所查询的数据结果进行排序语法:SELECT 字段1,字段2,字段3...FROM 表名 ORDER BY 属性名 [ASC|DESC](升序\降序);
GROUP BY分组查询:
LIMIT分页查询语法:SELECT 字段1,字段2,字段3...FROM 表名 LIMIT 初始位置,记录数;
使用聚合函数查询:
COUNT()统计记录条数 SUM()求和函数 AVG()求平均值函数 MAX()求最大值函数
MIN()求最小值函数 它们都分别与GROUP BY关键字一起使用。
连接查询:
内连接查询:连接查询两个或两个以上的表。
外连接查询:可以查出一张表所有的信息
外链接查询语法:SELECT 属性名列表 FROM 表名1 LEFT|RIGHT JOIN 表名2 ON 表名1.属性名1=表名2.属性名2;
左链接查询:可以查表1所有记录,但是只能查出表2匹配记录.
右链接查询:可以查表2所有记录,但是只能查出表1匹配记录.
多条件连接查询:可以查询多个条件下的指定数据
子查询:
带IN关键字子查询:一个语句查询条件可能存在另一个SELECT语句的查询结果。
带比较运算符子查询:子查询可以使用比较运算符(>,<);
带Exists关键字查询:若子查询查询到记录,那么进行外查询,否则,不执行外查询。
带ANY关键字查询:ANY表示查询满足其中任意一个条件的数据。
带ALL关键字查询:表示满足所有条件的查询。
合并查询:
UNION:数据库系统将所有查询结果合并到一起并且去除重复的记录。
UNION ALL:数据库系统将所有查询结果合并到一起但是不去除重复的记录。
为表和字段取别名:
为表取别名语法:SELECT * FROM 表名 表的别名 WHERE 表别名.id=n(条件);
为字段取别名: SELECT 字段名 AS 字段别名 FROM 表名 Where (条件)(例如:SELECT t.bookName AS bName FROM t_book t WHERE t.id=1;);
5.数据的插入,更新,删除。
给表的所有字段插入数据语法:INSERT INTO 表名 VALUES(数据1,数据2,数据3...数据n);
给表指定字段插入数据: INSERT INTO 表名(属性1,属性2,属性3...属性n) VALUES(数据1,数据2,数据3...数据n);
同时插入多条数据语法:INSERT INTO 表名 [(属性列表)]
VALUES(插入数据1),(插入数据2)
......
(插入数据n);
(例如:INSERT INTO t_book(id,bookName,price,author,bookTypeId) VALUES (NULL,'我爱祖国2',20,'小誉',1),(NULL,'我爱祖国3',20,'小黑',1);)
删除数据语法:DELETE FROM 表名 [WHERE 条件];
6.索引
索引定义:索引是数据库中一列或者多列组合而成的,作用是提高对表中数据的查询的速度。
优点:提高了查询数据的速度。 缺点:创建和维护索引的时间增加了。
索引分类:
创建表的同时创建索引格式:
在已存在表上创建索引:CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX 索引名 ON 表名 (属性名[(长度)][ASC|DESC]);
用ALTER TABLE创建索引:ALTER TABLE 表名 ADD [UNIQUE|FULLTEXT|SPATIAL] INDEX 索引名 (属性名[(长度)][ASC|DESC]);
删除索引:DROP INDEX 索引名 ON 表名;
7.视图
视图基本介绍:
视图的作用:
创建视图:
查看视图基信息语法:DESCRIBE 或者 SHOW TABLE STATUS
查看视图详细信息语法:SHOW CREATE VIEW
在views表中查看试图详细信息:直接利用表查看
CREATE 或者 REPLACE VIEW语句修改视图:
ALTER创建视图语法:
插入、更新、删除视图:
删除视图:
8.触发器
触发器定义:
创建只有一个执行语句触发器:
创建有多个执行语句触发器:
查看触发器语法:SHOW TRIGGERS 或者直接数据库triggers中查看
删除触发器语法:DROP TRIGGER;
9.日期、时间、字符串、数学、加密等函数的运用
CURDATE();返回当前日期;
CURTIME();返回当前时间
MONTH(d);返回日期d中的月份值(1-12月)
CHAR_LENGTH(s);计算字符串s的字符数
UPPER(s);把所有字母变成大写字母
LOWER(s);把所有字母变成小写字母
A BS(x);求绝对值
SQRT(x);求平方根
MOD(x,y);求余数
PASSWORD(str);一般对用户的密码加密 不可逆
MD5(str);普通加密 不可逆
ENCODE(str,pswd_str);加密函数结果为二进制数,必须用BLOB类型字段来保存他
DECODE(crypt_str,pswd_str);解密函数
10.存储过程和函数(下列xx_xxx的代表创建的存储过程的名称)
存储过程和函数定义:
创建存储过程:
创建存储函数:
变量的使用:
定义变量的语法:DECLARE var_name[...] type[DEFAULT value]
为变量赋值语法:SET var_name=expr...
SELECT col_name INTO var_name FROM table name WHERE condition
游标使用:
游标的定义:
声明游标语法:DECLARE cursor_name CURSOR FOR select_statement;
打开游标语法:OPEN cursor_name;
使用游标语法:FETCH cursor_name INTO var_name;
关闭油表语法: CLOSE cursor_name;
11.流程控制使用
定义:
IF语句的使用:
CASE语句使用:
LOOP,LEAVE 语句使用:
ITERATE语句使用:
REPEAT语句使用:
WHILE语句使用:
调用存储过程语法:CALL sp_name;
调用存储函数语法:fun_name;
SHOW STATUS语句查看存储过程和函数的状态:SHOW STATUS;
SHOW CREATE 语句查看存储过程的函数的定义:SHOW CREATE sp_name;
也可以直接从数据库表中查看存储过程和函数信息 information_scherna.Routines
修改存储过程和函数:
删除存储过程和函数:DROP sp_name;
12.数据备份:数据库备份可以保证数据的安全
使用mysqldump备份数据:
也可以使用数据库直接备份:
mysqldump -u root -p db_book > c:\db_book.sql//备份数据(c:\db_book.sql)这是备份名称或路径
用cdm备份 或者直接文件右键导出 可以备份表或者数据
数据还原:
mysqldump -u root -p db_book > c:\db_book.sql使用数据库直接数据库导入