韩忠康第二版mysql视频教程笔记第一天

韩忠康第二版mysql视频教程笔记第一天
韩忠康第二版mysql视频教程笔记第一天

简介

2013年4月15日星期一

10:17

数据库系统

DataBase System = 数据库管理系统(DBMS,DataBase Management System) + 数据库(DataBase) + 管理员

DBS = DBMS + DB

定义:对大量信息进行管理的高效解决方案,按照数据结构来组织、存储和管理数据的库

关系型数据库系统

建立在关系模型上的数据库系统。

关系模型:

当将日常生活中的实体(学生),和实体的属性(学生的学号,姓名)保存到数据中时,应该如何处理该实体结构。

1,数据结构可以规定,同类数据,结构一致。就是一个二维的表格。

2,数据之间的关系可以设置。实体之间的联系。

Nosql

Not only sql

非关系型数据库系统

mongoDB,MemBase

对象型数据库

关系型数据库的典型概念:

数据库databse:数据的仓库。

表table:数据是保存在表内,保存在一个表内的数据,应该具有相同的数据格式。

行&列:行用于记录数据,列用于规定数据格式。

记录:行内的数据

字段:数据的某个列。

SQL:数据库管理系统,用来管理数据的语言。结构化查询语言(SQL,Structured Query Language)。

MySQL

数据库(管理+数据)+ 谁能向数据库系统发出如何管理的命令。

MySQL是基于C/S架构的。客户端/服务器Client/SERVER

安装

2013年4月15日星期一

08:57

下载最新的相应的mysql版本。安装+ 配置。

选择自定义

安装的组件信息:

服务器软件目录:

数据目录:

点击install安装即可:

配置:

机器类型

是否支持事务功能:

innodb表空间:

连接数量:

字符集设定:

配置windows管理相关:

配置安全选项:

最后执行配置即可:

配置后,会启动服务。

提示,如果出现配置失败,很大的可能性由于存在Mysql服务。不能安装服务成功。

典型的可以将已有的卸载,再重新安装即可。

使用

2013年4月15日星期一

11:44

mysql的执行目录

管理MySQL服务器端程序

1,通过windows提供的服务管理完成

打开服务:

命令行形式管理windows的Mysql服务:Ne t start 服务名

Net stop 服务名

2,直接使用mysqld来运行服务

图例

2013年4月15日星期一12:03

客户端/服务端交互流程

已使用 Microsoft OneNote 2010 创建

一个用于存放所有笔记和信息的位置

库操作

2013年4月15日星期一

10:16

TIP:语句要求使用语句结束符;

创建数据库:

Create database db_name [数据库选项];

标识符(数据库名)命名规则:

大小写取决于当前操作系统。(认为是区分的)

见名知意。推荐使用下划线方式。

完整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 课程笔记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难倒!

前言 作为一名编程人员,对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 课程笔记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多表操作与练习 数据库备份与恢复 ◆数据库备份 ◆数据库恢复 多表操作 ◆多表设计 ◆外键介绍与创建 ◆多表查询介绍 ◆多表查询-内连接 ◆多表查询-外连接 ◆多表查询-子查询 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日志管理笔记

Mysql日志管理笔记(5.7版本) wangzz 四种日志文件: 1,二进制日志:以二进制形式记录数据库的各种操作,但不记录查询语句. 2,错误日志: 该日志文件记录mysql服务器启动,关闭和运行时的出错等信息。 3,通用查询日志:记录mysql启动,关闭,及客户端的连接信息,更新数据记录sql语句和查询数据记录sql语句. 4,慢查询日志:记录执行时间超过指定时间的各种操作,通过工具分析慢查询日志可以定位性能瓶颈。 1,二进制日志 1)启动二进制日志 /etc/https://www.360docs.net/doc/7d13009236.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

第五篇 创建实用的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优化笔记

◆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数据库主要系统表说明 1. 获取所有表结构(TABLES) SELECT * FROM information_schema.TABLES WHERE TABLE_SCHEMA='数据库名'; TABLES表:提供了关于数据库中的表的信息(包括视图)。详细表述了某个表属于哪个schema,表类型,表引擎,创建时间等信息。各字段说明如下: 2. 获取表字段(COLUMNS) SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='数据库名' AND TABLE_NAME='表名' COLUMNS表:提供了表中的列信息。详细表述了某张表的所有列以及每个列的信息。各字段的说明信息如下:

3. 获取表键值 SELECT * FROM information_schema.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA='数据库名' AND TABLE_NAME='表名' 4. 获取表Check约束 SELECT * FROM information_schema.TABLE_CONSTRAINTS WHERE TABLE_SCHEMA='数据库名' AND TABLE_NAME='表名' TABLE_CONSTRAINTS表:存储主键约束、外键约束、唯一约束、check约束。各字段的说明信息如下:

