当前位置:文档之家› mysql笔记

mysql笔记

mysql笔记
mysql笔记

Mysql数据库

Apache(服务员) php(大厨) mysql(冰柜)

Mysql是瑞典的mysqlAB公司开发的一款中小型关系型数据库管理系统。MysqlAB公司在2008年被Sun(java公司)给收购了

2009年Sun(java公司)被Oracle收购。

Mysql是一款免费数据库,体积小,运行速度快。

主流数据库(SQLserver微软Oracle甲骨文DB2(IBM) mysql) Mysql数据库数据库量一般保持在1000万以内,速度活性可以保持。

Mysql是一款数据库软件,需要被安装在服务器里边。

【数据存储及与mysql数据库系统的关系】

数据如何存放到数据库里边

图书管理信息(图书、借还信息、作者信息)

有一本图书,图书的名字是“php入门”,价格是“45元”,出版社“铁道出版社”,作者“孙书华”,该信息需要被存放到我们的数据库里边。

Php入门45元铁道出版社孙书华(类似在记事本里边存放内容)

在记事本里边存放图书,图书的查询、修改、删除、增加都不容易操作

【访问数据库】

Php流程控制、函数

Mysql基本操作(数据库和数据表的创建和删除)

【mysql操作回顾】

?Mysql -h主机名-u用户名-p密码(登陆mysql数据库) ?Show databases; (查看有多少数据库可供使用)

?Use 数据库名字; (进入数据库、使用数据库)

?Create database 数据库名字; (创建数据库)

?Drop database 库名; (删除数据库)

?Create table (

字段类型,

字段类型

。。。

?) (创建数据表)

?Drop table 表名; (删除数据表)

登录mysql数据库

启动服务

说明mysql命令的没有找到,有相应的程序文件需要被执行。解决:

设置环境变量,让系统自动帮组我们找到mysql命令所对应的执行文件。

注意:

①我们在对数据库进行操作的时候,像创建表、删除表等操作,需要进入指定的数据库,才可以执行操作,否则提示“没有选择数据库”

如果出现以上提示,说明没有选择数据库(use 库名;)

②每条sql语句后边都使用”;”分号结束。(use 选择数据库除外)

【为数据表添加新的记录信息】

一般数据库操作有4种基本操作:数据的增insert、删delete、改update、查select

为“图书”表添加新的数据信息

有一个问题:现在还不知道图书表有什么字段可以供操作。

Insert into 表名values (单域值,单域值,单域值,……);

有几个字段,就写几个单域值,并且它们是一一匹配的。

数据表所有字段信息都要补全

Php入门60 清华出版社韩顺平

Insert into book values (‘P hp入门’,’60’,’清华出版社’,’韩顺平’);

Insert into book values (‘javascript巧妙用法’,’89’,’北大出版社’,’古龙’);

有的时候我们添加数据信息,有的字段不知道是什么值,这就要求我们可以为指定的字符添加数据信息

Insert into 表名(字段,字段,字段) values(单域值,单域值,单域值);

注意:字段与单域值一一匹配。

Insert into book (name,publish,author) values (‘css3.0特性介绍’,’铁道出版社’,’琼瑶’); 可以针对具体字段添加数据信息

( 为什么把代码复制到editplus里边

因为sql语句的标点符号都要求英文输入法的标点符号逗号、引号

在word文档里边输入的标点符号,像单引号是中文输入法的单引号。)

Sql语句有报语法错误:你的sql语句有语法错误,请检查手册看看你的sql语句版本是否支持你的sql语句这样的用法。

【查看数据表的数据】

数据的增insert、删delete、改update、查select

Select * from 表名; //注意from 不要写成form

* 会查询数据表全部字段信息

有的时候我们需要查询指定字段的信息

比如,我们只查询作者的信息或者是书名的信息

Select 字段,字段,字段from 表名;

【删除数据表信息】

数据的增insert、删delete、改update、查select

Delete from 表名;

上边的删除类似“清空”式的删除。

一般我们删除数据,需要指定具体的条件,否则会清空数据表,造成数据库事故。

一般数据库管理员还会使用一种方法,使得数据表的数据被清空

Truncate 表名; #清空数据表

比如:我们只删除“php入门”这本书,其他的图书都保留。这时候sql语句需要有限制条件。

Delete from 表名where 数据记录限制条件;

限制条件:图书的名字等于“php入门”

Delete from book where name=’Php入门’;

价格> 具体值

价格< 具体值

根据删除,我们知道在做“查询”的时候也可以做限制条件。

比如:我想要查询价格大于70元图书的信息。

注意:

在sql语句里边,一般“值”的数据都使用引号给括起来,字段无需引号。

删除数据的时候,要有where条件,否则是清空数据表,造成数据库事故。

【多条件记录操作】

mysql> # 查询图书价格大于50元并且是北大出版社出版

mysql> select * from book where price>50 and publish='北大出版社';

+--------------------+-------+------------+--------+

| name | price | publish | author |

+--------------------+-------+------------+--------+

| javascript巧妙用法| 89 | 北大出版社| 古龙|

| linux常用命令| 95 | 北大出版社| 古龙|

+--------------------+-------+------------+--------+

2 rows in set (0.00 sec)

Sql语句有多种条件做限制,条件间使用“and”连接。

【记录信息修改】

数据的增insert、删delete、改update、查select

Update 表名set 字段=’单域值’where 条件;//只修改指定条件的单个字段信息Update 表名set 字段=’单域值’,字段=’单域值’,字段=’单域值’where 条件;//同时会修改多个字段的信息

