MySQL学习总结

MySQL 总结
数据类型
整型
INT TINYINT
小数
FLOAT(M,D)DOUBLE(M,D)浮点型
DEC(M,D)DECIMAL(M,D)定点数D:小数点后保留几位M:整数的位数与小数的位数的总长度
字符型
CHAR VARCHAR
TEXT BLOB(较大的二进制数据可用来保存图片)
binary()二进制数据定义了10个二进制空间,不管存没存够够会用10个二进制空间
varbinary()可变的二进制数据存了2个二进制数就用2位来存储

日期型
DATETIME

TIMESTAMP时间戳跟时区有关比如在北京东八区存的时间换到东九区时间戳会跟着变更准确些

库操作

库的创建
CREATE DATABASE(如果不存在)库名;

删库跑路
DROP DATABASE(IF EXISTS)库名;

修改库的字符集  

ALTER   DATABASE   库名   CHARACTER SET utf8;

表操作

表的创建

在创建表格时如果字段名使用了SQL关键字时,我们要使用Esc键下面的`引起来
创建完后记得要刷新
CREATE TABLE config_table(
PAGE INT UNSIGNED NOT NULL,//无符号整数  
`INDEX `TINYINT NOT NULL,
EXIST BOOL NOT NULL,
PATH VARCHAR(256),
TITLE VARCHAR(256)//显示256个字符多了的显示....
);

约束
NOT NULL不为空
DEFAULT有默认值
PRIMARY KEY主键并且非空
UNIQUE跟PRIMARY KEY一样但能为空
FOREIGN KEY外键在从表添加外键约束,用于引用主表中某列的值

标识列必须是一个key(主键/唯一键/外键)
auto_increment
AUTO_INCREMENT自增长默认为1次增加1
一个表只能有一个标识列
标识列的类型只能是数值类型

插入多行数据
INSERT INTO config_table
VALUES 
(0,0,TRUE,“dfdfdf”,“dfdgdgf”) ,
(1,1,TRUE,“dfdfdf”,“dfdgdgf”),
(2,2,TRUE,“dfdfdf”,“dfdgdgf”);

表的修改

ALTER TABLE   表名  CHANGE | MODIFY | ADD | DROP | 重新命名为...;


修改列名
ALTER TABLE  表名   CHANGE(COLUMN)旧列名   新列名  类型;

修改列表的类型或约束
ALTER TABLE   表名   MODIFY   COLUMN   旧列名   新类型;

添加新列
ALTER TABLE  表名  ADD  列新名  类型   [after | fisrt字段名];

删除列
ALTER TABLE   表名   DROP COLUMN   列名;

修改表名
ALTER TABLE   表名   RENAME TO   新表名;

表的删除
DROP TABLE(IF EXISTS)表名;

表的复制仅
复制表的结构 
CREATE TABLE   新表  LIKE   要复制的表

复制表的结构与数据过来(限制条件自己加)
CREATE TABLE   新表 
SELECT * FROM   旧表;仅
复制某些字段
CREATE TABLE新表
SELECT id,au_name //要的字段
FROM旧表
WHERE 0;

修改表的记录
UPDATE表名SET字段=值WHERE条件;

删除表的记录
DELETE FROM表名WHERE条件;

查询

SELECT *          8
FROM 1
INNER |左| RIGHT JOIN 2
ON          3
WHERE 4
         5
GROUP BY 6
HAVING          7
ORDER BY DESC / ASC;         9
限制         10


存储过程

CREATE PROCEDURE   存储过程名(参数列表)
BEGIN
存储过程体(一组合法的SQL语句)
END


参数列表 
参数模型       参数名       参数类型
IN              stume       VARCHAR(20)

参数模式
IN:该参数可以作为输入
OUT:该参数可以作为输入OUT:参数可以作为返回值相当于C语言的函数的返回
INOUT:  

如果存储过程体仅仅只有一句话BEGIN END可以省略
存储过程体中的每条SQL语句的结尾要求必须加分号
存储过程的结尾可以使用DELIMITER重新结尾符号

调用
CALL   存储过程名(参数);

在控制台定义

//定义结束标志要在控制台也设置以后的语句结尾全用$
DELIMITER $ 
CREATE PROCEDURE myp1()
BEGIN
INSERT INTO管理员(用户名,`password` )// ESC下面的符号
VALUES('DFDSF','ERFER'),            //单引号
('ZCVG','ERFER'),
('TGGGS','ERFER');
END $

在控制台

调用CALL myp1()$ //以后的结束标记以后都得用$

带参数调用
CREATE PROCEDURE myp2(IN beautyName VARCHAR(20))
BEGIN
SELECT bo。*
FROM boys bo
RIGHT JOIN beauty b on bo.id = b.boyfriend_id
WHERE b.name = beautyName;
END $

CALL myp2('柳岩')$

//用户是否登录成功
CREATE PROCEDURE myp3(IN usrename VARCHAR(20),IN PASSWORD VARCHAR(20))
BEGIN
//定义变量
DECLARE   result INT DEFAULT 0;
SELECT COUNT(*)INTO result //赋值给用户自定义的局部变量result
FROM admin
WHERE admin.username = username
AND admin.passeord = PASSWORD;

SELECT IF(result> 0,'成功','失败');

END $ 

CALL myp3('柳岩','dfdf')$ 返回值 


CREATE PROCEDURE myp4(IN beautyName VARCHAR(20),OUT boyName VARCHAR(20))
BEGIN 
SELECT bo.boyName INTO boyName //查询的结果赋值给OUT的boyName
FROM boys.bo
INNER JOIN beauty b ON bo.id = b。 boyfrined_id
WHERE b.name = beautyName;
END $


用户变量存储返回值 
CALL myp4('小巨款',@ bName)$
SELECT @ bName $

两个返回
CREATE PROCEDURE myp5(IN beautyName VARCHAR(20),OUT boyName VARCHAR(20),OUT userCP INT)
BEGIN 
SELECT bo.boyName,bo.userCP INTO boyName,userCP 
FROM boys.bo
INNER JOIN beauty b ON bo.id = b.boyfrined_id
WHERE b.name = beautyName;
END $

用户变量存储返回值 
CALL myp4('小巨款',@ bName,@ userCP)$
SELECT @ bName,@ userCP $

//输入又输出     传入的参数有值的参数
CREATE PROCEDURE myp6(INOUT a INT,INOUT b INT)
BEGIN
SET a = a * 2;
SET b = b * 2;
END $

set @ m = 10 $
set @ n = 20 $

CALL myp6(@ m,@ n)$
SELECT @ m,@ n $

删除存储过程
DROP PROCEDURE   存储过程名$

函数

CREATE FUNCTION函数名(参数列表)RETURNS返回类型
BEGIN
函数体
retunr值;
END


参数列表:
参数名  参数类型

调用
SELECT   函数名(参数列表)

//定义结束标志要在控制台也设置以后的语句结束全用$

DELIMITER $ 


无参返回
CREATE FUNCTION myf1()RETURNS INT
BEGIN 
DECLAR c INT DEFAULT 0;
SELECT COUNT(*)INTO c;
FROM表名
返回c;
END $

SELECT myf1()$

有参返回先前数字
再类型
CREATE FUNCTION myf2(empName VARCHAR(20))RETURNS DOUBLE
BEGIN
SET @ sal = 0; //定义用户变量
SELECT salary INTO @sal //赋值 
FROM employees
WHERE last_name = empName;

RETURN @sal; //只能返回一个值 
END $

SELECT myf2('king')$

查看函数
SHOW CREATE FUNCTION  函数名;

删除函数
DROP FUNCTION   函数名;


循环

iterate==continue
leave==break





  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值