(0)MySQL 的指令(包含了解知识点)
第七章索引:入门安装 - 增删改查基本操作 - 外键(不同表之间的关联) - 数据库的建立和操作 - MySQL的查询操作(模糊、通配、限制符等) - MySQL的引擎 - MySQL的事物(数据回滚) - SQL的注入(漏洞的防范) - 触发器(同时操作两张表) - 索引(提高查找速度) - 慢日志(记录sql语句的执行时间,用来排查优化语句)
PS:所有指令的后面都需要加分号,告诉程序这条指令到这里为止结束了,否则会报错,只有少数特殊指令不需要加分号如use
PS:where 和having 的区别(都是用来过滤数据的),但是不同的where是过滤的原生的数据(没有经过处理的数据,比如分组等),having是过滤group by(分组)之后的数据进行二次筛选,这个程序设计者设计的,固定的
PS:where是可以和having配合使用的,但是必须在group by 分组之前使用,即select count(id) as cut,age from tablename where id > 6 group by age having cnt < 2 #查找tablename中age列下序号6以后的值,然后计算相同的数量,查找相同数量<2的数据
查询和进入
1、show databases; #查看data文件夹下的数据库
2、use db(test1); #进入指定的文件夹(数据库)
3、show tables; #查看当前数据库下的所有数据表
4、show databases; # 查看data文件夹下所有的数据库,确认自己想建立的表存不存在
5、select * from test1; #查看指定数据表(test1)的所有列,*是正则匹配所有 \ test1 就是数据表名
6、selece id from test ; #查看指定数据表中的指定列(id就是列名)的所有内容
7、select name,id from test1; #查看指定数据表(test1)中多项列名(name,id)的所有内容
8、select * from test1 where id = 1; #查看指定数据表(test1)中指定行数(id=1就是指定行数是1的行)的数据
9、show create table test1; #查看数据表的修改或者建立过程
10、desc test1; #查看数据表例的信息(包括格式、约束等条件)
11、select id,name from test1 where id<4; #查看数据表中指定多个列的一个范围的数据 \ id<4 就是查看4行之前的数值
12、select id,name from test1 where id<=4; #查看数据表中指定多个列的一个范围的数据 \ id<4 就是查看4行之前的数值也包括第四行
13、select id,name from test1 where id>4; #查看数据表中指定多个列的一个范围的数据 \ id>4 就是查看4行之后所有的数值
14、select id,name from test1 where id>=4; #查看数据表中指定多个列的一个范围的数据 \ id>4 就是查看4行之后所有的数值包括第四行
15、select id,name from test1 where id!=4; #查看数据表中指定多个列的一个范围的数据 \ id!=4 就是除了第四行的所有值
16、select id,name from test1 where id>1 and id <4; #查看数据表中指定多个列的一个范围的数据 \ id>1 and id <4 第一行至第四行中间的所有数据
17、select id,name from test1 where id>=1 and id <=4; #查看数据表中指定多个列的一个范围的数据 \ id>1 and id <4 第一行至第四行中间的所有数据包括第一行和第四行
18、select id,name from test1 where id betweeb 1 and 4; #查看数据表中指定多个列的一个范围的数据 \ id betweeb 1 and 4 第一行至第四行中间的所有数据,包括第一行和第三行
19、 select id,name from test1 where id in (1,2,3,4); #查看数据表中指定多个列的一个范围的数据 \ in(1,2,3,4) 列出在指定行内的所有数据
20、select id,name from test1 where id not in (1,2,3,4); #查看数据表中指定多个列的一个范围的数据 \ not in(1,2,3,4) 列出不在指定行内的所有数据
21、select * from tablename where 列名='值' and 列名=值; #查看数据表中同行的指定多个列下指定名称的值,如果符合就会返回,不符合就不会返回值
22、select * from test1 where name like 'x%'; #列出数据表中所有以x开头的数据
23、select * from test1 where name like '%x%' ; #列出数据表中所有中间含有x的数据
24、select * from test1 where name like '%x'; #列出数据表中所有以x结尾的数据
25、select * from test1 limit 2,2; #列出数据表中指定行后面指定行数的数据
26、select * from tablename limit 5; #tablename就是表名,数字 5 就是要取几行数据
27、select * from tablename limit offset(4),5; #offset就是偏移量,意思就是从第几行开始,数字 5 就是要取几行数据
28、select * from tablename order by age; #将列表中的数据通过age来进行升序排序,后面有asc和desc两个参数,如果不写,默认按照升序进行排序
29、select * from tablename order by age asc; #acs就是按照升序 排列
30、select * from tablename order by age desc; #desc就是按照降序排列
31、select * from tablename order by age desc,id asc; #优先按照age降序排列,如果age有相同的,就按照id进行升序排列
32、select count(id) as cnt,age from tablename group by age; #分组age并且计算这个组相同的条件的数量
33、select count(id) as cnt,age from tablename group by age having cnt < 2; #查询tablename表中age列然后计算相同age值的数量并且查找相同age数量<2的数据
34、select count(id) as cut,age from tablename where id > 6 group by age having cnt < 2 ;#查找tablename表中age列,且id列>6的值,并且分组,且计算相同的数量,查找相同数量<2的数据
连表查询(做好外键后查询关联)
35、select * from tablename1 inner join tablename2 on tablename1 .外键_id=tablenam2.id #将两张表的值所有列的值全部获取
36、select tablename1.列名, tablename2.列名 from tablename1 inner join tablename2 on tablename1.外键_id=tablename2.id #查询获取的不是id,而是值对应的值
37、select * from tablename1 left join tablename2 on tablename1.外键_id=tablename2.id #做好外键后查看对应的值,这个指令会将表对应表全部获取,左边的表数据全部显示
38、select * from tablename1 right join tablename2 on tablename1.外键_id=tablename2.id #做好外键后查看对应的值,这个指令会将表对应表全部获取,右边的表数据全显示
新建
1、tee D:\mysql.txt #建立一个数据库操作过程的记录文件,将数据库的所有操作记录在指定文件下,名称和路径可以自定
2、create database db1 default charset utf8; #建立db1数据库
3、create table test1( # 新建表的语句
#这里可以加注释,就是# + 内容
id int unsigned auto_increment primary key, #unsigned 就是类型,做外键的时候这个类型一定要一样 \ auto_increment就是自增的意思 \ primary key就是定义成主键
name char(32) not null default '',
age int #最后一列不能有逗号,有逗号会报错
) charset=utf8; #这里括号后面必须有分号,这个语法格式是新建数据表的固定语法,最后也可以加个charset utf8(加不加都可)
PS:创建数据表的固定格式,包括约束和数据类型
4、constraint depe_id foreign key user('deperment') references depertment('id') #创建一个外键的语句格式,这个条件实在创建表的时候使用的
PS:depe_id(就是外键的名字,自定义) \ user就是表的名字(需要加约束的列名) \ depertment 就是外键表的名字(外键表的id列)
5、 alter table tablename add foreign key(外键名) references tablename2(外键关联的列名) #这个是给已有表创建外键
PS:外键中子表就是使用约束规则的表,父表就是提供规则的表
删除
1、drop database db; # 删除数据库
1、drop table test1; #删除数据表
2、delete from test1; #将数据表(test1)中的数据清空
3、delete from test1 where id = 2 #删除指定数据表(test1)指定行数(id=1就是代表行数为1行)的数据
4、truncate test1 #清空数据表(test1)后将序号格式化自增时候从0开始
5、alter table test1 drop name #删除数据表指定列
增加
1、insert into test1(列名,列名) values(‘值','值'); #插入数据,字符类型要加 ‘’,int类型不需要 ‘’
2、insert into test1(列名) values('值'),('值'),('值'); #一列增加多行值
3、insert into test1(列名,列名) values('值','值'),('值','值'),('值','值'); #多列增加多行值
insert into 是固定语法
db1是要增加数据的表明,括号里就是要增加的列名
values()是和列对应的,括号里写列对应的数据
4、alter table test1 add mingzi varchar(32) not null default ''; # 在数据表中增加列 \ mingzi就是要增加的列名
PS:因为默认值default是空,所以查看的时候都是空的
5、alter table 表名 add column 列名 varchar(20) not null after 列名;#在指定列的后面增加一列
6、alter table 表名 add column 列名 varchar(20) not null first;#在第一列添加新列
修改
1、update test1 set name='bbbb' #直接将执行列名下的数据全部改成指定的值 \ test1就是数据表名 \ name就是列名 \ =后面的就是要改的新名
1、update test1 set name='bbbb' where id=1 #修改指定数据表下指定的列名下指定行数的值 \ id=1 就是指定行数(这个id不是固定,是根据自己写的主键的名称来定义的,就是表第一列的名称)
3、update test1 set name='bbbb',name='aaaa' where id=1 #同时修改多列指定行数的值
4、alter table test1 change name mingzi varchar(32) not null default ''; #修改指定列表下指定列名 \ mingzi就是要更新的名字
5、alter table tablename modify column 列名 类型; #修改列的属性,最后的类型可以是int,int unsigned,char等
事物
1、开启事务: start transaction;
2、A开始转账:update user1 set money=4500 where id=1;
3、B开始收钱:update user1 set monet=5500 where id=2;
4、提交事务: commit;
5、数据错误回滚: rollback
索引
unique(id) # id就是外键被约束的列的名字,意思就是这列内的数据不能重复,也叫唯一约束
unique(id,url) #这个是联合唯一索引
了解知识点
-----------------------------------------------------------------------------------------------------
视图的作用,就是限制查询者指令的权限,限制查询者能够看表的内容
---主表内的数据更新后视图也能同步,但是不能往视图里添加数据,会报错
创建视图:
creat view 视图名 as select name,age from tablename;
查看视图:
select * from 视图名;
删除视图:
drop view 视图名;
更新视图:
先删除视图,再创建视图
-----------------------------------------------------------------------------------------------------
(0)MySQL 的指令(包含了解知识点)的更多相关文章
- 【数据库】7.0 MySQL入门学习(七)——MySQL基本指令:帮助、清除输入、查询等
1.0 help == ? 帮助指令,查询某个指令的解释.用法.说明等.详情参考博文: [数据库]6.0 MySQL入门学习(六)——MySQL启动与停止.官方手册.文档查询 https://www. ...
- MySQL常用指令,java,php程序员,数据库工程师必备。程序员小冰常用资料整理
MySQL常用指令,java,php程序员,数据库工程师必备.程序员小冰常用资料整理 MySQL常用指令(备查) 最常用的显示命令: 1.显示数据库列表. show databases; 2.显示库中 ...
- ASP.NET4.0所有网页指令
ASP.NET网页指令(Page Directive)就是在网页开头的标签声明: <% Page Language="C#" %> 而指令的作用在于指定网页和用户控件编 ...
- MySQL Desc指令相关
MySQL Desc指令相关 2011-08-09 11:25:50| 分类: my基本命令 |举报 |字号 订阅 1.desc tablename; 例如 :mysql> desc jo ...
- 【数据库】6.0 MySQL入门学习(六)——MySQL启动与停止、官方手册、文档查询
1.0 MySQL主要有四种启动方式:直接启动.安全启动.服务启动.多实例启动. 直接启动: 服务器启动: 安全启动(最常用): 多实例启动: 2.0如何获得MySQL帮助 2.1官方手册 下面提供百 ...
- 【数据库】1.0 MySQL入门学习(一)——常识性知识
1.0 什么是MySQL(官方发音 My Ess Que Ell)? 是一个快速.多线程.多用户和强壮的SQL数据库服务器,SQL是世界上最流行的标准化数据库语言. 名字来源:共同创办人Monty W ...
- Ubuntu Mysql 常用指令
mysql 常用指令及中文乱码解决 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: ...
- mysql判断是否包含某个字符的方法
mysql判断是否包含某个字符的方法用locate 是最快的,like 最慢.position一般实战例子:select * from historydatawhere locate('0',open ...
- mysql 基础指令/命令
1.连接Mysql 格式: mysql -h主机地址 -u用户名 -p用户密码1.连接到本机上的MYSQL.首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root - ...
- Mysql下Limit注入方法(此方法仅适用于5.0.0<mysql<5.6.6的版本)
SQL语句类似下面这样:(此方法仅适用于5.0.0<mysql<5.6.6的版本) SELECT field FROM table WHERE id > 0 ORDER BY id ...
随机推荐
- Weka中数据挖掘与机器学习系列之数据格式ARFF和CSV文件格式之间的转换(五)
不多说,直接上干货! Weka介绍: Weka是一个用Java编写的数据挖掘工具,能够运行在各种平台上.它不仅提供了可以直接用于数据挖掘的软件,还提供了src代码,使用者可以修改源代码,进行二次开发. ...
- Win10系列:VC++媒体播放
媒体播放包括视频播放和音频播放,在开发Windows应用商店应用的过程中可以使用MediaElement控件来播放视频文件和音频文件.本节将通过一个具体的示例介绍如何使用MediaElement控件来 ...
- learning ddr DLL-off mode
- python 学习 map /reduce
python 内建了map()和reduce()函数 map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回. ...
- 首次编译Java小程序
public class helloworld { public static void main(string[] args) { system.out.println("hello wo ...
- 通过eclipse创建项目
基于eclipse的Java文件:项目(project)<类(class)<方法(method),即方法method必须基于class, class必须基于project. 项目是程序的源 ...
- Linux3.10.0块IO子系统流程(4)-- 为请求构造SCSI命令
首先来看scsi_prep_fn int scsi_prep_fn(struct request_queue *q, struct request *req) { struct scsi_device ...
- 对称加密-java实现
主要步骤如下: 1.利用SecretKeyFactory.getInstance("加密算法")创建密钥工厂,加密算法如"DES","AES" ...
- window.setTimeout和window.setInterval的区别,及用其中一个方法记录时间。
window.setTimeout(语句,时间)是在多久之后执行语句,语句只执行一次. window.setInterval(语句,时间)是每隔多久执行一次语句,语句循环执行. <!DOCTYP ...
- python scrapy 数据处理时间格式转换
def show(self,response): # print(response.url) title = response.xpath('//main/div/div/div/div/h1/tex ...