mysql

Posted 老螃蟹

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql相关的知识,希望对你有一定的参考价值。

  1. 数据库概念?

a)         它是一个仓库。方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上, 通过数据库管理系统,有效地组织和管理存储在数据库中的数据

  1. 数据库的五个基本概念:

a)         数据库服务器

b)         数据库

c)         数据表

d)         数据字段

e)         数据行

  1. 命令行开启关闭事物的命令
  2. SQL分类

a)         数据定义语言DDL data defintion Language

b)         数据操作语言 DML data Manipulation Language (delete ,update, select)

c)         数据控制语言 DCL data Control language

d)         数据查询语言

  1. DDL

a)         数据库操作

                         i.              Show databases       展示数据库

                       ii.              Use mysql       使用数据库

                      iii.              Show tables     展示表

                      iv.              Drop database xxx  删除数据库

b)         数据表操作

                         i.              Create table xx(xxx varchar(32), xxxx varchar(23));        创建表

                       ii.              Show create table t_student  展示表

                      iii.              Desc t_student        展示表结构

                      iv.              Drop table t_student       删除表

                       v.              Alter table t_student rename  tt  表的重命名

 

c)         数据字段操作

                         i.              Alter table user modify username varchar(64)                 修改字段类型

                       ii.              Create table student(username varchar(32), password  varchar(32) engine = innoDB default charset=utf-8            设置编码

                      iii.              Alter table student add column name varchar(32) 添加表字段

                      iv.              Alter table student drop column name                      删除表字段

                       v.              Alter table student change password passwd varchar(32)  修改字段名

                                                         

  1. DML

a)         插入数据

                         i.              Insert  into  t_table(x, b, x) values(  );

                       ii.              Insert  into  t_table value( )

b)         查询记录

                         i.              Select * from t_table

                       ii.              Select 字段 from  t_table

                      iii.              Select distinct 字段 from t_table

                      iv.              Select  word  from  t_table  where 条件 and  条件

                       v.              Select  字段 from  t_table  order by  word asc     (desc)

                      vi.              Select  word  from  t_table  limit  number

c)         多表联合查询

                         i.              首先掌握内外连接,内连接:将表中存在联结关系的字段形成记录集的联结

  1. Select  t.nane, t.age, c.name  from  teacher  t, classes  c  where  t.id = c.teacher_id

                       ii.              外链接: 会选出其他不匹配的记录,分为外左联结,和外右联结

  1. 分为左外连接, 和右外连接
  2. Select  t.name, t.age, c.name  from  teacher  t  right  join classes  c  on  t.id = c.teacher_id;
  3. Select  t.name. t.age, c.name  from  teacher  t  left  join   classes  c  on  t.id =c.teacher_id;

d)         更新记录

                         i.              Update  teacher  set  salary = salary + 1000, age = 19  where id= 1;

e)         删除记录

                         i.              Delete from  t_table  where id = 1;    删除id为1的

                       ii.              TRUNCATE  TABLE   清空数据

 

  1. DCL

a)         添加权限

                         i.              需要知道的一点是: 关于用户的任何操作其实都是操作‘MySQL’ 这个数据库下面的user表,MySQL不是指database manager 而是真的  database

                       ii.              Create user  ‘xiaoming’@localhost identified by ‘root’

                      iii.              grant  select, insert, delete on test.*to ‘xiaoming’@’localhost’identified by ‘root

                      iv.              revoke  all  on  hibernate.*  from  ‘xiaogang’@’localhost’;

                       v.              revoke  select on  *.* from ‘xiaohong’@’localhost’;

                      vi.              drop user xiaohong;

                    vii.              set  password for [email protected] = password(‘123’)

b)         编码问题

                         i.              Set charset default

                       ii.              Set charset gbk

                      iii.              Set charset utf8

c)         数据库备份和恢复

                         i.              Mysqldump –u root –p root hibernate t_user > d:/hello.sql

                       ii.              Mysql –u root –p < C:\backup.sql

 

  1. 数据类型

a)         数值类型

                         i.              Tinyint

                       ii.              Smallint

                      iii.              Mediumint

                      iv.              Int

                       v.              Bigint

                      vi.              Unsigned

                    vii.              Float(m,d)

                   viii.              Double(m,d)

                      ix.              Decimal(m,d)

b)         字符串类型

                         i.              Char

                       ii.              Varchar

                      iii.              TINYBLOB

                      iv.              TINYTEXT

                       v.              BLOB

                      vi.              TEXT

                    vii.              MEDIUMBLOB

                   viii.              MEDIUMTEXT

                      ix.              LONGBLOB

                       x.              LONGTEXT

                      xi.              VARBINARY

                    xii.              BINARY