Update 表名set 字段=’单域值’; //该用法会把全部信息记录都修改,要小心使用

没有识别字段”pulish”

修改总结:

我们可以修改一个字段,也可以修改多个字段,中间使用”,”逗号分隔。

修改的时候语句有where条件限制,如果没有,则会修改全部信息记录。

【主键使用】

原则上讲每个数据表都应该有主键。

主键就是数据表里边的一个字段。字段里边的信息都是不同,可以唯一确定每条记录。

一般主键的信息我们使用自动自动增长的数字来表示。

主键作用:可以设定数据表里边的每条记录都是唯一的。

生活中也有主键的存在:一个人,名字是“张楚生”,‘男’,‘北京’,‘海淀’,如果一个公司里边有许多“张楚生”存在,并且它们的数据又极为相似,那么如何能区分出来不同的“张楚生”,我么可以通过“身份证号码”来区分不同的人。

一般习惯上使用”id”代表主键,identify 确认、标识。

真正的主键无需我们关心具体的值,它会自动网上增长。

现在我们创建数据表,并且表里边有主键字段。

CREATE TABLE `book` (

`id` int(11) primary key auto_increment,

`name` varchar(32) default NULL,

`price` int(11) default NULL,

`publish` varchar(64) default NULL,

`author` varchar(16) default NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8

Primary key: 表示当前字段是主键

Auto_increment: 主键值会自动增长

Insert into book values (null, 'Php入门','60','清华出版社',' 韩顺平');

//匹配数据表全部字段,包括主键(null表示)

//单域值的顺序是数据表字段的顺序,不要写乱了。

Insert into book values (null, 'javascript巧妙用法','89','北大出版社',' 古龙');

Insert into book (publish,author ,name) values ('铁道出版社','琼瑶', 'css3.0特性介绍'); //设置具体字段信息,可以不用考虑主键

//字段顺序可以自定义安排

Insert into book values (null, 'html精通','30','清华出版社',' 韩顺平');

Insert into book values (null, 'linux常用命令','95','北大出版社',' 古龙');

Insert into book (name,publish,author) values ('jquery高级用法','铁道出版社','琼瑶');

主键是唯一的,不允许重复

我们使用未被占用的主键,后边的主键值在此自动增长。

添加信息记录的“单域值”没有全部匹配上“字段”的数目。

注意:

如果一个数据表有主键,我们不用关心它的值,主键的值会自动增长并赋予。主键是唯一的,不允许重复主键值存在

我们可以使用未被占用的主键。之后的主键值会在此基础上自定增长。

原则上每个数据表都有一个主键。

总结:

Mysql数据库记录的“增”、“删”、“改”、“查”

增加insert

删除delete

修改update

查询select

修改、查询、删除:可以使用where限制条件

增加:可以增加全部字段信息、也可以增加指定字段信息。

Where 条件设置多个条件使用and进行连接

Update修改:如果同时修改多个字段信息,中间使用”,”逗号连接

主键使用。

作业回到到论坛里边。

我的MYSQL学习心得

我的MYSQL学习心得 一、使用视图的理由是什么? 1.安全性。一般是这样做的:创建一个视图,定义好该视图所操作的数据。之后将用户权限与视图绑定。这样的方式是使用到了一个特性:grant语句可以针对视图进行授予权限。 2.查询性能提高。 3.有灵活性的功能需求后,需要改动表的结构而导致工作量比较大。那么可以使用虚拟表的形式达到少修改的效果。 这是在实际开发中比较有用的 例子:假如因为某种需要,a表与b表需要进行合并起来组成一个新的表c。最后a表与b表都不会存在了。而由于原来程序中编 写sql分别是基于a表与b表查询的,这就意味着需要重新编写大量的sql(改成向c表去操作数据)。而通过视图就可以做到不修改。定义两个视图名字还是原来的表名a和b。a、b视图完成从c表中取出内容。

说明:使用这样的解决方式,基于对视图的细节了解越详细越好。因为使用视图还是与使用表的语法上没区别。比如视图名a,那么查询还是"select * from a"。 4.复杂的查询需求。可以进行问题分解,然后将创建多个视图获取数据。将视图联合起来就能得到需要的结果了。 视图的工作机制:当调用视图的时候,才会执行视图中的sql,进行取数据操作。视图的内容没有存储,而是在视图被引用的时候才派生出数据。这样不会占用空间,由于是即时引用,视图的内容总是与真实表的内容是一致的。 视图这样设计有什么好处?节省空间,内容是总是一致的话,那么我们不需要维护视图的内容,维护好真实表的内容,就可以保证视图的完整性了。 二、通过更新视图实现更新真实表 看到很多例子,更新视图可以更新真实表。原因,我是这样理解的:视图并没有保存内容。只是引用数据。那么,更新视图,其实就是以引用的方式操作了真实表

传智播客mybatis课堂笔记

mybatis 第一天mybatis的基础知识 课程安排: mybatis和springmvc通过订单商品案例驱动 第一天:基础知识(重点,内容量多) 对原生态jdbc程序(单独使用jdbc开发)问题总结 mybatis框架原理(掌握) mybatis入门程序 用户的增、删、改、查 mybatis开发dao两种方法: 原始dao开发方法(程序需要编写dao接口和dao实现类)(掌握) mybaits的mapper接口(相当于dao接口)代理开发方法(掌握)mybatis配置文件SqlMapConfig.xml mybatis核心: mybatis输入映射(掌握) mybatis输出映射(掌握) mybatis的动态sql(掌握) 第二天:高级知识 订单商品数据模型分析 高级结果集映射(一对一、一对多、多对多) mybatis延迟加载 mybatis查询缓存(一级缓存、二级缓存) mybaits和spring进行整合(掌握) mybatis逆向工程 1对原生态jdbc程序中问题总结 1.1环境 java环境:jdk1.7.0_72 eclipse:indigo mysql:5.1

1.2创建mysql数据 导入下边的脚本: sql_table.sql:记录表结构 sql_data.sql:记录测试数据,在实际企业开发中,最后提供一个初始化数据脚本 1.3jdbc程序 使用jdbc查询mysql数据库中用户表的记录。 创建java工程,加入jar包: 数据库驱动包(mysql5.1) 上边的是mysql驱动。 下边的是oracle的驱动。 程序代码: 1.4问题总结 1、数据库连接,使用时就创建,不使用立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响数据库性能。 设想:使用数据库连接池管理数据库连接。 2、将sql语句硬编码到java代码中,如果sql 语句修改,需要重新编译java代码,不利于

完整Mysql燕十八学习笔记

Mysql 三大列类型 1. 数值型 整型 Tinyint 、Smallint、Mediumint 、Int、Bigint 小数型 Float(D,M),Decimal(D,M) 2. 字符串型 Char(M) Varchar(M) Text 文本类型 3. 日期时间类型 Date 日期 Time 时间 Datetime 时间类型 Year年类型 一.整型列的字节与存储范围 从数学上讨论tinyint ,建表时既能足够存放,又不浪费空间。 即: (1). 占据空间

(2). 存储范围

通过占用字节和所存范围分关系合理的选择类型例:Tinyint

经测试,Tinyint 的默认为有符号-128~127之间,当越界时自动取相应 的边界值。若要存 0~255无符号时: 列的可选属性: Tinyin t (M ) un sig ned zerofill. M :宽度(在0填充的时候才有意义) Un sig ned:无符号类型(非负),影响存储范围 Zerofill : 0填充(默认无符号)

1> insert into test -> (name,age3) -> ualu&s ->「赵六'/S'); u QIC, 1 row aff?et&d (0.00 soc) 箕from t&st; I id I name I age I agel I age2 I age3 I 卜--------- + ------------- + --------------- + -------------- + --------------- + ----------------- + rows in at (0.07 SEC) 列可以声明默认值,而且推荐声明默认值not null default 0; ysql> alter table test add tinyint(3j not null default 0; uery 0IC, 9 rows affected (0.13 $ec) ecords: 9 Duplicates: 0 Uarnings: O 小数型/浮点型、定点型 Float(M,D):M代表总位数,D代表小数位 (6,2)为例:-9999.99 ->9999.99 12345G789一一一一张张张张 李 张 李 王 制 L L u N i NULL L L u N L L J N I NULL NULL L L u N 三 四 三 四 五 六 6 NULL NULL I NULL I L L u N NULL | 2G0 | NULL | NULL ! NULL I 0 I NULL I NULL | NULL I NULL I 127 I NULL I y$ql> t M from 七。兮七; ------ - -------------------------- + ----- ------ I id I name I age I agel I age2 I age3 I age4 I I 25 I NULL I I 127 I NULL I I -128 I NULL I I 127 I NULL I I -100 | NULL I I NULL I 200 I I NULL I 0 I I NULL I NULL I I NULL I NULL I NULL I NULL I NULL I NULL I NULL I NULL I NULL I NULL I NULL I NULL I NULL I NULL I NULL I NULL I 127 I NULL I NULL I 00005 I NULL I 06305 I 123456T89三三三 _: 一 四 三 四 五 六 张 张 张 张 李 张 李 王 赵

Mysql数据库学习心得

Mysql数据库学习心得(1) 由于工作中需要使用mysql,笔者通过网上学习,动手实践,终于从一个"数据库菜鸟"变成了能熟练操作mysql的"准大虾"了,:)。现将学习心得整理如下。 MySQL是完全网络化的跨平台关系型数据库系统,一个真正的多用户、多线程SQL数据库服务器,同时是具有客户机/服务器体系结构的分布式数据库管理系统。它具有功能强、使 用简便、管理方便、运行速度快、安全可靠性强等优点,用户可利用许多语言编写访问MySQL数据库的程序,对于中、小型应用系统是非常理想的。除了支持标准的ANSI SQL语句,更重要的是,它还支持多种平台,而在Unix系统上该软件支持多线程运行方式,从而能获得相当好的性能。对于不使用Unix的用户,它可以在Windows NT系统上以系统服务方式运行,或者在Windows 95/98系统上以普通进程方式运行。而在Unix/Linux系统上,MySQL支持多线程运行方式,从而能获得相当好的性能,而且它是属于开放源代码软。 MySQL是以一个客户机/服务器结构的实现,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成,MySQL的执行性能非常高,运行速度非常快,并非常容易使用,是一个非常棒的数据库。MySQL的官方发音是"My Ess Que Ell"(不是MY-SEQUEL )。 一.获得MySQL 首先必须下载MySQL。Mysql的官方网站是:,在中国的镜像是:或者:,可以下载MySQL的稳定版本截止到笔者发稿为止)。其版本名称是,不但免费而且没有所谓的"30天使用期限"。 二.MySQL的安装 (一)在Win98/Winnt下的安装 到一个目录,运行Setup程序,会提示整个安装的过程。它默认安装到c:mysql下,如果要安装到其它目录下还有改动一些东西,作为初学者,可以先不管,以默认的目录安装。好了,安装后,进入c:mysql in 目录下,运行文件在Win98下直接运行,正常情况下,没有什么提示信息。 1。将下载后的文件解压解压到一个临时目录。 2。点击安装到c:mysql(默认)。 3。将拷贝到c:,把文件中的#basedir=d:/mysql/改为basedir=c:mysql。 4。进入msdos,到目录c:mysql in。 5。输入mysqld-shareware -install,此为启动Mysql数据库服务。