5. 获取表索引 SELECT * FROM information_schema.STATISTICS WHERE TABLE_SCHEMA='数据库名' AND TABLE_NAME='表名' 6. mysql有关show的用法 SHOW DATABASES列出MySQL Server上的数据库。 SHOW TABLES [FROM db_name]列出数据库中的表。 SHOW TABLE STATUS [FROM db_name]列出数据库的表信息,比较详细。 SHOW COLUMNS FROM tbl_name [FROM db_name]列出表的列信息,同SHOW FIELDS FROM tbl_name [FROM db_name],DESCRIBE tbl_name [col_name]。 SHOW FULL COLUMNS FROM tbl_name [FROM db_name]列出表的列信息,比较详细,同SHOW FULL FIELDS FROM tbl_name [FROM db_name]。 SHOW INDEX FROM tbl_name [FROM db_name]列出表的索引信息。 SHOW STATUS列出Server 的状态信息。 SHOW VARIABLES列出MySQL 系参数值 SHOW PROCESSLIST查看当前mysql查询进程 SHOW GRANTS FOR user列出用户的授权命令

数据库学习笔记

数据库学习笔记 图形化界(Navicate Premium)面操作数据库 1、工具---->命令行操作 2、选中某个表对象--->右击---->逆向表到模型---生成各表的关系模型 3、选中某个表对象-->右击-->对象信息--->DDL查看创建表的信息 Sql语言集数据定义语言,数据操纵语言,数据查询语言,数据控制语言于一体,可以完成数据库生命周期中的全部工作。 数据定义语言:完成创建,修改或删除数据库中的各种对象有create,drop,alter的命令。 数据查询语言:按各种条件查询数据库中的数据有select及其相关命令。 数据操纵语言:对已经从在的数据库对其进行数据的插入,删除和修改有insert,update,delete命令。 数据库控制语言:用于授权或收回访问数据库的某种特权,控制数据操纵事物的发生时间及效果,对数据库进行监视。有grant,revoke,commit,rollback等命令。 一、数据库操作 1、启动数据库:net start mysql 2、关闭数据库:net stop mysql 3、打开数据库:mysql -u root -p123 4、显示所有数据库:show databases;

5、创建数据库:create database mydb1; 6、删除数据库:drop database mydb1; 二、单表操作: 1、选择并使用数据库:use mydb1 2、创建表:(宠物表) 宠物表:id名字、主人、种类,性别、出生和死亡日期。create table pet( id int primary key, name varchar(20), owner varchar(20), species varchar(20), sex char(1), birth date, death date ); 3、插入数据: insert into pet values(1,’ergou’,’zx’,’dog’,’f’,’2013-09-06’ null); 4、查询所有内容 select * from pet; 5、删除一条数据: delete from pet where id=1;

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.360docs.net/doc/7d13009236.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 自学笔记

Mysql 自学笔记 前言 综述: 磁盘搜索。需要花时间从磁盘上找到一个数据,用在现代磁盘的平均时间通常小于10ms,因此理论上我们能够每秒大约搜索1000次。 这个时间在新磁盘上提高不大并且很难为一个表进行优化。优化它的方法是将数据分布在多个磁盘上。 磁盘读/写。当磁盘放入正确位置后,我们需要从中读取数据。对于现代的磁盘,一个磁盘至少传输10-20Mb/s的吞吐。这比搜索要容易优化, 因为你能从多个磁盘并行地读。 CPU周期。我们将数据读入内存后,需要对它进行处理以获得我们需要的结果。表相对于内存较小是最常见的限制因素。但是对于小表, 速度通常不成问题。 ·内存带宽。当CPU需要的数据超出CPU缓存时,主缓存带宽就成为内存的一个瓶颈。这在大多数系统正是一个不常见的瓶颈但是你应该知道它。 一. MySQL设计局限与折衷 1. 如果向列内插入不合适的或超出范围的值,MySQL将该列设定为“最好的可能的值”,而不是报告错误。对于数字值,为0、可能的最小值或最大值。 对于字符串,为空字符串或列内可以保存的字符串。请注意当运行在严格模式或TRADITIONAL SQL模式时该行为不适用。当然这仅仅是在严格的模式下, 包括TRADITIONAL SQL 模式,必须为not null 指定默认值。 二。可移植性 如果你使用某个数据库特定的功能(例如MySQL专用的REPLACE语句),应该为SQL 服务器编码一个方法以实现同样的功能。尽管慢些, 但确允许其它服务器执行同样的任务。 用MySQL,可以使用/*! */语法把MySQL特定的关键词加到查询中。在/**/中的代码将被其它大多数SQL服务器视为注释(并被忽略)。 三。优化SELECT 查询 1.影响所有语句的一个因素是:你的许可设置得越复杂,所需要的开销越多。 执行GRANT语句时使用简单的许可,当客户执行语句时,可以使MySQL降低许可检查开销。例如,如果未授予任何表级或列级权限, 服务器不需要检查tables_priv和columns_priv表的内容。同样地,如果不对任何账户进行限制,服务器不需要对资源进行统计。 如果查询量很高,可以花一些时间使用简化的授权结构来降低许可检查开销。 2.如果你的问题是与具体MySQL表达式或函数有关,可以使用mysql客户程序所带的BENCHMARK()函数执行定时测试。 其语法为BENCHMARK(loop_count,expression)。例如:

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高级教程 笔记