c)         日期时间类型

                         i.              DATE

                       ii.              TIME

                      iii.              DATETIME

                      iv.              TIMESTAMP

                       v.              YEAR

d)         复合类型

e)         无定义类型

  1. 表引擎

a)         MyISAM   不支持事物,表锁, 但是效率很高

b)         InooDB 支持事物,行锁, 外键,为了巨大数据量时候最大性能设计的

  1. 索引

a)         普通索引

                         i.              ALTER TABLE money ADD INDEX(username);

b)         唯一索引

                         i.              ALTER TABLE money ADD UNIQUE(username);

c)         主键索引

                         i.              ALTER TABLE money ADD PRIMARY KEY(id);

d)         全文索引

                         i.              ALTER TABLE money ADD FULLTEXT(content)

                       ii.              为全局需要搜索的字段添加全局索引

e)          

 

 

 

 

 

  1. jdbc的四大金刚

a)         DriverManager  用于注册驱动

b)         Connection 表示与数据库创建连接

c)         Statement 操作数据库的语句

d)         Result  sql语句的执行结果集

  1. jdbc的操作步骤

a)         加载驱动

b)         创建连接对象

c)         创建statement对象

d)         通过statement对象执行sql语句

e)         获取执行结果

  1. jdbc实现增删改查

a)          

  1. 资源的正确关闭

a)         关闭的顺序和开启的顺序要相反

  1. Sql注入问题

a)         可以编写一个text标签, 通过form表单去获取数据然后展示数据,不经过筛选的, 然后显示结果证明被sql注入了, 然后我们用根据结果进行思考过滤的方式, 也可以用框架进行筛选

  1. 创建工具类

a)         工具类提供的是开启连接和关闭连接的操作, 之后我们也可以进行sql语句的分类, 变成只有select和update的区别

  1. 分层的好处

a)         让耦合度降低。让程序独立性,功能的单一性增强, 让代码更加好维护。.

 

 

 

 

  1. 分页,要理解为什么要分页,分页的实现原理

a)         一次性显示的数据减少, 让用户看的舒服一点

b)         也让服务器负荷减低

  1. 批处理,有三个关键的方法实现

a)         Statement.AddBatch

b)         executeBatch

c)         clearBatch

  1. 事务,有三种业务

a)         开启事务,回滚事务, 提交事务

b)         Start transaction   --connection. setAutoCommit(false)

c)         Connection.Commit

d)         Rollback

  1. 事务的特点

a)         原子性:原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生要么都不发生。

b)         一致性:一致性是指在事物开始之前和事物结束以后,数据库的完整性约束没有被破坏

c)         隔离性:多个事务并发访问时, 事务时间是隔离的,一个事物不应该影响到其他事物运行效果

d)         持久性:是指一个事务一旦提交那么对于数据库中数据的改变就将会是永久的。

  1. 什么是脏读,不可重复读, 虚读(幻读)

a)         脏读:一个事务读到另一个事务中未提交的数据

b)         不可重复读(强调单个,强调修改):不可重复读意味着,在数据库访问中,一个事务范围内两个相同的查询却返回了不同的数据,这是由于查询的时候,系统中的其他事物修改的提交所引起的

c)         幻读(虚读)(强调删除和增加,强调多个数据):是指事务不是独立执行的时候发生热一种现象, 例如第一个事务对表中的数据进行修改,这种修改设计到表中全部数据行。 同时,第二个事务也修改这个表中的数据, 这种修改是向表中插入一行心数据。那么以后就会发生操作第一个事务的用户发现表中还有没有修改的数据行, 就好像发生了幻觉一样 

 

  1. 隔离级别

a)         Read UNCOMMITED 脏读 不可重复读 幻读

b)         READ COOMMITED                不可重复读 幻读

c)         Reapeatable READ                                幻读

d)         Serializable

  1. Mysql和oracle的默认级别

a)         Mysql 是4级 也就是 readCommmited

b)         ORACLE  是2级 也就是 READ COMMITED

  1. 数据库连接池

a)         先要存储连接资源(里面用LinkedList<Connection>)

b)         用for循环初始化连接

  1. 模拟实现数据库连接池
  2. 连接池规范
  3. DBCP
  4. C3P0
  5. 采用web服务器管理数据源
  6. Clob, Blob

 

以上是关于mysql的主要内容,如果未能解决你的问题,请参考以下文章

MySQLMySQL 一些 使用 案例

MySQL的常用操作更改root密码连接MySQLMySQL常用的命令

MySQLMysql必会语句

MySQLMysql必会语句

MySQLMysql必会语句

mysqlmysql优化