My SQL学习笔记

My SQL学习笔记: 一、认识关系型数据库 1.数据库实际上就是管理数据的仓库,平常我们使用的一般是利用文件对数据进行保存和 管理,doc, xls, jpg等等,只要我们知道的一切能够保存数据的文件,我们都可以认为是一种保存和管理数据的方式。 2.但是对于大批量数据和便于网络操作而言,使用特定的数据库是很有必要的。 3.数据库系统(Database System)=数据(Data)+数据管理系统(Database Management System) 4.通常意义的数据库:至少包含数据和管理数据的工具,我们知道,数据库还需要对外提 供接口让其他程序对数据库进行操作。 二、启动My SQL 1.启动数据库分为两部分,一部分是服务器,第二部分是客户端连接到服务器。 2.启动服务器:在Windows上安装My SQL后会在Windows服务管理中增加一条记录,可 以通过启动services.msc找到MySQL56进行启动。也可以使用net start 。 三、My SQL操作 分类:针对的操作对象不同,分成不同的语言: 1.数据操作(管理)语言DML 2.数据定义语言(对保存数据的格式进行定义)DDL 3.数据库控制语言(针对数据库软件服务进行操作)DCL DCL控制DDL,DDL限制DML,即对数据库的操作、对表的操作、对数据的操作 DML又分为DQL和DML 四、数据库操作DCL 1.创建数据库:create database [options]; (options:字符集、校对规则) 2.查询数据库:show databases; 3.查看数据库的创建语句:show create database ; 4.删除数据库:drop database ; 5.修改数据库信息:alter database ;(options:字符集、校对规则), 对于数据库的名字,一般不进行修改,可以通过修改数据库文件夹的名字进行修改,也可以新建一个数据库,将数据库内容保存新数据库中 五、表操作 1.创建表:create table (,…) [options]; 1)先分析,需要保存的实体数据,拥有哪些属性,需要怎样保存 2)列结构:列名、列的数据类型、列的约束 2.查看表: 1)有那些表:show tables [like ‘pattern’]; 例如show tables like ‘city_%’;(表示已city_开头的 所有表) 2)某个表的创建信息:show create table ; 3)查看表结构:desc(describe) ; 3.删除表: drop table [if exists] ; 4.修改表: 1)修改表名:rename table to ; rename table student to info_student, teacher to info_teacher; 2)修改字段(列)定义:

