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开发,想转行的

原文地址:https://www.cnblogs.com/feiyudemeng/p/8342877.html