MySql基本学习知识点:
1.Mysql的简介:
(1):常识:
|
(2):基本安装信息:
|
(3):安装mysql错误操作:
·手动删除mysql安装目录 ·重新运行配置向导MySQLInstanceConfig.exe ·删除C:\ProgramData\MySQL目录 |
2.Mysql命令:
(1).连接数据库:
|
(2).修改密码:
(3).添加新用户:
(4.1).创建数据库:
|
(4.2).显示数据库:
|
(4.3).删除数据库:
|
(4.4).连接数据库:
|
(4.5).当前选择的数据库:
|
(5.1).创建数据表:
命令:create table <表名> ( <字段名1> 例如,建立一个名为MyClass的表,
|
(5.2).删除数据表:
|
(5.3).表插入数据:
|
(5.4).查询表中的数据:
|
(5.5).删除表中的数据:
命令:delete from 表名 where 表达式 |
(5.6).修改表中数据:
|
(5.7).增加字段:
|
(5.8).修改表名:
|
(6).备份数据库:
|
(7).一个建库和建表的实例:
|
3.数据类型
· 数值类型:
|
4.SQL语句语法:
数据操纵语言针对表中的数据,而数据定义语言针对数据库或表 |
create database school; /*创建数据库*/ show databases; /*显示所有数据库select database()*/ use school; /*指定默认数据库*/ create table student( /*创建表*/ id int(10) primary key name varchar(8), sex char(1), score float(6,2) ); show tables; /* 显示指定表结构show columns describe student; show create table student; /*显示建表sql语句*/ drop table student; drop database school; |
insert into student values("张三", "t",87.5); insert into student values(null,"张三","t",87.5); //insert into student (name,sex,score) select * from student; insert into student values(null,"李四","男",89); alter table student modify sex char(2); insert into student values(null,"李四","男",89); select * from student; update student set sex ="女"; select * from student; update student set sex="男" where id=1; select * from student; update select * from student; delete from student where name="王五"; select * from student; delete from student; select * from student; |
|
alter table stu drop birthday; |
create table person( id int primary key, name varchar(6), sex char(2), age insert into person values(1,"张三","男",45); insert into person values(2,"李四","男",32); insert into person values(3,"王五","女",32); create table pet( id name varchar(6), masterid int, primary key(id), constraint fk foreign key (masterid) ); |
limit是每页显示的条数. |
5.导入导出:
|
6.mysql数据库的内连接与外连接的区别:
内连接指的是把表连接时表与表之间匹配的数据行查询出来,就是两张表之间数据行匹配时,要同时满足ON语句后面的条件才行。 左连接的意思是,无论是否符合ON语句后面的表连接条件都会把左边那张表的记录全部查询出来,右边的那张表只匹配符合条件的数据行。右连接则与之相反(这里同样OUTER 可以省略 |
7.MySql的事务处理:
MySQL 事务MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务!
一般来说,事务是必须满足4个条件(ACID)::原子性(Atomicity,或称不可分割性)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability)。
在 MySQL 命令行的默认设置下,事务都是自动提交的,即执行 SQL 语句后就会马上执行 COMMIT 操作。因此要显式地开启一个事务务须使用命令 BEGIN 或 START TRANSACTION,或者执行命令 SET AUTOCOMMIT=0,用来禁止使用当前会话的自动提交。 事务控制语句:
MYSQL 事务处理主要有两种方法:1、用 BEGIN, ROLLBACK, COMMIT来实现
2、直接用 SET 来改变 MySQL 的自动提交模式:
|
数据库事务隔离级别 数据库事务的隔离级别有4个,由低到高依次为Read uncommitted 、Read committed 、Repeatable read 、Serializable ,这四个级别可以逐个解决脏读 、不可重复读 、幻读 这几类问题。 √: 可能出现 ×: 不会出现
注意:我们讨论隔离级别的场景,主要是在多个事务并发 的情况下,因此,接下来的讲解都围绕事务并发。 Read
|
8.MySql数据库索引:
|
9.MySql注入:
所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。 我们永远不要信任用户的输入,我们必须认定用户输入的数据都是不安全的,我们都需要对用户输入的数据进行过滤处理。 |
防止SQL注入,我们需要注意以下几个要点: 1.永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式,或限制长度;对单引号和 双"-"进行转换等。 2.永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。 3.永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。 4.不要把机密信息直接存放,加密或者hash掉密码和敏感的信息。 5.应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装 6.sql注入的检测方法一般采取辅助软件或网站平台来检测,软件一般采用sql注入检测工具jsky,网站平台就有亿思网站安全平台检测工具。MDCSOFT |
应对方法: 1.mysql_escape_string() 转义特殊字符((PHP 4 下列字符受影响: \x00 //对应于ascii字符的NULL \n //换行符且回到下一行的最前端 \r //换行符 \ //转义符 ' " \x1a 如果成功,则该函数返回被转义的字符串。如果失败,则返回 false。 2.addslashes(): 函数返回在预定义字符之前添加反斜杠的字符串 预定义的字符有: 单引号(') 双引号(") 反斜杠(\) NULL 3.prepared statements(预处理机制) |
MySql基本学习知识点:的更多相关文章
- Java编程学习知识点分享 入门必看
Java编程学习知识点分享 入门必看 阿尔法颜色组成(alpha color component):颜色组成用来描述颜色的透明度或不透明度.阿尔法组成越高,颜色越不透明. API:应用编程接口.针对软 ...
- MySQL事务学习-->隔离级别
MySQL事务学习-->隔离级别 6 事务的隔离级别 设置的目的 在数据库操作中,为了有效保证并发读取数据的正确性,提出的事务隔离级别. 数据库是要被广大客户所共享访问的,那么在数据库操作过程中 ...
- MySQL数据库学习笔记(十二)----开源工具DbUtils的使用(数据库的增删改查)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- MySQL数据库学习笔记(十)----JDBC事务处理、封装JDBC工具类
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- Mysql事件学习
出自:http://blog.chinaunix.net/uid-20639775-id-3323098.html Mysql事件学习 在系统管理或者数据库管理中,经常要周期性的执行某一个命令或者SQ ...
- Mysql数据库学习笔记之数据库索引(index)
什么是索引: SQL索引有两种,聚集索引和非聚集索引,索引主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间. 聚集索引:该索引中键值的逻辑顺序决定了表中相应行的物 ...
- MySQL数据库学习: 01 —— 数据库的概述
壹 概述 一 了解SQL 1.1 数据库基础 1.1.1 什么是数据库 数据库(database)保存有组织的数据的容器(通常是一个文件或一组文件). 易混淆:人们常常用“数据库”这个词语来代表他们使 ...
- 一个很好的MySQL在线学习平台
一个很好的MySQL在线学习平台 https://www.techonthenet.com/sql/
随机推荐
- Java对象的大小及应用类型
基础类型数据的大小是固定的,对于非基本类型的java对象,其大小就值得商榷了. 在java中一个空Object对象的大小是8byte,这个大小只是保存堆中没有任何属性的对象的大小,看下面的语 ...
- iOS多线程---NSOperation的常用操作
1.最大并发数: - (NSInteger)maxConcurrentOperationCount;- (void)setMaxConcurrentOperationCount:(NSInteger) ...
- Go语言学习笔记(4)——数组和切片
1 数组的特点: 长度固定.元素数据类型相同.下标从0开始 1.1 声明和初始化: var array_name [size] type var arr1 [10] float32 ...
- POJ 2243
#include <iostream> #include <queue> using namespace std; ][] = {-,-,-,,,-,,,,-,-,-,,,-, ...
- RabbitMQ : 几种Exchange 模式
AMQP协议中的核心思想就是生产者和消费者隔离,生产者从不直接将消息发送给队列.生产者通常不知道是否一个消息会被发送到队列中,只是将消息发送到一个交换机.先由Exchange来接收,然后Exchang ...
- Java之集合(十)EnumMap
转载请注明源出处:http://www.cnblogs.com/lighten/p/7371744.html 1.前言 本章介绍Map体系中的EnumMap,该类是专门针对枚举类设计的一个集合类.集合 ...
- EF基础知识小记六(使用Code First建模自引用关系,常用于系统菜单、文件目录等有层级之分的实体)
日常开发中,经常会碰到一些自引用的实体,比如系统菜单.目录实体,这类实体往往自己引用自己,所以我们必须学会使用Code First来建立这一类的模型. 以下是自引用表的数据库关系图: ok,下面开始介 ...
- C#设计模式系列目录
http://www.cnblogs.com/libingql/archive/2012/04/16/2451608.html 抽空,学习,加强!
- 使用Topshelf部署Windows服务
新建一个控制台应用程序,使用Nuget安装TopShelf: nuget Install-Package Topshelf 测试代码: 在Main中输入: //FileInfo fi = new Fi ...
- Postman—脚本介绍
前言 Postman包含一个基于Node.js的强大的运行时环境,它允许我们为请求和集合添加动态行为.这使的我们可以编写测试用例,构建可包含动态参数的请求,在请求之间传递数据等等. 我们可以在流程中以 ...