传智 韩忠康 mysql 课程笔记4(吐血整理)

Order by 2013年4月19日星期五 09:39 校对规则,决定排序关系。 按照字段值进行排序 Order by 字段升序|降序(asc|desc) 默认升序,asc。 允许多字段排序, 指的是,先按照第一个字段排序,如果说不能区分,才使用第二个字段。以此类推。 注意,如果是分组,则应该使用对分组字段进行排序的groupby语法。 limit 2013年4月19日星期五 09:50 限制获得的记录数量: limit的语法: Limit offset,row_count Offset 偏移量,从0开始。可以省略,默认为0. Row_count总记录数,如果数量大于余下的记录数, 则获取所有余下的即可:

select * from teacher_class limit 3, 4; select * from teacher_class limit 5;select * from teacher_class limit 5, 100;

distinct 2013年4月19日星期五 10:17 去除重复记录: 重复的记录,指的是,字段值都相同的记录, select days from teacher_class ; select distinct days from teacher_class ; select days, begin_date from teacher_class ; select distinct days, begin_date from teacher_class ; 相对的是all,表示所有。默认就是all行为。

Union 2013年4月19日星期五 10:26 联合查询: 将多条select语句的结果,合并到一起。称之为联合操作。 获得2个班代课最多的老师: select t_name, days from teacher_class where c_name='php0115' order by days desc limit 1; select t_name, days from teacher_class where c_name='php0228' order by days desc limit 1;

Mysql数据库学习总结

Mysql数据库学习总结 数据库的基本操作:创建删除查瞧 Create database school; 用于创建数据库,并且数据库的名字不可以更改 Show create database; show databases; 用来查瞧创建数据库的语句 Drop database; 用于删除数据库 表的基本操作: Create table; 用于创建表,table后面加表名称 Create table student{ Id int; Name varchar(10); Sex Boolean; } Show tables; 用于显示数据库中的所有表 Describe student; 这里显示了字段、数据类型、就是否为空、主外键、默认值与额外信息Show create table; 显示创建表时的详细信息 Drop table student; 删除表的操作 完整性约束

就是对字段进行限制,从而该字段达到我们期望的效果 设置表的主键:主键能够标识表中的每条信息的唯一性。(primary key) 创建主键的目的在于快速查找到表中的某一条信息 多字段主键:由多个属性组合而成 例如:primary key(id,course_id); 设置表的外键; 设置表的外键的作用在于建立与父表的联系 比如表A中的id就是外键,表B中的id就是主键 那么就可以称表B为父表,表A为子表 比如表B中id为123的学生删除后,表A中id为123的记录也随着消失这样做的目的在于保证表的完整性。 设置表的非空约束: 设置表中的字段不为空 设置表的唯一性约束 唯一性约束指表中该字段的值不能重复出现,也就就是给表中某个字段加上unique 设置表的属性值自动增加: auto_increment 主要用于为表中插入的新纪录自动生成唯一ID 一个表中只能由一个字段使用此约束,并且该字段必须为主键的一部分,约束的值ibixu 就是整型值。 设置表中属性的默认值 在表中插入一体哦新的记录时,如果没有为该字段赋值,那么数据库系统就会为该字段附上一条默认值。 修改表 修改表需要用到alter table 修改表名:

