mysql数据库字符集实践详解_mysql数据库 详解 之 自学成才1
一、学习目录
1.认识数据库和mysql
2.mysql连接
3.入门语句
4.详解列类型
5.增删改查
INSERT INTO 表名(列1,…… 列n) VALUES(值 1,…… 值 n);
*(列1,…… 列n)允许不写,如果不写,则默认插入所有列
INSERT INTO 表名 VALUES(值 1,…… 值 n);
*VALUES 对应的值的输入顺序与表中字段顺序一致
改:
update 表名 set 列1 = 新值1, 列2 = 新值2, where expr
*改哪张表? 你需要给改哪几列的值? 分别改为什么值? 在哪些行生效?
删:
delete from 表名 where expr
*你要删哪张表的数据? 你要删掉哪些行?
查:
select 列1,列2,..列n from 表名 where expr
*查哪张表的数据? 你要选择哪些列来查询? 要选择哪些行?
6.查的5种子语句详解
7.连接查询
8.子查询
9.表引擎与字符集
10.索引与索引优化
11.触发器
12.事务
13.备份与恢复
二、入门语句
查看所有库
创建库
删除库
选择数据库
查看表
创建表
create table 表名 (
列1 [列属性 默认值],
列2 [列属性 默认值],
.....
列n [列属性 默认值]
)
engine = 存储引擎
charset = 字符集
删除表
改表名
三、详解列类型 之3大列类型
数值型(整型列,浮点型列)
字符型列
日期/时间类型
a.整型列存储范围与所占空间
b.整型列的可选属性
tinyint(M) unsigned zerofill
M: 宽度(在0填充的时候才有意义)
unsigned: 无符号类型(非负)
zerofill: 0填充,(默认无符号)
c.浮点型与定点型
float:浮点型 decimal:定点型 decimal更精确
float(M,D)
decimal(M,D) 6,2
M: 精度 (总位数,不包含点)
D: 标度 (小数位)
d.字符串类型
e.时期时间类型
f.特殊的NULL类型
NULL 不是假,也不是真,而是"空"
任何运算符,判断符碰到NULL,都得NULL
NULL的判断只能用is null,is not null
NULL 影响查询速度,一般避免使值为NULL
四、select 5种子句介绍
Where 条件查询
group by 分组
having 筛选
order by排序
limit 限制结果条数
五、连接查询
左连接 右连接 内连接
作用: 从2张或多张表中, 取出有关联的数据
①连接查询 之连接查询语法
左连接的语法. Select Ltable.* ,Rtable.* from Ltable left join Rltable on Ltable.colName = Rtable.colName
内连接的语法. Select Ltable.* ,Rtable.* from Ltable inner join Rltable on Ltable.colName = Rtable.colName
②连接查询 之左右连接与内连接的区别
:左右连接可互换
:A left join B 等价于B right join A
内连接是左右连接的交集
:mysql没有外连接
六、子查询
子查询就是在原有的查询语句中,
嵌入新的查询,来得到我们想要的结果集。
一般根据子查询的嵌入位置分为, where型子查询,from型子查询
①where型子查询
where型子查询即是:把内层sql语句查询的结果作为外层sql查询的条件.
典型语法:
select * from tableName where colName = (select colName from tbName where ....) {where colName in (select colName from tbName where ..)}
典型案例:
1:查询最新的一条商品
2:查询出某大栏目下的所有商品
②exists型子查询
exists即:外层sql查询所查到的行代入内层sql查询,要使内层查询能够成立
查询可以与in型子查询互换,但效率要高.
典型语法:
select * from tablename where exists(select * from tableName where ...)
典型案例:
1:查询出某大栏目下的所有商品
③from型子查询
from型子查询即:把内层sql语句查询的结果作为临时表供外层sql语句再次查询.
典型语法: select * from (select * from tableName where ...) where....
典型案例:
1:查询出每个栏目下的最新商品
2:BBS中查询每个栏目下的最新帖子
七、存储引擎与字符集
学习目的:
出于速度和安全性的要求,选取合理的存储引擎.
考虑多语言与移植的问题,选取合理的字符集.
八、存储引擎是什么概念?
数据库对同样的数据,有着不同的存储方式和管理方式 在mysql中,称为存储引擎
①存储引擎与其特点
②存储引擎的选择
文章,新闻等安全性要求不高的,选myisam
订单,资金,账单,火车票等对安全性要求高的, 可以选用innodb
对于临时中转表,可以用memory型 ,速度最快
九、字符集 (charset)
一句话说字符集
字符集就是一个字符二进制字节的映射表
字符集是一套符号和编码的规则,不论是在 oracle 数据库还是在 mysql 数据库,都 存在字符集的选择问题,而且如果在数据库创建阶段没有正确选择字符集,那么可能在后期 需要更换字符集,而字符集的更换是代价比较高的操作,也存在一定的风险,所以,我们推 荐在应用开始阶段,就按照需求正确的选择合适的字符集,避免后期不必要的调整。
①字符集的选择
1:节省空间 建议在能够完全满足应用的前提下,尽量使用小的字符集。 因为更小的字符集意味着能够节省空间、 减少网络传输字节数,同时由于存储空间的较小间接的提高了系统的性能。 有很多字符集可以保存汉字,比如 utf8、gb2312、gbk、gb18030 等等, 但是常用的是gb2312 和 gbk。 2:兼容性 因为 gb2312 字库比 gbk 字库小,有些偏僻字(例如:洺)不能保存,因此 在选择字符集的时候一定要权衡这些偏僻字在应用出现的几率以及造成的影响,
3:在互联网上,国际化的趋势不可避免,且存储空间已经越来海量化, 因此推荐用utf8,如果开发内网系统,如内部OA等,可以考虑GBK。
十、校对规则collate(了解即可)
一句话说校对规则 校对规则就是对字符集中的字符的"座次表"
请你给 A a B b C c D d 按升序排列
十一、字符集专题-彻底搞定乱码
客户端字符集 client
服务器存储,查询,比较时 用的字符集 (connection)
查询结果字符集 results
①字符集专题-新旧网站并存案例
十二、索引与优化 之索引是什么?
该字典前面的"目录"全部丢失 请找出'华'这个字来
如何快速找到某个字 可以给字典加目录 对数据库来说,索引的作用即是给 "数据"加目录
①索引与优化 之索引算法(了解)
设有N条随机记录,不用索引, 平均查找N/2次,那么用了索引之后呢
btree(二叉树)索引
hash(哈希)索引
②索引与优化 之索引的好处与坏处
好外:
加快了查询速度(select )
坏处:
降低了增,删,改的速度(update/delete/insert) 增大了表的文件大小(索引文件甚至可能比数据文件还大)
③索引与优化 之索引的使用原则
不过度索引
索引条件列(where后面最频繁的条件比较适宜索引)
索引散列值,过于集中的值不要索引 例如:给性别"男","女"加索引,意义不大
④索引与优化 之索引类型
普通索引 (index)
主键索引 (primary key)
唯一索引 (unique)
全文索引 (fulltext)
⑤索引与优化 之索引创建语法(1)
建表时直接声明索引:
create table tableName (
列1 列类型 列属性,
....
列N 列类型 列属性,
primary key(列名),
index (列名),
unique(列名),
fulltext(列名)
)engine xxxxx charset xxxx
⑥索引与优化 之索引创建语法(2)
通过修改表建立索引
alter table add index (列名);
alter table add unique (列名);
alter table add primary key(列名);
alter table add fulltext (列名);
⑦索引与优化 之索引删除语法
删除主键:
alter table drop primary key
删除其他索引:
alter table drop index索引名
注:索引名一般是列名,如果不是, 可通过show index from tableName查看索引
十三、触发器
学习目标:
触发器的定义
触发器的应用场合
掌握触发器的创建语法
会创建简单触发器
①触发器定义
进行数据库应用软件的开发时, 我们有时会碰到表中的某些数据改变, 希望同时引起其他相关数据改变的需求, 利用触发器就能满足这样的需求。 它能在表中的某些特定数据变化时自动完成某些查询。 运用触发器不仅可以简化程序, 而且可以增加程序的灵活性。
触发器是一类特殊的事务 ,
可以监视某种数据操作(insert/update/delete), 并触发相关操作(insert/update/delete)
②触发器应用场合
1.当向一张表中添加或删除记录时,需要在相关表中进行同步操作。 比如,当一个订单产生时,订单所购的商品的库存量相应减少。
2.当表上某列数据的值与其他表中的数据有联系时。 比如,当某客户进行欠款消费, 可以在生成订单时通过设计触发器判断该客户的累计欠款是否超出了最大限度。
3.当需要对某张表进行跟踪时。 比如,当有新订单产生时,需要及时通知相关人员进行处理, 此时可以在订单表上设计添加触发器加以实现
③触发器创建语法 之4要素
监视地点 (table)
监视事件 insert/update/delete
触发时间 after/before
触发事件 insert/update/delete
④触发器创建语法
创建触发器的语法
create trigger 触发器名称 after/befor (触发时间) insert/update/delete (监视事件) on 表名 (监视地址) for each row begin sql1; .. sqlN; end
⑤触发器引用行变量(1)
⑥触发器的删除
drop trigger triggerName
十四、事务 之事务的概念
思考: 我去银行给朋友汇款, 我卡上有1000元, 朋友卡上500元, 我给朋友转账50元(无手续费), 如果,我的钱刚扣,而朋友的钱又没加时, 网线断了,怎么办?
①事务 之事务的ACID特性
原子性(Atomicity):原子意为最小的粒子,或者说不能再分的事物。 数据库事务的不可再分的原则即为原子性。 组成事务的所有查询必须: 要么全部执行,要么全部取消(就像上面的银行例子)。
一致性(Consistency):指数据的规则,在事务前/后应保持一致
隔离性(Isolation):简单点说,某个事务的操作对其他事务不可见的.
持久性(Durability):当事务完成后,其影响应该保留下来,不能撤消
②事务 之事务的用法
开启事务(start transaction) 执行sql操作(普通sql操作) 提交/回滚(commit/rollback)
注意:建表的时候, 选择 innodb引擎
十五、备份与恢复
①备份命令
备份单独库下面的所有表的方法
mysqldump -uuname -ppasswd dbname > /dir/filename
备份某一库下面的几个表的方法
mysqldump -uuname -ppasswd dbname table1 table2.. tableN > /dir/filename
备份多个库的方法
mysqldump -uname -ppasswd -B db1 db2 > /dir/filename
备份所有库的方法
mysqldump -uname -ppasswd -A > /dir/filename
②恢复命令
1:在命令行操作
mysql -uuname -ppasswd [databaseName]< /dir/filename
2:登陆mysql后source操作
mysql> use dbname;
mysql> source /dir/filename;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
本文出处:http://www.cnblogs.com/suihui/p/3172049.html
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
在此多谢原作者的分享。
mysql数据库字符集实践详解_mysql数据库 详解 之 自学成才1相关推荐
- 数据库 mysql详解_MySQL数据库详解
一.数据库概述 1.数据库与文件系统文件系统对比. 数据冗余和不一致性 数据访问 数据格式相对独立 数据完整性和原子性 数据的并发访问 数据的安全性问题 2.数据库概念 1.DBMS:数据库管理系统 ...
- mysql 修改库的校对集_mysql数据库的基本操作(增删改查、字符集、校对集)
MySQL数据库概述 MySQL数据库是经典的关系型数据库管理系统,MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Dat ...
- 用mysql创建一张电子杂志表_MySQL数据库——动手实践: 电子杂志订阅表的操作
数据库的学习在于多看.多学.多想.多动手,只有将理论与实际相结合,才能够体现出数据开发与管理的重要性,展现知识学习的价值与力量.接下来请结合本章所学的知识完成电子杂志订阅表的操作. [实践目标] 此实 ...
- mysql数据库不耀华答案_MySQL数据库应用与实践教程
目录 章数据库技术基础 1.1数据库系统概述 1.1.1数据库的概念 1.1.2数据管理技术的产生和发展 1.1.3数据库系统的特点 1.2数据模型 1.2.1数据处理的三个世界 1.2.2实体间的联 ...
- mysql r和n的区别_mysql数据库 r n
mysql集群的备份与还原 应用场景 当使用mysql集群数据库的时候,有时候会误删一些数据,那么数据就缺失了完整性,现在需要将数据进行备份,将误删的数据还原出来,这样保证数据的完整性. 操作步骤 注 ...
- mysql数据库任务驱动教程答案_MySQL数据库任务驱动式教程
项目一 认识数据库 任务1 认识数据库 1.1 了解数据库的基本应用 1.2 了解数据库的几个概念 1.3 认识关系型数据库 1.4 关系数据库设计 1.5 数据库应用系统体系结构 1.6 认识一个真 ...
- mysql数据库导出1049报错_MySQL数据库导出与导入及常见错误解决
MySQL命令行导出数据库: 1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录 如我输入的命令行:cd C:Program FilesMySQLMySQL Server ...
- mysql数据库在什么程序操作_MySQL数据库基本操作(一)
在安装MySQL后,会附带一些数据库,系统数据库会记录一些必需的信息,用户无法直接修改,附带的这些数据库作用: information--schema:存储系统中的一些数据库对象信息,如用户表信息.列 ...
- mysql数据库导出数据乱码问题_Mysql数据库导出来的是乱码如何解决
Mysql数据库导出来的是乱码如何解决 时间:2014-10-13 PHP网站程序人员在制作网站的时候,经常需要将本地上的数据库传到指定的服务器上,这时候需要在软件上先把数据导出来,然后在登录到远程p ...
- MySQL数据库应用 多表查询_mysql数据库-多表查询
今日任务 完成对MYSQL数据库的多表查询及建表的操作 教学目标 掌握MYSQL中多表的创建及多表的查询 掌握MYSQL中的表关系分析并能正确建表 昨天内容回顾: 数据库的创建 : create ...
最新文章
- Android之网络丢包
- 石家庄地铁线路查询系统
- 公安部拟规定:窃取个人信息不构成犯罪也处罚
- 使用ajax进行汽车详情表的查询
- 【Python】一道题吃够Python语法糖
- cocos2dx build_native.sh clean 命令报错的解决
- 键盘显示影响布局的解决方法
- nfc加密卡pm3和pm5区别_小米手环4/5 NFC添加加密门禁
- BP神经网络的数学原理及其算法实现
- 爬虫可视化点选配置工具之chrome插件简介
- MyBatis源码阅读(十二) --- Spring加载MyBatis过程
- Python模块下载常用地址
- 2020ISSCC 基于SRAM的存内计算15.5阅读记录
- xshell怎么上传文件
- 电路交换(Circuit Switching)
- matlab prob计算乘积
- AH8696_非隔离IC,AC220V降12V500MA,超高效简约电路,电源芯片IC*
- xampp php目录,htaccess文件,php,包括目录和Windows XAMPP配置噩梦
- c语言求最大公约数(辗转相除法)
- c语言编程贪吃蛇游戏 下载,C语言游戏编程 贪吃蛇游戏