mysql 十八哥_十八哥Mysql笔记之基础篇
连接Mysql服务器
注意 :-h指的是host地址 ;-u指的是user, 之所以打到-p回车再输入密码,是为了防止密码泄露
如果-h不写则默认是localhost
★服务器à数据库 database à多张或一张表table(建表的同时就是声明列)
★基本的语句
(注意分号结束)
1、查看当前服务器有什么数据库:showdatabases
2、创建数据库 :create database
3、删除数据库 :drop database 数据库名
删除表 :drop table表名
4、选择要操作的数据库 :use数据库名
5、查一个数据库有什么表 :show tables;
6、修改表名 : rename table旧表名to新表名 (不能修改数据库的名字)
7、查看一个表的结构 :desc表名 (仅是查看列的结构,不含数据)
8、创建表并添加列 : 自定义表名,同时下面设置列名和类型
Create table表名(
Num int ,
Name char(10)
Age int ) ;
以上是实例 , 注意每个属性用逗号进行隔开,最后一分号结束
Ps :age int unsigned zerofillà zerofill 表示0填充并且默认unsigned
插入数据的语句 :
Insert into 表名
(num,name,age)values(1,’张三’,22),(2,’王四’,25);
注意 :如果插入全部属性则前者可以省略 ,如果要选择插入某些属性则修改前者即可values有个s,且必须有
注意values的拼写
插入新列的语句 :
Alter table 表名 add列名 类型 限制 after列名
限制可以是 :(1)unsigned无符号
After 是为了声明在哪一列后面,默认在最后一列,如果要放在第一则替换为first
修改表之修改列 :
Alter table 表名change旧列名 新列名 新列的类型 限制
如果要修改原来列的属性可把新列名也写为旧列名即可
修改表之删除列 :
Alter table 表名drop 列名
修改表之增加列主键 :
Alter table 表名add primary key (列名)
如 : 令id列为主键
Alter table 表名add primary key (id)
增加主键的时候如果出现duplicate entry错误, 就是因为主键有重复的值
修改表中某列的值 :
Update表名set
name = ‘李四’ , age = 30
Where
Num = 11
注意 : where设置 修改的 条件
删除表中某行的数据 :
Deletefrom 表名 where num = 1;
注 :如果要删除多行,则需要用or
查询语句
查询全部数据 :Select * from 表名 ;
查询部分列的数据 :Select num,name from表名 ;
条件查询 : select num,name
from 表名
where num>1
★★★所谓的建表就是 声明列的过程
★★★插入的时候整型类型讨论
无符号和有符号分别表示不同的 能够取到的 取值范围 ,为了开发的速度合适的类型,默认是有符号存储范围也是在有符号的范围
★★属性进行初始化的赋值时 ,如果没有进行赋值则默认为 null,一般创建时可以用语句
Name char(10) not null default 自定义的默认值, null不好比较一般都是自定义
★★浮点型 float(M,D)M代表精度即是总长度 ;D代表标度即是小数点
如 :price float(6,2)9999.99 ~ -9999.99
★★字符型 (注意该类型的数据需要添加单引号):
Char(M) : 定长字符串 , 如果存的数据小于M也实占M个字符,内容不足部分补0,M代表可容纳的字符数 , 0<=M<=255, 如 :nihao五个字符
好 一个字符(三个字节)
Varchar(M) :不定长字符串,如果存的数据小于M个字符,则占数据实际的大小
0<=M<=65535 (ascii),但是它会有1到2个字节被用于记录长度
速度上char比较快,varechar比较省资源
★★★decimal:高精度浮点数,常用于金融运算,不会出现浮点数计算的误差
★★★见识 history herstory
★★★year类型
★★★Date类型
★★★实战建立106宿舍资料
create table ss106(
id intprimary key auto_increment,// 主键,递增
name char(4) not null default '',
age tinyint unsigned not null default 0,
email varchar(30) not null default '',
telchar(11) not null default '', //电话号码设置为char
salary decimal(7,2) not null default 0, //金钱的问题设置为decimal类型
intro varchar(1000) not null default '' //此处结尾不能添加逗号!!
)charset utf8; //设置为utf8类型
Ps :编写以上代码时 , 单词有的打错了 , 导致修改了几次才能运行!!!所以编写代码的时候一定要认真拼写,脑中一定要有印象
★★★使用delect的时候,有时候id不存在但也能够执行语句
★★★where : 理解为使表达式是否成立,成立则为真
如 :取出数学比语文高20分的同学成绩
Select * from students
Where math-china>20
★★select中where常用运算符
★in : 表示在某个集合内进行取值,
如 取出学号为2,3,5的学生成绩
Select * from students where id in(2,3,5);
★between : 表示在某个范围内进行取值 ,可以取边界值
如 取出学号为2~5的学生成绩
Select * from students where id between 2 and 5 ;
这句等于
Select * from students where id >= 2 and id <= 5 ;
★not:Select * from students where id != 2 ;
Select * from students where not in (2,3);
★like : 模糊查询
(1)取出以某文字开头的 :文字%
如 :取出姓张的成绩
Select * from students where name like ‘张%’;
Ps :不姓张则not like
(2)取出限定字数的 : 文字_ ,一个下划线一个字
Select * from students where name like ‘张_’;
★★★select 之group: 使用于统计,一般配合统计函数用
★ Max :
如 :找出最高成绩
Select max(grade) from students ;
Sum :
如 :求出所有商品库存总和
Select sum(goods_num) from goods ;
Avg :
如 :求出所有手机价格的平均价格
Select avg(price) from goods ;
Conut :
如 :求出行数
Select count(*) from goods ;
★group by: 进行分组和按此列排序,并在分组中寻找和要求的 ,经常和集函数一起使用 , 如果不和集函数使用也是取出分组的排在第一位置的
如 :寻找同分组,最高价格
Select cat_id , max(price) from goods group by type_id;
Ps :添加其他的选项没意义
★把列名当做变量名进行运算 (注:显示出来的栏目统计函数显示的时候会自己占列)
Ps : 显示的名字可以用as令命名
★★having 语句 :
Where 语句不能够 对查询的结果进行操作,需要进一步的操作必须受使用having
如 :查询市场的手机价格和店铺手机价格之间差价为100元的手机
(1) 错误的
Select good_id,good_name,market_price-shop_price as chajia from goods where chajia>100;
(2)正确的
Select good_id,good_name,market_price-shop_price as chajia from goods where market_price-shop_price >100;
但计算了两次
(3)用having语句 :
Select good_id,good_name,market_price-shop_price as chajia from goods having chajia>100;
★having和where同时使用
如 :查询栏目3的,市场的手机价格和店铺手机价格之间差价为100元的手机
Select good_id,good_name,market_price-shop_price as chajia from goods where good_id = 3 having chajia>100;
◇实战 :计算挂科数目在2科以上的同学的平均成绩
Select name,sum(score<60) as shumu,avg(score) as pj from students group by name haing shumu>=2 ;
★★★order by :改变排序的依据,一般默认升序 , 如果要改为降序则要添加desc
Order by 列名1[desc/asc],列名2[desc/asc];
如 :按照价格进行降序排列,在价格排序好之后,如果价格一样的再按照id排
select id,price from goodsorder byprice,id desc
★limit : 配合order by使用,限制选出来的条数
Limit 偏移的数目,限制的条数à偏移的数目可以不写默认为0
如 :按照价格进行降序排列,在价格排序好之后,如果价格一样的再按照id排,且只取出4,5,6行的数据
select id,price from goodsorder byprice,id desc limit 3,3;
★★★ 特殊的错误 :
★★如果出现这个情况,分号在前面,就会使任何的语句都不能执行,需要输入’;进行结束(即是一个分号和冒号)
★★版本不支持中文
★★我擦,用一个insert语句,错了这么多个地方,第一个地方就版本不支持中文,第二个坑爹的地方就是 输入的 字符中含有 中文的字符,特别是标点的问题 , 唉……
★★★where , group by , having , order by , limit多个时,按照这个顺序进行抒写
★★★
★★复制一张表(只是复制表结构) : create table表名like被复制的表名
★★复制某张表的数据 :insert into表名from被复制的表名(后能加order by等)
★★清空一张表的数据 :truncated表名
★★★巧妙的运用
★★查询(select)的结果一般都是一个表结构,所以可以把结果当做表使用,用括号区别
如 :select * from (select id,cat_id,goods_name,shop_price from goods order by cat_id) as temp group by shop_price;
括号内的查询结果当做一个已有的表进行处理,*表示括号内有的列,把括号内的表称为temp
★★把查询结果当做条件使用 :
如 :select goods_id , goods_name from goods where
goods_id = (select max(goods_id ) from goods) ;
★★where带入行中看是否成立来理解,列看做变量来理解可以运算,查询的结果当做临时表来理解
★★★where型子查询 :把内层的查询结果作为外层查询的比较条件,用 in来表示在里面
如 :取出每个栏目中价格最贵的商品
Select id,cat_id,shop _price from goodswhereshop_pricein (select max(shop_price) from goods group by cat_id);
注意 :这里巧妙地把一个查询的结果组作为 外层的查询条件;内层不用cat_id也可以,因为那只是表示显示出来的栏目而已
★★★From型子查询 : 把内层的查询结果当成临时表,供外层Sql再次查询
注意 :使用from型的子查询必须 添加别名 , 即是as
否则出现这个错误
如 :取出每个栏目下最新的商品
Select * from (select id,cat_id,goods_name from goods order by cat_id asc,id des) as temp group by cat_id ;
先排序好,再按栏目进行取出来
★★★不允许这样操作
★★★找出挂科两门以上同学的平均成绩
select name,avg(score) from students where name in (select name from(select name,count(*) as num from students where score = 2) as temp) group by name;
把题目进行分解 两个以上,不及格,平均成绩
所以先找出两科以上,不及格的学生
mysql 十八哥_十八哥Mysql笔记之基础篇相关推荐
- 燕十八ajax笔记,燕十八php視频教程笔记(PHP基础部分).doc
燕十八php視频教程笔记(PHP基础部分) 001-开学典礼 002-变量概念及命名规范 <?php //?$a?是钥匙[107房间],?房间里的内容是值, /* echo?$a,?什么过程? ...
- 《算法笔记》——基础篇习题选择结构
<算法笔记>--基础篇习题 第二章 C/C++快速入门--2.3选择结构 [习题A] 一元二次方程求根 Problem Description Thinking Notes Code Im ...
- 深度学习word2vec笔记之基础篇
深度学习word2vec笔记之基础篇 声明: 1)该博文是多位博主以及多位文档资料的主人所无私奉献的论文资料整理的.具体引用的资料请看参考文献.具体的版本声明也参考原文献 2)本文仅供学术交流,非商用 ...
- jqGrid 学习笔记整理——基础篇
jqGrid 学习笔记整理--基础篇 jqGrid 实例中文版网址:http://blog.mn886.net/jqGrid/ 国外官网:http://www.trirand.com/blog/ 本人 ...
- 极客时间 Redis核心技术与实战 笔记(基础篇)
Redis 概览 Redis 知识全景图 Redis 问题画像图 基础篇 基本架构 数据结构 数据类型和底层数据结构映射关系 全局哈希表 链式哈希解决哈希冲突 渐进式 rehash 不同数据结构查找操 ...
- Java学习笔记之基础篇
Java学习笔记之基础篇 目录 Java如何体现平台的无关性? 面向对象(OO)的理解 面向对象和面向过程编程的区别 面向对象三大特征 静态绑定和动态绑定(后期绑定) 延伸:类之间的关系 组合(聚合) ...
- mysql 性能分析_十大MySQL性能分析工具汇总!专治MySQL性能瓶颈
前言 MySQL 数据库最常见的两个瓶颈是CPU和I/O的瓶颈.CPU在饱和的时候一般发生在数据装入内存或从磁盘上读取数据时候,磁盘I/O瓶颈发生在装入数据远大于内存容量的时候. MySQL数据库性能 ...
- mysql fnv算法_《高性能MySQL》读书笔记之创建高性能的索引
索引是存储引擎用于快速找到记录的一种数据结构.索引优化是对查询性能优化的最有效手段.索引能够轻易将查询性能提高几个数量级.创建一个最优的索引经常需要重写查询. 5.1索引基础 在MySQL中,存储引擎 ...
- MySQL学习笔记(基础篇未完待补充)
一.MySQL数据库基 目录 一.MySQL数据库基础篇 1.数据库概述与MySQL安装篇 第1章:数据库概述 1.为什么要使用数据库 2. 数据库与数据库管理系统 2.2 数据库与数据库管理系统的关 ...
- sphinx mysql存储引擎_基于Sphinx+MySQL的千万级数据全文检索(搜索引擎)架构设计...
Sphinx,单一索引最大可包含1亿条记录,在1千万条记录情况下的查询速度为0.x秒(毫秒级).Sphinx创建索引的速度为:创建100万条记录的索引只需3-4分钟,创建1000万条记录的索引可以在5 ...
最新文章
- linux命令行中ftp的简单使用
- PE文件重定位概念学习
- gh0st源码分析与远控的编写(三)
- 最新口绑查询HTML源码
- Centos命令与Vim命令的学习记录
- 论述计算机硬件结构的理解论文,论述对汇编语言教学内容和方法及特点的认识与思考...
- jetson nano 相关设置(开机自动登录、取消休眠和屏保、开机自启动程序)
- Solr使用初探——SolrJ的使用
- 【雷达通信】基于Matlab GUI中重频PD雷达仿真系统【含Matlab源码 1055期】
- H264码流中SPS PPS详解
- 360浏览器下页面样式显示异常的解决方法
- 趣学python编程教孩子学编程_趣学Python——教孩子学编程
- win7电脑如何安装柯尼卡美能达C364e打印驱动
- tplink服务器无响应dns,tplink路由器dns异常
- 三维实时云渲染平台解决方案
- Scheme 语言 编程思想上
- 计算机专业装win几,低配电脑装win10还是win7系统比较合适
- 【微软算法面试高频题】可怜的小猪
- java判断联通手机号码_怎样判断手机号码是移动的还是联通的?
- netty延迟任务处理 —— HashedWheelTimer
热门文章
- jQuery实现新浪微博自动底部加载的方法
- python使用笔记
- 终于有了属于自己的家,哈哈,很高兴~~
- 计算机面试数据库基本知识,面试基础知识集合(python、计算机网络、操作系统、数据结构、数据库等杂记)...
- IDEA2021创建Java Web项目
- php 输出excepion内容,带有消息“无法关闭zip文件php://输出”的PHPExcel_Writer_Exception...
- 杭十四计算机教室,杭十四中学生做了个图书馆智能机器人
- 一、华为云ModelArts环配置
- 三十六、Scrapy 中的复写默认管道和Rule扩展
- 第一行冻结_EXCEL函数tips(4) 数据冻结和查找