传智 韩忠康 mysql 课程笔记5(吐血整理)

昨天作业 2013年4月20日星期六 09:56 class as h on m.host_id =h.id left join

select 2013年4月20日星期六10:06

生成的文件格式: 默认的,采用行来区分记录,而采用制表符,来 区分字段。 为了满足某种特别的需求,会采用不同的分割方式。 支持,在导出数据时,设置记录,与字段的分割符。 通过如下的选项: fields:设置字段选项 Lines: 设置行选项(记录选项) 先看默认值: 字段:fields terminated by '\t' enclosed by '' escaped by '\\‘ 记录:lines terminated by '\n' starting by '' 可以自己设定: select * into outfile 'e:/amp/three' fields terminated by ',' lines terminated by '\n' starting by 'start:' from teacher_class where t_name = '韩信'; 字段包裹 select * into outfile 'e:/amp/four' fields terminated by '\t' enclosed by 'x' lines terminated by '\n' starting by 'start:' from teacher_class where t_name = '韩信'; 注意: 常规的,所有的记录,应该通过行来显示例外是保存二进制数据:

MySQL最全整理(面试题+笔记+导图),面试大厂不再被MySql难倒!

前言 作为一名编程人员,对MySQL一定不会陌生,尤其是互联网行业,对MySQL的使用是比较多的。对于求职者来说,MySQL又是面试中一定会问到的重点,很多人拥有大厂梦,却因为MySQL败下阵来。实际上,MySQL并不难,今天这份最全的MySQL总结,助你向大厂“开炮”,面试不再被MySQL难倒。 注意:关于MySQL的内容整理,包括了面试题、学习笔记、使用文档以及Xmind思维图几个部分,需要高清完整版的请转发+关注,然后私信回复“666”获得免费领取方式 01、MySQL 面试题集合总结 1.1 MySQL 面试题(基础部分): ?drop、truncate、delete区别 ?数据库三范式是什么? ?union和union all有什么不同? ?char、varchar2、varchar有什么区别? ?合并查询有哪些? ?SQL语句执行顺序 ?null的含义 ?MySQL、SqlServer、oracle写出字符存储、字符串转时间 ?update语句可以修改结果集中的数据吗? ?B树和B+树的区别 ?你建过索引吗? 建索引的原则 ?索引的类型, 如主键索引 ?查看SQL执行计划

?有十万条数据, 写SQL语句查询其中某字段较大值的几条数据 ?子查询与关联查询的区别 ?MySQL InnoDB、Mysaim的特点? ?乐观锁和悲观锁的区别?? ?行锁和表锁的区别? ?数据库隔离级别是什么?有什么作用? ?MySQL主备同步的基本原理。 ?如何优化数据库性能(索引、分库分表、批量操作、分页算法、升级硬盘SSD、业务优化、主从部署) ?SQL什么情况下不会使用索引(不包含,不等于,函数) ?一般在什么字段上建索引(过滤数据最多的字段) ?MySQL,B+索引实现,行锁实现,SQL优化 ?如何解决高并发减库存问题 ?数据库事务的几种粒度 1.2 MySQL 面试题(实战部分): ?数据库三范式,根据秒杀场景设计数据表 ?数据库的主从复制 ?死锁怎么解决 ?mysql并发情况下怎么解决(通过事务、隔离级别、锁) ?触发器的作用? ?什么是存储过程?用什么来调用? ?存储过程的优缺点?

MySQL笔记..

03_MySQL Day01 一、数据库(DataBase DB) 1、数据库:存储数据的仓库 2、数据库分类: (1)关系型数据库:二维表存储数据(Mysql,SQLServer,Orcale,DB2等) (2)非关系型数据库(Nosql):MongDB等 3、Mysql安装 (1)window:配置文件my.ini 进入命令行开始--运行--cmd (2)Linux:配置文件:/etc/https://www.doczj.com/doc/8c16184311.html,f 终端 mysql -uroot -p 说明: Mysql 数据库的存储位置 /var/lib/mysql 4、Mysql登录 mysql -u用户名-p密码[-P3306] [-D数据库名称] 5、Mysql退出 quit exit \q 6、Mysql注释 -- 注释 # 注释 7、修改提示符(Prompt) (1)进入MySQL的命令 prompt 提示符名称 (2)登录MySQL写的命令 mysql -uroot -p --prompt=提示符名称 说明: a.恢复提示符prompt mysql> b.特殊符号 \h 主机名称 \D 系统时间日期 \d 选择数据库名称 8、SQL(Structured Query Language)结构化查询语句 (1)DDL(数据创建语言):创建数据库,创建表、创建视图等

