Mysql数据库中的输入命令各类知识总结
1、链接数据库的命令---mysql-u root-p 回车,输入密码//在cmd上输入自己的账号密码
2、查看:show databases;
3、创建数据库:create +database+数据库名称+;
4、删除数据库:drop +detabase+数据库名称
5、使用数据库:use +数据库名称
6、查看多张表:show tables
7、*代表所有
8、也可以查看部分select 属性,属性 from 表名
9、查看表格内数据:select +*+from+表格名称
10、删除表格:drop table +表格名称
11、修改表格:update+table+表格名称+
12、创建表:create+table+表名+(属性名 数据类型+,+属性名 数据类型){字符串的数据类型varchar(长度)}
13、删除表格内一行数据:delete +from+表名(这样会删除所有)
14、加条件的:delete +from+表名+where+id=2(条件);
15、update+表名+set+属性名=’新的名称(修改以后的值)‘,+属性名=’新的属性名‘{都修改}
update+表名+set+属性名=’新的名称(修改以后的值)‘,+属性名=’新的属性名‘+where +id=1(一个属性)
16、查看表格详细结构:show create table + 表名
17、查看表格基本结构:desc+表名
18、修改表名 :语法:alter table+表名+rename+新表名
例子:alter table test2 rename aaaaa
19、修改字段,修改属性 :语法:alter table +表名+change+属性名+新的属性名+新的数据类型
例子: alter table test2 change code id int;
20、
增加字段,增加属性
:语法:alter table +表名+add+属性名+数据类型
例子:alter table test2 add age int;
21、删除字段 : 语法:alter table +表名+drop+字段名称
例子:alter table test2 drop age;
22、最大值max():例子:select max(age) from student ;[可以查询,但是不知道是谁]
select * ,max(age) from student;[*号不可以放在max后,会报错]这种写法不会报错但是信息是乱的,需要整合一下
正确写法:使用子查询
第二步select * from student where age=第三步加括号(
第一步select max(age) from student );
23、子查询:将一条sql语句的查询结果作为另一条语句的查询条件:
先写出查询结果后将其作为条件
例子:第二步select * from student where age=第三步加括号(
第一步select max(age) from student );
24、连接查询/多表查询
产生原因,因为数据内有多条重复,例如class中有一年级,二年级,三年级,等等
所以将其重新建立一个表
例子:建立一个class表有id属性,student中有class属性,student.class=class.id
select *from student ,class where student.class=class.id
25、笛卡儿积现象:数据显示时不准确,会比原来的数据多几倍的样子:
例子:select * from student , class;//会出现笛卡儿积现象
解决方法:select* from student , class where student.class = class.id;
26、内连接查询:select * from 表名+ inner join +表名+on 两张表的关联关系
查询多张表的,无主次表之分,放前放后无关
例子:select * from student inner join class on student.class=class.id;
如果两张表没有重复关系的话可以将后面的表明省略
select * from student inner join class on class="id";
27、左外联查询
特点:以左侧的表为主表,有主次之分
公式:select * from 主表 left join 次表 on 两表之间的关系
例子: select * from student s left join class c on s.class=c.id;
28、右外联查询
特点:以右侧的表为主表,有主次之分
公式:select* from 次表right join 主表 on 两表之间的关系
例子:select * from student s right join class c on s.class=c.id
29、
分页查询关键字limit 起始行数 【从0开始】+每页显示个数(单位)
计算起始数公式(当前页-1)*分页单位
例子:select * from student limit 6,3;
在这里也可以不用函数求出最大最小值,因为排序可以从大到小或从小到大
取第一条数据
select * from student order by age desc limit 0,1;取最大值
30、分组条件关键字having
位置加在分组的后面group by后
例子:select count (*)from student group by class having class='2'
统计的是class=1的有多少人
31、
条件查询/模糊查询关键字like
select * from student where name like 'aaaa';
也可以加%表示0-多个字符下划线_相当于占位符
例子:select * from student where name like'_s'___;一个下划线表示一个字符
select * from student where name like '%s'%
32、开始一个事务Begin或者 start transaction
33、事务回滚Rollback
事务确认Commit
自动提交
手动提交
SET AUTOCOMMIT=0 禁止自动提交
SET AUTOCOMMIT=1 开启自动提交
默认自动提交
34、索引
选择索引的数据类型:也就是加在哪个列上合适
选择标识符
应用
索引的类型1,单列索引
主键索引
唯一索引
普通索引
修改语句时,在操作带有索引的列时,所消耗的时间会很长,
当你需要查询操作多,并且数据量较多时,应该考虑加索引
如果你的需求是更新和添加较多,这种情况不加索引 ,但是如果你的索引不加在要修改的语句上,而是加在其他不进行操作列上,也会适当降低时间
索引的类型2,组合索引
全文索引
35、索引的类型1,单列索引
主键索引
唯一索引
普通索引
修改语句时,在操作带有索引的列时,所消耗的时间会很长,
当你需要查询操作多,并且数据量较多时,应该考虑加索引
如果你的需求是更新和添加较多,这种情况不加索引 ,但是如果你的索引不加在要修改的语句上,而是加在其他不进行操作列上,也会适当降低时间
36、
引擎的类型
ISAM(MySQL最原始的引擎,使用较少)
MyISAM(以前默认使用该引擎)不支持外键
MyISAM适合:
(1)做很多count 的计算;
(2)插入不频繁,查询非常频繁;
(3)没有事务。
HEAP(存储数据以缓存的形式进行存储)
InnoDB(目前版本默认使用该引擎)
InnoDB适合:
(1)可靠性要求比较高,或者要求事务;
(2)表更新和查询都相当的频繁
37、修改引擎
创建表格时:
create table tableName(id int,name varchar(20),age int) type = 数据库引擎
表格修改:
alter table tableName engine=数据库引擎
alter table student engine myisam;等号有无都可
38、查看引擎
show create table tableName;
在可视化工具里在选项里切换引擎但是不保存,之后在可视化工具里sql预览看怎么写
39、如何创建
MySQL存储过程创建的格式:
CREATE PROCEDURE 过程名 ([过程参数[,...]])
[特性 ...] 过程体
例子:
CREATE PROCEDURE proc1()
BEGIN
SELECT COUNT(*) INTO s FROM user;【一定要加;要不然会和end一起调用】
END
例子:
create procedure test()
begin
select * from user_tb;
end
40、如何调用
调用存储过程:
call 存储过程名称(参数)
例子:call test();
41、如何删除
删除存储过程:
drop PROCEDURE 存储过程名称
例子:
drop procedure test;
42、存储过程参数
创建带有输入参数的存储过程
create procedure test2 (in id int)
begin
select * from user_tb where user_tb.id = id;
end
调用
call test2(2);
带有输出参数的存储过程
create procedure test3(out name varchar(20))
begin
select * from user_tb where id=0;
end
创建带有输入输出参数的过程
create procedure getNameByid(inout idname varchar(20))
begin
select user_name into idname from user_tb where id=idname;
end
调用
call getNameByid(?);
例二
create procedure test4(inout name varchar(20))
begin
select user_name into name from user_tb where user_name = name;
select name,'你好'
end
drop procedure test4
set @name='admin';
call test4(@name);
43、存储过程流程控制
then就相当于eclipse中{}
exists是否存在。是否为空
endif 是if语句结束语句
while 中do后就是循环体{}
while流程控制
create procedure test(num int)
begin
while num<10 do
select num;[输出]
set num = num+1;
end while;
end
call test (6);
44、存储过程通道
con.propareCall("call 存储过程名称");
45、连接数据库
基本步骤:
准备链接数据库参数 链接数据库参数,账号和密码
数据库地址url
* 加载驱动private static String driver="com.mysql.jdbc.Driver";
Class.forName(driver);
* 获得数据库连接2种
* 1获得自动提交事务的链接
con = DriverManager.getConnection(url, username, password);
* 创建状态通道
sta = con.createStatement();
* 基于状态通道的查询
rs = sta.executeQuery(sql);
* 基于状态通道的修改
* 创建预装他态通道
psta = con.prepareStatement(sql);//sql不完整,通过参数传
* 基于预状态通道的查询
* 基于预状态通道的修改
* 2.获得手动提交事务的的链接
con.setAutoCommit(false);
*创建状态通道
*基于状态通道的查询
*基于状态通道的修改
*创建预状态通道
*基于预状态通道的查询
*基于预状态通道的修改
*提交事务的方法
*回滚事务的方法
*关闭资源
链接数据库步骤:
1.找到mysql架包
2.在项目中创建一个文件夹将架包复制进去
3.对复制进去的架包进行构建路径
使用jdbc开发数据库应用程序
Driver
Connection
Statement
ResultSet
Statement
ResultSet
Connection
Statement
ResultSet
Statement
ResultSet
Jdbc应用程序使用Driver接口加载一个合适的驱动程序,使用Connection接口连接到数据库,使用Statement接口创建和执行sql语句,如果语句返回结果,那么使用ResultSet接口处理结果,注意,有一些语句不返回结果,例如,sql数据定义语句和sql数据修改语句
访问数据库的类型java程序主要采用下列步骤
1)加载驱动程序
在连接数据库之前,必须使用下面的语句,加载一个合适的驱动程序
class.forName("jdbcDriverClass")驱动程序是一个实现接口java.sql.Driver
2)建立连接
为了连接到一个数据库,需要使用DriverManage类中的静态方法getConnection
Connection connection = Drevermanage.getConnection(databaseurl)
其中databaseURL是数据库在Internet上的唯一标识符
jdbc:mysql://localhost:3306/test
3)创建语句
如果把Connection对象想象成一条连接程序和数据库的缆道,那么Statement的对象可以看做一辆缆车,他为数据库传输sql语句用于执行,并把运行结果返回程序,一旦创建了connection对象就可以创建执行sql语句的语句,
Statement statement = connection.createStatement()
4)执行语句
可以使用方法executeUpdate(String sql)来执行更新语句
可以使用方法executeQurey(String sql)来执行查询语句
5)处理ResultSet
结果集ResultSet维护一个表,该表的当前行可以获得,当前行的初始位置是null。可以使用next方法移动到下一行,可以使用各种getter方法从当前行获取值,例如,下面给出的代码显示前面sql查询的所有结果
while(resultSet.next())
system.out.println(resultSet.getString(1)+""+resultSet.getString(2)+""+resultSet.getString(3));
第一次执行next()方法时将当前行设置为结果集中的第一行,接着再调用next()方法将当前行设置为第二行,然后是第三行,以此类推,直至最后一行
一个Java交流平台分享给你们,让你在实践中积累经验掌握原理。如果你想拿高薪,想突破瓶颈,想跟别人竞争能取得优势的,想进BAT但是有担心面试不过的,可以加我的Java学习交流群:642830685
注:加群要求
1、大学学习的是Java相关专业,毕业后面试受挫,找不到对口工作
2、在公司待久了,现在过得很安逸,但跳槽时面试碰壁。需要在短时间内进修、跳槽拿高薪的
3、参加过线下培训后,知识点掌握不够深刻,就业困难,想继续深造
4、已经在Java相关部门上班的在职人员,对自身职业规划不清晰,混日子的
5、有一定的C语言基础,接触过java开发,想转行的
Mysql数据库中的输入命令各类知识总结的更多相关文章
- MySQL数据库中delimiter的作用概述
以下的文章主要是向大家描述的是MySQL数据库中delimiter的作用是什么?我们一般都认为这个命令和存储过程关系不大,到底是不是这样的呢?以下的文章将会给你相关的知识,望你会有所收获. 其实就是告 ...
- Python爬取招聘信息,并且存储到MySQL数据库中
前面一篇文章主要讲述,如何通过Python爬取招聘信息,且爬取的日期为前一天的,同时将爬取的内容保存到数据库中:这篇文章主要讲述如何将python文件压缩成exe可执行文件,供后面的操作. 这系列文章 ...
- MySQl数据库常用的DOS命令
MySQl数据库常用的DOS命令.. 这是第一部分.. 数据库的连接信息:jdbc:mysql://localhost:3306/shxtcom.mysql.jdbc.Driver /*jdbc:sq ...
- 初识MySQL数据库的各种CMD命令窗口下的指令
今天我们就来看一下数据库的各种命令,以下命令全部是从CMD命令窗口下的命令行输入指令,首先如果如果输入mysql,系统提示"mysql不是内部命令或外部命令.那么这其实是环境变量没有设置好的 ...
- windows下数据库文件使用脚本同步到linux下的mysql数据库中
1.背景 windows server 2008 下 每天会有 *.sql数据文件 需要上传到linux 中的mysql数据库中 而运维人员是在 windows server 下使用 xshell 连 ...
- MySQL数据库中.SQL文件的导出方式
转自:http://tech.watchstor.com/management-117401.htm 在MySQL数据库中导入SQL文件是件很麻烦的事情,但是这是一项大家非常值得学习的技术,本文就从最 ...
- 安装mysql数据库中的技巧、错误排查
针对解压版本5.7.16(博主使用的这个版本.在某些低版本中部分命令失效) 一.安装.初始化data目录(解压版解压后没有data目录) 安装:配置path环境变量,然后管理员运行命令提示符cmd ...
- Java程序向MySql数据库中插入的中文数据变成了问号
找到mysql的安装目录,修改my.ini文件 (1)如何找到my.ini文件 如果my.ini文件不在MySQL的安装目录下,可能放在隐藏目录,要先去找到ProgramData,(这里要先打开显示隐 ...
- PHP往mysql数据库中写入中文失败
该类问题解决办法就是 在建立数据库连接之后,将该连接的编码方式改为中文. 代码如下: $linkID=@mysql_connect("localhost","root&q ...
随机推荐
- [翻译]C#中异步方法的性能特点
翻译自一篇博文,原文:The performance characteristics of async methods in C# 异步系列 剖析C#中的异步方法 扩展C#中的异步方法 C#中异步方法 ...
- xshell上windows和linux互传文件命令
1.安装lrzsz包: yum install -y lrzsz 2.从windows上传文件到linux服务器: rz 会弹出选择文件窗口,按照提示做就行3.从linux服务器下载文件到本地的win ...
- 机器学习模型解释工具-Lime
本篇文章转载于LIME:一种解释机器学习模型的方法 该文章介绍了一种模型对单个样本解释分类结果的方法,区别于对整体测试样本的评价指标准确率.召回率等,Lime为具体某个样本的分类结果做出解释,直观地表 ...
- weblogic报:java.lang.LinkageError: loader constraint violation in interface itable initialization
原因分析: gdaml服务中依赖org.apache.xerces_2.9.0.v201101211617.jar会产生jar包冲突 解决方法: 项目中的这个jar包删除,并将这个jar包放在服务器中 ...
- IDEA常用智能提示
psvm: 生成代码: public static void main(String[] args) { }
- 使用hash方法切割文件
如果有大型数据文件(如每行为url或者ip或者单词等的),以G为单位的,处理的时候需先切分.普通切分方法直接根据数据条数切分,得到的每个文件大小相近. 但是有时需要将相同数据放到相同文件中.可以使用h ...
- failed to create cublas handle: CUBLAS_STATUS_ALLOC_FAILED 错误解决方法
解决: config = tf.ConfigProto() config.gpu_options.allow_growth = True session = tf.Session(config=con ...
- Kettle使用教程之Job使用
1.Kettle的Job使用十分简单,这里也只是演示比较简单的操作,创建Job 2.点击转换,然后点击浏览,选择转换对象 3.执行按钮,运行该转换 4.如果需要长期的进行定时转换,可以在Job中的st ...
- LoadRunner参数化使用mysql数据源
因为默认是没有mysql驱动的,因此需要在网上下载一个mysql驱动 1. 在网上下载一个是MYSQL数据库的ODBC驱动程序:mysql-connector-odbc-3.51.20-win32.e ...
- iOS 图表工具charts之CandleStickChartView(K线)
关于charts的系列视图介绍传送门: iOS 图表工具charts介绍 iOS 图表工具charts之LineChartView iOS 图表工具charts之BarChartView iOS 图表 ...