MySQL-高级 1标题1 ................................................................................................ 错误!未定义书签。 1.1标题2 ............................................................................................ 错误!未定义书签。 1.1.1标题3 ......................................................................................... 错误!未定义书签。

1 概述 MySQL中的SQL编程的话题. 触发器, 存储函数, 存储过程 以上的是三个名词, 在SQL编程中, 地位是: 程序的载体, 程序的结果. 编程所涉及的要素: 变量, 数据类型, 流程控制, 函数, 运算符, 表达式.

2 函数 2.1 内置函数 MySQL自动提供的函数! 例如: database(), now(), md5() 2.2 自定义函数–存储函数 用户定义定义的, 存储在MySQL中的函数. 2.2.1create function, 创建函数 适用语法:来创建函数

2.2.2调用函数 2.2.3drop function , 删除函数 drop function [if exists] function-name;

3 变量–编程要素 程序处理数据. 数据在程序中的容器, 就是变量. 强类型 3.1 全局变量 函数外定义的变量 变量不需要声明, 直接去设置即可! PS, 内置的变量: set autocommit = off, 不以@开头 3.2 局部变量 函数内定义的变量 使用declare来声明. 不需要使用@, 表示是用户自定义变量.

mysql笔记-第6天

第六天 一,回顾 1.外键: 关联关系(表与表之间: 表中字段指向另外一张表的主键) 外键条件: 字段类型必须一致, 存储引擎必须为innodb 外键约束: 子表约束: 不能插入父表不存在的记录 父表约束: 三种约束模式(district, cascade,set null), on delete set null on update cascade 2.联合查询: union, 多表合并和单表不同查询条件 联合查询使用order by: select语句必须使用括号; 还必须配合limit 3.子查询: 查询语句中有查询语句 分类: 按位置(from,where和exists), 按返回结果(用途):标量, 列,行和表 4.视图: view 节省SQL语句; 安全性控制 视图本质: 虚拟表, 有结构无数据 视图数据操作: 多表只能改, 单表可以增删改(增删有条件限制) 视图算法: undefined未定义, temptable临时表和merge合并 5.文件备份与还原 文件备份: 存储引擎(myisam适用) 单表数据备份: 只能备份数据 SQL备份: 备份的是SQL指令(mysqldump.exe客户端备份) 增量备份: 备份系统日志文件 需求: 有一张银行账户表, 有A用户给B用户转账: A账户先减少, B账户增加. 但是A操作完之后断电了. 解决方案: A减少钱, 但是不要立即修改数据表, B收到钱之后, 同时修改数据表. 二,事务安全 事务: transaction, 一系列要发生的连续的操作 事务安全: 一种保护连续操作同时满足(实现)的一种机制 事务安全的意义: 保证数据操作的完整性 (存储引擎必须为innodb ,另一个可以用事务的是BDB但它收费) (事务操作只针对数据进行操作,若在事务内进行删表创表创数据库等操作,会先commit然后执行) 1.事务操作 事务操作分为两种: 自动事务(默认的), 手动事务 ①手动事务: 操作流程 (data目录下的ib_logfile文件是日志文件) a.开启事务: 告诉系统以下所有的操作(写)不要直接写入到数据表, 先存放到事务日志 Start transaction; (试:已经开启事务了,中途再Start transaction; ,相当于先commit再开启) (试:开启事务后,执行的查询语句,返回的是start transaction那一刻的数据经过日志内存的写操作语句加工后的结果,这时候提交事务后再查询的真实结果不一定就是这个) (试:某人开启事务的时候,对其他人的操作没有影响,其他人也可以操作数据库; 这个人开启事务的作用只是把开启事务后的写操作写入日志文件,相当于把日志内的所有操作 数据的语句绑到一起再用commit提交或用rollback清空而已,把有可能不连续的操作连续起

《MYSQL实用教程》期末考试题

一、单选 1、在SQL语言中的SELECT语句中,用于实现选择运算的句子是(B) A、FOR B、WHERE C、WHILE D、IF 2、设置语句结束的命令是(C) A、set B、end C、delimiter D、finsh 3、在现实世界中,每个人都有自己的出生地,实体“人”与实体“出生地”之间的联系是(C) A、一对一联系 B、一对多联系 C、多对多联系 D、无联系 4、创建表时,不允许某列为空可以使用(A) A.NOT NULL B.NO NULL C.NOT BLANK D.NO BLANK 5、在MYSQL中,通常使用( D )语句来指定一个已有数据库作为 当前工作数据库。 https://www.360docs.net/doc/7d13009236.html,ING https://www.360docs.net/doc/7d13009236.html,ED https://www.360docs.net/doc/7d13009236.html,ES https://www.360docs.net/doc/7d13009236.html,E 6、下列( B )类型不是MYSQL中常用的数据类型。 A.INT B.BAR C.TIME D.CHAR 7、在MYSQL中一建立了“学生”表,表中有“学号”、“姓名”“性别”和“入学成绩”等字段,执行如下SQL命令: Select 性别,avg(入学成绩)From 学生Group by性别其结果是(B)A.计算并显示所有学生的性别和入学成绩的平均值 B.按性别分组计算并显示性别和入学成绩的平均值 C.计算并显示所有学生的入学成绩的平均值

D.按性别分组计算并显示所有学生的入学成绩的平均值 8、假设一个书店用(书号书名作者出版社出版日期库存数量??????)一组属性来描述图书,可以作为“关键字”的是(A) A.书号 B.书名 C.作者 D.出版社 9、从学生(STUDENT)表中的姓名(NAME)字段查找姓“张”的学生可以使用如下代码:select*from student where(D) https://www.360docs.net/doc/7d13009236.html,=’_张*’ https://www.360docs.net/doc/7d13009236.html,=’%张%’ https://www.360docs.net/doc/7d13009236.html, LIKE ‘张’ D. NAME LIKE ‘张*’ 10、在SELECT语句中,可以使用( B )子句,将结果集中的数据行根据 选择列的值进行逻辑分组,以便能汇总表内容的子集,即实现对每个组的聚集计算 A.LIMIT B.GROUP BY C.WHERE D.ORER BY 11.删除记录的语句关键字是( C ) A insert B update C delete D select 12.数据库(DB)、数据库系统(DBS)、和数据库管理系统(DBMS)三者之间的关系是( A ) A.DBS包括DB和DBMS B.DBMS包括DB和DBS ’ C.DB包括DBS和DBMS D. DBS就是DB也就是DBMS 13.select *from student该代码中的“*”号,表示的正确含义是( C ) A.普通的字符*号 B.错误信息

MySQL必知必会笔记存储过程游标触mysql 创建存储过

MySQL必知必会笔记存储过程游标触mysql 创建存储过 第二十三章使用存储过程 MySQL5 中添加了存储过程的支持。 大多数SQL语句都是针对一个或多个表的单条语句。并非所有的操作都怎么简单。经常会有一个完整的操作需要多条才能完成 存储过程简单来说,就是为以后的使用而保存的一条或多条MySQL语句的集合。可将其视为批文件。虽然他们的作用不仅限于批处理。 为什么要使用存储过程:优点 1 通过吧处理封装在容易使用的单元中,简化复杂的操作 2 由于不要求反复建立一系列处理步骤,这保证了数据的完整性。如果开发人员和应用程序都使用了同一存储过程,则所使用的代码是相同的。还有就是防止错误,需要执行的步骤越多,出错的可能性越大。防止错误保证了数据的一致性。 3 简化对变动的管理。如果表名、列名或业务逻辑有变化。只需要更改存储过程的代码,使用它的人员不会改自己的代码了都。 4 提高性能,因为使用存储过程比使用单条SQL语句要快 5 存在一些职能用在单个请求中的MySQL元素和特性,存储过程可以使用它们来编写功能更强更灵活的代码 换句话说3个主要好处简单、安全、高性能 缺点 1 一般来说,存储过程的编写要比基本的SQL语句复杂,编写存储过程需要更高的技能,更丰富的经验。 2 你可能没有创建存储过程的安全访问权限。许多数据库管理员限制存储过程的创建,允许用户使用存储过程,但不允许创建存储过程 存储过程是非常有用的,应该尽可能的使用它们 执行存储过程 MySQL称存储过程的执行为调用,因此MySQL执行存储过程的语句为CALL .CALL接受存储过程的名字以及需要传递给它的任意参数 CALL productpricing(@pricelow , @pricehigh , @priceaverage); //执行名为productpricing的存储过程,它计算并返回产品的最低、最高和平均价格 创建存储过程 CREATE PROCEDURE 存储过程名() 一个例子说明:一个返回产品平均价格的存储过程如下代码: CREATE PROCEDURE productpricing() BEGIN SELECT Avg(prod_price) AS priceaverage FROM products;

相关文档
最新文档