CREATE(创建),DROP(删除),ALTER(修改) (2)DML(数据操作语言):对数据库的数据的增,删,改 INSERT(添加),DELETE(删除),UPDATE(改) (3)DQL(数据查询语言):对数据库的数据查询 SELECT(查询) (4)DCL(数据库控制语言):分配(GRANT)用户权限 及权限(REVOKE)撤销 9、SQL命令行规范 a.系统命令大写,名称小写 b.SQL命令行以分号结束或\g 说明:结束分隔符可以用delimiter 符号名称 c.SQL命令行支持折行,但不能在函数,名称,引号中不能折行 d.SQL命令中的名称不能用关键字和保留字,如果使用必须用反引号``括起来,例如`user` 10、创建数据库(DDL) (1)查看数据库 SHOW DATABASES; (2)创建数据库 CREATE DATABASE [IF NOT EXISTS] 数据库名称[[DEFAULT] CHARACTER SET [=] 编码]; (3)查看创建数据库命令 SHOW CREATE DATABASE 数据库名称; (4)删除数据库 DROP DATABASE [IF EXISTS] 数据库名称; (5)修改数据库的编码 ALTER DATABASE 数据库名称 [DEFAULT] CHARACTER SET [=]编码; (6)选择数据库 USE 数据库名称; (7)查看当前选择的数据库 SELECT DATABASE(); 11、创建数据库中的表 (1)查看表 SHOW TABLES; (2)创建表结构 CREATE TABLE [IF NOT EXISTS] 表名( 字段(Field)名称|列名称数据类型[字段属性|约束条件], 字段(Field)名称|列名称数据类型[字段属性|约束条件] ... )[ENGINE=InnoDB DEFAULT CHARSET=utf8]; 说明:数据库最小单位是表,一定是先有表结构 再添加数据

Mysql总结完整版

一、数据库概述 数据库(DataBase,DB):指长期保存在计算机的存储设备上,按照一定规则组织起来,可以被各种用户或应用共享的数据集合。 数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中的数据。 数据库软件应该为数据库管理系统,数据库是通过数据库管理系统创建和操作的。 数据库:存储、维护和管理数据的集合。 二、数据库的安装与配置 * 安装 * 参照图解 * 一路下一步 * 卸载 1.停止mysql服务net stop mysql 启动mysql服务net start mysql 2.卸载mysql 3.找到mysql 安装目录下的my.ini datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/" * 运行 * 安装成功了打开cmd --> mysql -uroot -p你的密码 * 修改mysql root用户密码 1) 停止mysql服务运行输入services.msc 停止mysql服务 或者cmd --> net stop mysql 2) 在cmd下输入mysqld--skip-grant-tables 启动服务器光标不动(不要关闭该窗口) 3) 新打开cmd 输入mysql -u root -p 不需要密码 use mysql; update user set password=password('abc') WHERE User='root'; 4) 关闭两个cmd窗口在任务管理器结束mysqld 进程 5) 在服务管理页面重启mysql 服务 密码修改完成 * 配置 * 参照图解

mysql优化笔记

◆Mysql数据库的优化技术<大型网站优化技术> 对mysql优化时一个综合性的技术,主要包括 a: 表的设计合理化(符合3NF) b: 添加适当索引(index) [四种: 普通索引、主键索引、唯一索引unique、全文索引] c: 分表技术(水平分割、垂直分割) d: 读写[写: update/delete/add]分离 e: 存储过程[模块化编程,可以提高速度] 数据库的三层结构: f: 对mysql配置优化[配置最大并发数my.ini, 调整缓存大小] g: mysql服务器硬件升级 h: 定时的去清除不需要的数据,定时进行碎片整理(MyISAM) CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name [USING index_type] ON tbl_name (index_col_name,...) ◆什么样的表才是符合3NF (范式) 表的范式,是首先符合1NF, 才能满足2NF , 进一步满足3NF 1NF: 即表的列的具有原子性,不可再分解,即列的信息,不能分解, 只有数据库是关系型数据库(mysql/oracle/db2/informix/sysbase/sql server),就自动的满足1NF ?数据库的分类 关系型数据库: mysql/oracle/db2/informix/sysbase/sql server 非关系型数据库: (特点: 面向对象或者集合) NoSql数据库: MongoDB(特点是面向文档) 2NF: 表中的记录是唯一的, 就满足2NF, 通常我们设计一个主键来实现id primary key ; 3NF: 即表中不要有冗余数据, 就是说,表的信息,如果能够被推导出来,就不应该单独的设计一个字段来存放. 比如下面的设计就是不满足3NF:显示推导处理

mysql多表操作与练习笔记

mysql多表操作与练习 数据库备份与恢复 ◆数据库备份 ◆数据库恢复 多表操作 ◆多表设计 ◆外键介绍与创建 ◆多表查询介绍 ◆多表查询-内连接 ◆多表查询-外连接 ◆多表查询-子查询 SQL练习 【内容:数据库备份与恢复】 数据库备份 数据库的备份是指将数据库转换成对应的sql文件。数据库导出sql脚本的命令如下: ●mysqldump –u用户名–p密码数据库名>生成的脚本文件路径; 以上备份数据库的命令中需要用户名和密码,即表明该命令要在用户没有登录的情况下使用数据库恢复 数据库的恢复指的是使用备份产生的sql文件恢复数据库,即将sql文件中的sql语句执行就可以恢复数据库内容。因为数据库备份只是备份了数据库内容,所以备份产生的sql文件中没有创建数据库的sql语句,在恢复数据库之前需要自己动手创建数据库。 ●在数据库外恢复 mysql -u root -p 数据库名< 文件路径 注意:要求数据库必须先创建出来. ●.在数据库内恢复 source SQL脚本路径:使用这种方式恢复数据,首先要登录数据库 【重点总结】 备份 Mysqldump –u root –p abc mydb>c:/mydb.sql 恢复 1.mysql –u root –p mydb

