mysql
2018-10-08 14:00:25 334 举报
AI智能生成
mysql
作者其他创作
大纲/内容
表数据操作
增
添加单条
INSERT INTO tb_name(`field1`,`field2`,....)VALUES('value1','value2',.....);
添加多条
INSERT INTO tb_name(`field1`,`field2`,....)VALUES('value1','value2',.....),('value1','value2',.....),('value1','value2',.....),....;
删
sql
DELETE FROM tb_name WHERE ...
注意
删除时必须加where条件
改
sql
UPDATE tb_name SET field1 = value1,field2 = value2,..... WHERE ....
注意
修改时必须加where条件
查
基础的查询
SELECT * FROM tb_name
where子句
比较运算符
大于、小于、等于、不等于、大于等于、小于等于
SELECT * FROM tb_name WHERE user_id >10;
逻辑运算符
逻辑运算符是用来拼接其他条件的。用and或者or来连接两个条件,如果用or来连接的时候必须使用小括号
SELECT * FROM tb_name WHERE user_id > 10 AND sex = '男'
LIKE模糊查询
通配符
%(百分号)匹配零个或者多个任意字符
_(下划线)匹配一个任意字符
sql
SELECT * FROM tb_name WHERE username LIKE '张%';查找username开头是张的数据
SELECT * FROM tb_name WHERE username LIKE '%张%';查询username中含有张的数据
SELECT * FROM tb_name WHERE username LIKE '%张';查询username字段的数据以张结尾的
SELECT * FROM tb_name WHERE username LIKE '张_';查询username以张开头后边有一个字符的数据
IN字段指定多个值查询
IN (value1,value2,value3,....)
SELECT * FROM tb_name WHERE user_id IN (1,3,5,7,9,11);查询user_id是1,3,5,7,9,11的所有数据
BETWEEN AND 区间查询
field BETWEEN value1 AND value2
SELECT * FROM user WHERE user_id BETWEEN 2 AND 9;查询user表中user_id大于等于2小于等于9的所有值
GROUP BY 分组查询
配合函数
count(field)获取符合条件出现的非null值的次数
SUM(field)获取所有符合条件的数据的总和
AVG(field)或者平均值
SELECT sex,COUNT(*) count FROM class GROUP BY sex;获取class表中男生和女生的数量
ORDER BY 查询排序
查询顺序
ORDER BY field DESC;降序查询
ORDER BY field ASC;升序查询
SELECT * FROM tb_name ORDER BY id DESC; 查询tb_name表中所有数据,按id的降序来查找
LIMIT 查询结果截取
参数
LIMIT 后边可以跟两个参数,如果只写一个表示从零开始查询指定长度,如果两个参数就是从第一个参数开始查询查询长度是第二个参数的值,俩个参数必须是整形。
SELECT * FROM tb_name LIMIT 5;查询tb_name表中的所有数据,只要前边的5条数据
SELECT * FROM tb_name LIMIT 5,5;查询tb_name中所有的数据,返回的结果是从第五条开始截取五条数据
关联查询
外关联
左关联
SELECT * FORM tb_name1 LEFT JOIN tb_name2 ON tb_name1.t2_id = tb_name2.t2_id;用表一的t2_id和表二的t2_id来关联,查询所有的值。
FROM 之后的表是主表
中关联
SELECT * FORM tb_name1 JOIN tb_name2 ON tb_name1.t2_id = tb_name2.t2_id;用表一的t2_id和表二的t2_id来关联,查询所有的值。
中关联没有主表
右关联
SELECT * FORM tb_name1 RIGHT JOIN tb_name2 ON tb_name1.t2_id = tb_name2.t2_id;用表一的t2_id和表二的t2_id来关联,查询所有的值。
在ON后边的表是主表
内关联
内管理的关联条件是用where来说关联的,多张表之间用AND来拼接where条件
SELECT * FROM tb_name1,tb_name2,.... WHERE tb_name1.t2_id = tb_name2.t2_id AND ...
外关联的说明
主表关联副表,如果副表数据不够用NULL来补全,但是中关联的时候,如果不够了,左边的数据或者右边的数据不会显示。直接去掉
事务
关键词
BEGIN开启事务
ROLLBACK;事务回滚
COMMIT;事务提交
必备条件
表的引擎为InnoDB
数据库导入导出
数据库导出
1.打开cmd命令
2.打开到mysql文件夹下的bin目录
3.通过mysqldump来执行导出
4.命令:mysqldump -u root -p 数据库(class15) > 要导出的文件名如:(test.sql)
5.导出之后的文件会出现在bin目录下
sql文件导入
1.cmd打开到mysql的bin目录下
2.通过 mysql -uroot -p 输入密码的形式进入到数据库中
3.选择数据库 USE db_name;
4.执行导入命令: source d:\datafilename.sql 后边路径是sql文件存放的物理路径
数据库操作
创建数据库
CREATE DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
查询数据库
查询所有数据库
SHOW DATABASES
查询数据库建表时的sql
SHOW CREATE DATABASE db_name;
删除数据库
DROP DATABASE db_name;
修改数据库
修改数据库的字符编码和排序方式
ALTER DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
选择数据库
USE db_name;
命令行设置之后操作的编码格式
SET NAMES UTF8
数据库表操作
创建表
SQL : CREATE TABLE tb_name (建表的字段、类型、长度、约束、默认、注释)
约束
非空
NOT NULL
非负
UNSIGNED
主键
PRIMARY KEY
自增
AUTO_INCREMENT
默认
DEFAULT
注释
COMMENT
常用类型
极小整形
TINYINT
非负最大值255
1个字节
小整形
SAMLLINT
非负最大值65535
2个字节
整形
INT
非负最大值4 294 967 295
4个字节
单精度
FLOAT
4个字节
定长字符串
CHAR
最大保存255个字节
如果值没有到给定长度用空格补充
变长字符串
VARCHAR
最大保存255个字节
用多大占多大
文本
TEXT
最大保存65535个字节
表字段索引
唯一索引
添加
创建索引
CREATE UNIQUE INDEX index_name ON tb_name (account);
表字段修改
ALTER TABLE tb_name ADD UNIQUE index_name(field_name);
删除
DROP INDEX Index_nae ON tb_name;
DROP INDEX 索引名称 ON 表名
普通索引
添加
表字段修改
ALTER TABLE tb_name ADD INDEX Index_Name(`account`)
ALTER TABLE 表名 ADD INDEX 索引名称(字段名称);
创建索引
CREATE INDEX Index_name ON tb_name(`account`);
CREATE INDEX 索引名称 ON 表名(字段名);
删除
DROP INDEX Index_nae ON tb_name;
DROP INDEX 索引名称 ON 表名
主键
添加
ALTER TABLE tb_name ADD PRIMARY KEY (field_name);
ALTER TABLE 表名 ADD PRIMARY KEY (字段名称)
删除
ALTER TABLE tb_name DROP PRIMARY KEY;
修改表
表字段的增删改查
字段添加
ALTER TABLE tb_name ADD address VARCHAR (100) NOT NULL DEFAULT '' COMMENT '地址';
ALERT TABLE tb_name ADD 添加字段 字段类型 非空约束 默认 注释
字段类型修改
ALTER TABLE tb_name MODIFY address VARCHAR (50) NOT NULL DEFAULT '' COMMENT '地址';
ALERT TABLE tb_name MODIFY 字段名称 新的字段类型 非负 非空 默认 注释
字段名称类型修改
ALTER TABLE tb_name CHANGE address addr VARCHAR (100) NOT NULL DEFAULT '' COMMENT '地址';
ALTER TABLE tb_name CHANGE 旧的字段名 新的字段名 新的类型 约束 默认 注释
字段类型查询
DESC tb_name;
字段删除
ALTER TABLE tb_name DROP addr;
ALTER TABLE 表名 DROP 删除的字段名
表修改
表名修改
ALTER TABLE tb_name RENAME TO new_tb_name;
ALTER TABLE 旧表名 RENAME TO 新表名
引擎修改
ALTER TABLE tb_name ENGINE = InnoDB;
ALTER TABLE 表名 ENGINE = 新的引擎名称
删除表
DROP TABLE tb_name;
查询表
查询所有表
SHOW TABLES;
查询建表时的sql
SHOW CREATE TABLE tb_name;
MySQL函数
1.数学函数
ABS()绝对值
PI() π值
RAND()返回0到1内的随机值,可以通过提供一个参数(种子)使RAND()随机数生成器生成一个指定的值。
ROUND(x,y)返回参数x的四舍五入的有y位小数的值
MOD(x,y) 返回x/y的模(余数)
2.聚合函数
AVG(col)返回指定列的平均值
COUNT(col)返回指定列中非NULL值的个数
SUM(col)返回指定列的所有值之和
3.字符串函数
UCASE(str)或UPPER(str) 返回将字符串str中所有字符转变为大写后的结果
TRIM(str)去除字符串首部和尾部的所有空格
RTRIM(str) 返回字符串str尾部的空格
LTRIM(str) 从字符串str中切掉开头的空格
LENGTH(s)返回字符串str中的字符数
ASCII(char)返回字符的ASCII码值
4.日期和时间函数
CURDATE()或CURRENT_DATE() 返回当前的日期
CURTIME()或CURRENT_TIME() 返回当前的时间
FROM_UNIXTIME(时间戳) 格式化传入的时间戳,转成日期格式
UNIX_TIMESTAMP()获取系统当前的时间戳
NOW()返回当前的时间的日期
5.加密函数
MD5() 计算字符串str的MD5校验和
PASSWORD(str) 返回字符串str的加密版本,这个加密过程是不可逆转的,和UNIX密码加密过程使用不同的算法。
SHA() 计算字符串str的安全散列算法(SHA)校验和
6.控制流程函数
7.格式化函数
8.类型转化函数
9.系统信息函数
DATABASE() 返回当前数据库名
USER()或SYSTEM_USER() 返回当前登陆用户名
VERSION() 返回MySQL服务器的版本
CONNECTION_ID() 返回当前客户的连接ID
BENCHMARK(count,expr) 将表达式expr重复运行count次
0 条评论
下一页