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

  • 相关阅读:
    SpringCloud五大组件
    js获取系统信息
    java深入
    java实现群头像合成
    .net读取上传apk文件的包名、软件名称、logo解决方法
    SignalR 跨域设置
    Html5 Video 实现方案
    JS 日期工具类-基于yDate
    图片下载本地缓存时间戳显示图片方法
    一个Notification 进度条插件(android,NJS实现,直接就可使用)
  • 原文地址:https://www.cnblogs.com/feiyudemeng/p/8342877.html
Copyright © 2020-2023  润新知