【内容:多表操作】 多表设计 当我们要完成一个软件系统时,需要把系统中的实体抽取出来,形成概念模型。例如部门、员工都是系统中的实体。概念模型中的实体最终会成为Java中的类、数据库中的表。今天我们需要了解的概念模型包括以下两个: ●对象模型:针对java中的实体类,例如我们之前学习的domain层中的User类等; ●关系模型:对应数据库中的表。 在java中有以下三个关系描述: ●is a:例如猫是动物,表示继承关系; ●has a:例如人有两只手,表示的是类与成员的关系; ●use a:表示类与方法之间的关系; 我们今天主要关注的是第二个关系:类与成员的关系。这种关联关系可以分为如下三种: ●一对一关联:例如身份证与人就是一对一的关系,一个人只有一个身份证,一个身份证 号只属于一个人。 ●一对多关联:例如用户与订单,一个用户可以拥有多个订单,多个订单可以属于同一个 用户,这是一个很明显的一对多关联。 ●多对多关联:例如商品与订单,一个订单中可以包含多个商品,而一个商品也可以存在 于多个订单中,这就是一个多对多关联。 概念模型在java中对应这实体类,在实体类中使用成员变量完成关联关系,而且一般都是双向关联,以下是java中实体类与成员之间的关联关系,如下所示: 一对一关联 //身份证类一的一方 public class IDCard { private Person person; //身份证关联人类一对一 } //人类一的一方 public class Person { private IDCard idcard; //人类关联身份证类一对一 } 一对多关联 //用户一的一方 public class User { private List orders; //用户可以有多个订单,在用户中关联订单} //订单多的一方 public class Order { private User user; //多个订单可以属于一个用户,在订单中关联用户} 多对多关联 // 订单多的一方 public class Order { private List products; //订单中可以包含多个商品,订单关联商品

mysql学习笔记

