mysql总结
来源:互联网 发布:二进制算法例子 编辑:程序博客网 时间:2024/05/01 18:34
一、数据库层次操作:
创建数据库:
CREATE DATABASE [IF NOT EXISTS] db_name CHARACTER SET utf8;
删除数据库:
DROP DATABASE[IF EXISTS] db_name;
修改数据库编码:
ALTER DATABASE db_name CHARACTER SET utf8;
显示数据库是否创建:
SHOW DATABASE;
显示创建数据库所用指令:
SHOW CREATE DATABASE db_name;
二、数据表层次:
创建数据表:
CREATE TABLE tb_name(
column_name data_type 是否为空 是否为主键 是否单调递增 是否是唯一键 是否提供默认值,
。。。
)
显示数据表结构:
SHOW COLUMNS FROM tb_name;
插入行:
INSERT INTO tb_name (columns_list) VALUES (value_list)
删除行:
DELETE FROM tb_name where。。。
查询:
select *from tb_name;
三、约束:
PRIMARY KEY:唯一,不空
UNIQUE KEY:唯一,可以为空
DEFAULT:设置该字段默认值
NOT NULL:非空约束
FOREIGN KEY:外键约束 (子表父表存储引擎均为INNODB,关联的字段值类型相似或相同(数字相同,字符可以长度不同),子表父表对应字段均有索引)
FOREIGN KEY(子表字段名)REFERENCES 父表表名(父表对应字段名)ON DELETE CASCADE[ON DELETE SET NULL|ON DELETE RESTRICT(父表不允许删除)]
四、修改数据表
删除添加列:
ALTER TABLE tb_name ADD columns_name datatype 约束;
ALTER TABLE tb_name DROP columns_name;
添加删除约束:
ALTER TABLE tb_name ADD constraint primary key(columns_name);/ALTER TABLE tb_name DROP PRIMARY KEY;
ALTER TABLE tb_name ADD constraint unique key(columns_name);/ALTER TABLE tb_name DROP KEY columns_name;
ALTER TABLE tb_name ADD FOREIGN KEY(COLUMNS_NAME)REFERENCES 父表(参照columns_name)/ALTER TABLE tb_name DROP FOREIGN KEY name_fk;
ALTER TABLE tb_name ALTER columns_name SET DEFAULT 值;(t添加默认约束)
DROP DEFAULT;(删除默认约束)
修改列定义:
ALTER TABLE tb_name MODIFY columns_name datatype 约束 位置(first、after 某一列);
ALTER TABLE tb_name CHANGE columns_name new_columns_name datatype 约束 位置;
修改数据表名称:
ALTER TABLE tb_name TO/AS new_tb_name;
RENAME TABLE tb_name TO new_tb_name;
五、记录操作
插入记录:
INSERT INTO tb_name (columns1,columns2...) VALUES (val1,val2...),(val1,val2);(VAL可以为表达式);
INSERT INTO tb_name SET columns_name1=val1,columns_name2=val2;(可以使用子查询)
INSERT INTO tb_name (column1,columns2...)SELECT...;
单表更新:
UPDATE tb_name SET columns_name1=EXPR1,columns_name2=expr2 WHERE...;
单表删除操作:
DELETE FROM tb_name WHERE...;
查找:
SELECT select_expr [,select expr]
[
FROM tB_name
[WHERE where_condition]
[GROUP BY col_name][asc|desc]
[HAVING where_condition](where_condition只能为聚合函数或者要判断的列在select表达式中出现)
[ORDER BY col_name|expr][ASC|DESC]
[LIMIT offset,count](限制返回记录条数)
]
六、子查询和连接
比较引发子查询:
SELECT column1_name,column2_name... FROM tb_name WHERE columns_name > (查询语句);
子查询可以用ANY,SOME,ALL修饰
使用NOT IN和IN的子查询:
SELECT * FROM tb_name WHERE columns_name NOT IN (子查询)
使用INSERT。。。SELECT插入:
将SELECT结果插入
多表更新:
CREATE TABLE tb_name ()select语句;
UPDATE tb_name INNER JOIN tb_name ON 连接条件 SET columns_name1=columns_name1';
连接:
tb_name INNER|LEFT|RIGHT JOIN tb_name ON 连接条件;
内连接:仅显示满足连接条件的记录
左外连接:左表全部,右表符合条件的记录
右外连接:右表全部,左表符合条件的记录
多表连接:
无线级分类表设计:
多表删除:
七、自定义函数
CREATE FUNCTION f_name(参数名 参数类型,...) RETURN data_type
函数体;
BEGIN
//
END
八、存储过程:
优点:增强 SQL功能灵活性;实现较快执行速度;减少网络流量;
创建不带参数存储过程:
CREATE PROCEDURE p1() SQL statements;
调用 CALL p1();
创建带IN,OUT,INOUT参数的存储过程:
CREATE PROCEDURE p2(IN[OUT|INOUT] 参数1 参数类型,....)
SQL语句;
调用 CALL p2(输入);
IN只能输入;
OUT输出 SELECT columns FROM tb_names INTO OUT变量(@变量名 用户变量;DECLARE 局部变量只可以用于 BEGIN END之间)
INOUT既可以输入又可以输出;
存储过程与自定义函数区别:存储过程功能更复杂;存储过程可以返回多个值;存储过程一般独立存在,自定义函数可以再SQL语句中出现;
- MySQL总结
- MySQL 总结
- mysql总结
- MySql总结
- MySQL总结
- mysql 总结
- mysql总结
- Mysql总结
- mysql总结
- Mysql总结
- mysql总结
- Mysql总结
- mysql 总结
- mysql 总结
- mysql总结
- MySQL总结
- mysql总结
- 总结:mysql
- 解密Redis持久化
- 云计算的由来——技术积累
- Struts2框架学习之OGNL表达式
- nginx负载均衡配置的几种策略
- 如何在PL/SQL中修改ORACLE的字段顺序
- mysql总结
- c++中输出十进制,十六进制,八进制。默认输出十进制的数据和左右对齐
- Win7 ie的cookie存放路径
- Codeforces Round #311 (Div. 2)A Ilya and Diplomas
- 身后跌落的岁月
- 云计算的由来——开发过程和交付方式
- 关于签名
- 云计算名词解析
- 二分算法