MySQL学习笔记
来源:互联网 发布:解压缩软件 编辑:程序博客网 时间:2024/06/05 07:28
配置文件:sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
登入命令:mysql -uroot -p
创建(删除)数据库:create(drop) database ***
转换到数据库:use databasename;
创建表:
create table tablename(
r1name datatype (若要不为空写 not null),
r2name datatype (若要不为空写 not null),
r3name datatype (若要不为空写 not null)
);
查询表:
DISCRIBE tablename
或者DISC tablename
查询表的详细信息:
show create table tablename
格式化输出:
show create table tablename \G
修改数据表:
修改表名:
ALTER TABLE oldname RENAME TO newname;
修改字段名:
ALTER TABLE tablename
change oldname newname newtype;
修改字段数据类型:
ALTER TABLE tablename
MODIFY name newtype;
添加字段:
ALTER TABLE tablename
ADD newname newtype;
删除字段:
ALTER TABLE tablename
DROP name;
添加主键语法:
删除表:
删除无关联数据表:
drop TABLE tablename1,tablename2;
删除有关联数据表:
先删除关联关系,再删除表
插入数据:
所有列都插入值:
INSERT INTO tablename
VALUES(var1,var2,.....varn); #若此列有默认值则可用DEFAULT来代替默认值
为特定列插入值:
INSERT INTO tablename(col1,col2,...colm)
VALUES(var1,var2,.....varm); #若此列有默认值则可用DEFAULT来代替默认值
一次性插入多条记录:
在VALUES后填写多组值即可:VALUES()()()
修改数据:
修改全部数据:
UPDATE tablename
set rawname=newvalue
'''
实例:
set score=score+10
set sex=‘男’
'''
修改特定数据:
在修改特定数据后加上 WHERE [条件语句]
'''
实例:
set sex=‘男’
WHERE QQnum=‘1234560’
'''
删除数据:
使用DELETE命令删除数据:
DELETE FROM tablename
WHERE[条件语句]
'''
实例:
DELETE FROM tablename
WHERE sex=‘女’
'''
使用TRUNCATE TABLE删除数据:# 不能使用WHERE语句
TRUNVATE TABLE tablename
查询基础:
#重点SELECT语句
查询表的全部行和列:
SELECT rawname1,rawname2....rawnamen
FROM tablename
简便写法:
SELECT ×
FROM tablename
查询表的部分列:
与查询表的全部列相同
别名的使用: #AS关键字可省略
SELECT rawname1 AS ‘newname’,rawname2 AS ‘newname’....rawnamen AS ‘newname’
FROM tablename
DISTINCT关键字: # 去重
SELECT DISTINCT rawname
FROM tablename
LIMIT关键字: #指定结果集中数据的显示范围
SELECT rawname
FROM tablename LIMIT begin,end #若LIMIT后只写一个数字则只显示前几个
普通条件查询:
逻辑运算符: 并且: AND ,或者:OR, 非:NOT
复合条件查询:
SELECT rawname
FROM tablename
WHERE score>1000 and name=‘jack’
模糊查询:
SELECT rawname
FROM tablename
WHERE score BETWEEN 100 AND 200
# 查询分数在100到200之间的信息(闭区间,前后不可颠倒)
SELECT rawname
FROM tablename
WHERE score NOT BETWEEN 100 AND 200
#查询分数不在此区间的信息
通配符:(要在前加LIKE关键字)
'''
_ 代表任意一个字符
% 代表任意长度的多个字符
[] 指定范围内
[^] 不在括号中
'''
WHERE rawname (NOT)LIKE '孙%'
#查询所有(不)性孙的人 '%'代表任意长度的字符
查询空值的运算符:
WHERE rawname IS NULL
查询不为空:WHERE rawname IS NOT NULL #NOT 要在IS后面
对查询结果拍序:
单列排序:
SELECT rawname
FROM tablename
ORDER BY rawname ASC/DESC # ASC升序 DESC降序 默认ASC
多列排序:
SELECT rawname
FROM tablename
ORDER BY rawname1 ASC/DESC,rawname2 ASC/DESC #在前面的优先级高
汇总和数据分组:
聚合函数: sum(),avg(), min(),max(),count()....
SELECT SUM(rawname) FROM tablename
在结果集内分组:
SELECT SUM(rawname)
FROM tablename
GROUP BY rawname
筛选分组结果:
SELECT SUM(rawname)
FROM tablename
GROUP BY rawname
HAVING AVG(score)>4000
#筛选统计后平均分大于四千的
#HAVING与WHERE的区别: HAVING是对聚合函数计算后的结果进行筛选
按平均分进行排序:
在最后加上ORDER BY AVG(score) ASC/DESC
登入命令:mysql -uroot -p
创建(删除)数据库:create(drop) database ***
转换到数据库:use databasename;
创建表:
create table tablename(
r1name datatype (若要不为空写 not null),
r2name datatype (若要不为空写 not null),
r3name datatype (若要不为空写 not null)
);
查询表:
DISCRIBE tablename
或者DISC tablename
查询表的详细信息:
show create table tablename
格式化输出:
show create table tablename \G
修改数据表:
修改表名:
ALTER TABLE oldname RENAME TO newname;
修改字段名:
ALTER TABLE tablename
change oldname newname newtype;
修改字段数据类型:
ALTER TABLE tablename
MODIFY name newtype;
添加字段:
ALTER TABLE tablename
ADD newname newtype;
删除字段:
ALTER TABLE tablename
DROP name;
添加主键语法:
删除表:
删除无关联数据表:
drop TABLE tablename1,tablename2;
删除有关联数据表:
先删除关联关系,再删除表
插入数据:
所有列都插入值:
INSERT INTO tablename
VALUES(var1,var2,.....varn); #若此列有默认值则可用DEFAULT来代替默认值
为特定列插入值:
INSERT INTO tablename(col1,col2,...colm)
VALUES(var1,var2,.....varm); #若此列有默认值则可用DEFAULT来代替默认值
一次性插入多条记录:
在VALUES后填写多组值即可:VALUES()()()
修改数据:
修改全部数据:
UPDATE tablename
set rawname=newvalue
'''
实例:
set score=score+10
set sex=‘男’
'''
修改特定数据:
在修改特定数据后加上 WHERE [条件语句]
'''
实例:
set sex=‘男’
WHERE QQnum=‘1234560’
'''
删除数据:
使用DELETE命令删除数据:
DELETE FROM tablename
WHERE[条件语句]
'''
实例:
DELETE FROM tablename
WHERE sex=‘女’
'''
使用TRUNCATE TABLE删除数据:# 不能使用WHERE语句
TRUNVATE TABLE tablename
查询基础:
#重点SELECT语句
查询表的全部行和列:
SELECT rawname1,rawname2....rawnamen
FROM tablename
简便写法:
SELECT ×
FROM tablename
查询表的部分列:
与查询表的全部列相同
别名的使用: #AS关键字可省略
SELECT rawname1 AS ‘newname’,rawname2 AS ‘newname’....rawnamen AS ‘newname’
FROM tablename
DISTINCT关键字: # 去重
SELECT DISTINCT rawname
FROM tablename
LIMIT关键字: #指定结果集中数据的显示范围
SELECT rawname
FROM tablename LIMIT begin,end #若LIMIT后只写一个数字则只显示前几个
普通条件查询:
逻辑运算符: 并且: AND ,或者:OR, 非:NOT
复合条件查询:
SELECT rawname
FROM tablename
WHERE score>1000 and name=‘jack’
模糊查询:
SELECT rawname
FROM tablename
WHERE score BETWEEN 100 AND 200
# 查询分数在100到200之间的信息(闭区间,前后不可颠倒)
SELECT rawname
FROM tablename
WHERE score NOT BETWEEN 100 AND 200
#查询分数不在此区间的信息
通配符:(要在前加LIKE关键字)
'''
_ 代表任意一个字符
% 代表任意长度的多个字符
[] 指定范围内
[^] 不在括号中
'''
WHERE rawname (NOT)LIKE '孙%'
#查询所有(不)性孙的人 '%'代表任意长度的字符
查询空值的运算符:
WHERE rawname IS NULL
查询不为空:WHERE rawname IS NOT NULL #NOT 要在IS后面
对查询结果拍序:
单列排序:
SELECT rawname
FROM tablename
ORDER BY rawname ASC/DESC # ASC升序 DESC降序 默认ASC
多列排序:
SELECT rawname
FROM tablename
ORDER BY rawname1 ASC/DESC,rawname2 ASC/DESC #在前面的优先级高
汇总和数据分组:
聚合函数: sum(),avg(), min(),max(),count()....
SELECT SUM(rawname) FROM tablename
在结果集内分组:
SELECT SUM(rawname)
FROM tablename
GROUP BY rawname
筛选分组结果:
SELECT SUM(rawname)
FROM tablename
GROUP BY rawname
HAVING AVG(score)>4000
#筛选统计后平均分大于四千的
#HAVING与WHERE的区别: HAVING是对聚合函数计算后的结果进行筛选
按平均分进行排序:
在最后加上ORDER BY AVG(score) ASC/DESC
阅读全文
1 0
- 【MySQL】MySQL学习笔记
- 【mysql】mysql学习笔记
- Mysql学习笔记 --- mysql数据类型
- MySQL学习笔记--MySQL编程
- JBoss-MySql学习笔记
- mysql学习笔记
- Mysql学习笔记(1)
- Mysql学习笔记
- MySQL学习笔记
- Tomcat Mysql 。。。学习笔记
- mysql学习笔记
- mysql DB(学习笔记)
- MySQL 学习笔记一
- MySQL学习笔记
- mysql学习笔记
- mysql学习笔记
- MySQL学习笔记
- MySql学习笔记
- httpclient
- 焦点事件
- VLSI MP3 音频 编解码芯片
- erlang重点
- HTML 基本格式
- MySQL学习笔记
- Qt 学习之路 2(39):遍历容器
- 冰风3-自定义标签(Demo)
- ACE文档
- redis集群时,出现的几个异常问题
- 降成本利器——SRM之电子招投标
- 单款地图下载器如何授权
- Android深度探索:HAL与驱动开发学习笔记--并发控制之互斥锁
- Cookie