创建student表 CREATE TABLE student ( sNo int(11) NOT NULL DEFAULT '0', sName varchar(10) DEFAULT NULL, sSex enum('m','f') DEFAULT 'm', sAge tinyint(4) DEFAULT '18', sClass varchar(10) DEFAULT NULL, PRIMARY KEY (sNo), KEY index_name (sName) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 创建course表 CREATE TABLE course( cNo tinyint(4) NOT NULL, cName varchar(20) NOT NULL, cCredit tinyint(4) NOT NULL, PRIMARY KEY ( cNo) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 创建score表 create table score (sNo int not null, cNo tinyint not null, score tinyint, primary key(sNo,cNo), constraint foreign key(sNo) references student(sNo), constraint foreign key(cNo) references course(cNo) )engine=innoDB default charset=utf8; insert into course values(1,"计算机操作系统",3),(2,"计算机基础教程",2), (3,"计算机导论",4),(4,"C++ Primer",4),(5,"MySQL入门与精通",5); mysql的SQL语句: 创建表: create table student( id int not null primary key, name char(10) not null, sex char(2) not null ); 修改表结构:增加,删除,修改字段 alter table student drop sex, add birthday date,

Mysql日志管理笔记

Mysql日志管理笔记(5.7版本) wangzz 四种日志文件: 1,二进制日志:以二进制形式记录数据库的各种操作,但不记录查询语句. 2,错误日志: 该日志文件记录mysql服务器启动,关闭和运行时的出错等信息。 3,通用查询日志:记录mysql启动,关闭,及客户端的连接信息,更新数据记录sql语句和查询数据记录sql语句. 4,慢查询日志:记录执行时间超过指定时间的各种操作,通过工具分析慢查询日志可以定位性能瓶颈。 1,二进制日志 1)启动二进制日志 /etc/https://www.doczj.com/doc/8c16184311.html,f 文件。 [mysqld] log-bin[=dir/[filename]] server_id=100 log-bin=/export/app/log/binlog/binlog.log 重启服务就可以启动二进制日志文件,如果启动不了。看log-error日志,你会时到重启不了的原因 mysql> show variables like '%bin%'; +-----------------------------------------+-------------------------------------+ | Variable_name | Value | +-----------------------------------------+-------------------------------------+ | bind_address | * | | binlog_cache_size | 32768 | | binlog_checksum | CRC32 | | binlog_direct_non_transactional_updates | OFF | | binlog_error_action | ABORT_SERVER | | binlog_format | ROW | | binlog_group_commit_sync_delay | 0 | | binlog_group_commit_sync_no_delay_count | 0 | | binlog_gtid_simple_recovery | ON | | binlog_max_flush_queue_time | 0 | | binlog_order_commits | ON | | binlog_row_image | FULL | | binlog_rows_query_log_events | OFF | | binlog_stmt_cache_size | 32768 | | innodb_api_enable_binlog | OFF | | innodb_locks_unsafe_for_binlog | OFF | | log_bin | ON | | log_bin_basename | /export/app/log/binlog/binlog | | log_bin_index | /export/app/log/binlog/binlog.index | | log_bin_trust_function_creators | OFF | | log_bin_use_v1_row_events | OFF | | log_statements_unsafe_for_binlog | ON | | max_binlog_cache_size | 18446744073709547520 | | max_binlog_size | 1073741824 | | max_binlog_stmt_cache_size | 18446744073709547520 | | sql_log_bin | ON | | sync_binlog | 1 | +-----------------------------------------+-------------------------------------+ 27 rows in set (0.00 sec) 查看二进制日志文件 [root@risoserverbinlog]# mysqlbinlog binlog.000001

我的MYSQL学习心得

我的MYSQL学习心得(十一)视图我的MYSQL学习心得(一)简单语法 我的MYSQL学习心得(二)数据类型宽度 我的MYSQL学习心得(三)查看字段长度 我的MYSQL学习心得(四)数据类型 我的MYSQL学习心得(五)运算符 我的MYSQL学习心得(六)函数 我的MYSQL学习心得(七)查询 我的MYSQL学习心得(八)插入更新删除 我的MYSQL学习心得(九)索引 我的MYSQL学习心得(十)自定义存储过程和函数 我的MYSQL学习心得(十二)触发器 我的MYSQL学习心得(十三)权限管理 我的MYSQL学习心得(十四)备份和恢复 我的MYSQL学习心得(十五)日志 我的MYSQL学习心得(十六)优化 我的MYSQL学习心得(十七)复制 这一篇《我的MYSQL学习心得(十一)》将会讲解MYSQL的视图

使用视图的理由是什么? 1、安全性:一般是这样做的:创建一个视图,定义好该视图所操作的数据。 之后将用户权限与视图绑定,这样的方式是使用到了一个特性:grant语句可以针对视图进行授予权限。 2、查询性能提高 3、有灵活性的功能需求后,需要改动表的结构而导致工作量比较大,那么可以使用虚拟表的形式达到少修改的效果。 这是在实际开发中比较有用的 4、复杂的查询需求,可以进行问题分解,然后将创建多个视图获取数据。将视图联合起来就能得到需要的结果了。 创建视图 创建视图的语法 CREATE[OR REPLACE][ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] VIEW view_name [(column_list)] AS select_statement [WITH [CASCADED | LOCAL]CHECK OPTION] 其中,CREATE:表示新建视图; REPLACE:表示替换已有视图 ALGORITHM :表示视图选择算法 view_name :视图名

第五篇 创建实用的php和MySQL项目 笔记

php+mysql第五篇创建实用的php和MySQL项目 php+mysql第五篇创建实用的php和MySQL项目 (1) 1.在大型项目中使用php和mysql (4) 1.1.在web开发中应用软件工程 (4) 1.2.规划和运行web应用程序项目 (4) 1.3.重用代码 (4) 1.4.编写可维护代码 (4) 1.4.1.编码标准 (4) 1.4.1.1.定义命名惯例 (4) 1.4.1.2.对代码进行注释 (4) 1.4.1.2.1.对文件或包含文件注释 (4) 1.4.1.2.2.对函数进行注释 (4) 1.4.1.2.3.类注释 (4) 1.4.1.2.4.脚本或一大段代码 (4) 1.4.1.2.5.复杂的代码 (5) 1.4.1.3.代码缩进 (5) 1.4.2.分解代码 (5) 1.4.3.使用标准的目录结构 (5) 1.4.4.文档化和共享内部函数 (5) 1.5.实现版本控制 (5) 1.6.选择一个开发环境 (5) 1.7.项目的文档化 (5) 1.7.1.设计文档 (6) 1.7.2.技术文档/开发指南 (6) 1.7.3.数据词典(包含类文档) (6) 1.7.4.用户指南(尽管大多数web程序是自我解释的) (6) 1.8.建立原型 (6) 1.9.分离逻辑.内容和外观.php+html+css (6) 1.9.1.用包含文件保存不同部分的内容 (6) 1.9. 2. 用一个函数或者带有一组成员函数的类api将动态内容插入到静态网页模版中6 1.9.3.使用模版系统.用来解析静态模版 (6) 1.10.优化代码 (6) 1.10.1.使用简单优化 (6) 1.10.1.1.减少数据库连接 (6)

MySQL基础知识总结

day15-MySQL 数据库 1数据库概念(了解) 1.1什么是数据库 数据库就是用来存储和管理数据的仓库! 数据库存储数据的优先:

●可存储大量数据; ●方便检索; ●保持数据的一致性、完整性; ●安全,可共享; ●通过组合分析,可产生新数据。 1.2数据库的发展历程 ●没有数据库,使用磁盘文件存储数据; ●层次结构模型数据库; ●网状结构模型数据库; ●关系结构模型数据库:使用二维表格来存储数据; ●关系-对象模型数据库; MySQL就是关系型数据库! 1.3常见数据库 ●Oracle(神喻):甲骨文(最高!); ●DB2:IBM; ●SQL Server:微软; ●Sybase:赛尔斯; ●MySQL:甲骨文; 1.4理解数据库 ●RDBMS = 管理员(manager)+仓库(database) ●database = N个table ●table: ?表结构:定义表的列名和列类型! ?表记录:一行一行的记录! 我们现在所说的数据库泛指“关系型数据库管理系统(RDBMS - Relational database management system)”,即“数据库服务器”。 当我们安装了数据库服务器后,就可以在数据库服务器中创建数据库,每个数据库中还可以包含多张表。

数据库表就是一个多行多列的表格。在创建表时,需要指定表的列数,以及列名称,列类型等信息。而不用指定表格的行数,行数是没有上限的。下面是tab_student表的结构: 当把表格创建好了之后,就可以向表格中添加数据了。向表格添加数据是以行为单位的!下面是s_student表的记录: s_id s_name s_age s_sex S_1001 zhangSan 23 male S_1002 liSi 32 female S_1003 wangWu 44 male 大家要学会区分什么是表结构,什么是表记录。 1.5应用程序与数据库 应用程序使用数据库完成对数据的存储!

相关主题
文本预览
相关文档 最新文档