非后端开发Mysql日常使用小结
<h2 id="数据库的五个概念">数据库的五个概念</h2><ol>
<li>数据库服务器</li>
<li>数据库</li>
<li>数据表</li>
<li>数据字段</li>
<li>数据行</li>
</ol>
<p>那么这里下面既是对上面几个概念进行根本的一样平常操纵。</p>
<h2 id="数据库引擎利用">数据库引擎利用</h2>
<p>这里仅仅只先容常用的两种引擎,而InnoDB是从MySQL 5.6.版本以后InnoDB就是作为默认启动利用的存储引擎。</p>
<code>(1) InnoDB
a,支持ACID,简朴地说就是支持事务完备性、同等性;
b,支掣葱锁,以及雷同ORACLE的同等性读,多用户并发;
c,独有的聚集索引主键设计方式,可大幅提拔并发读写性能;
d,支持外键;
e,支持崩溃数据自修复;
InnoDB设计目的是处置惩罚大容量数据库体系,它的CPU利用率是其它基于磁盘的关系数据库引擎所不能比的。
它是一个可靠地事务处置惩罚引擎,不支持全文本搜索
(2) MyISAM
a,不支持 每次查询具有原子性
b,只支持表所
c,强调的是性能,其实行数 度比InnoDB范例更快,但是不提供事务支持
d,如果实行大量的SELECT,MyISAM是更好的选择
e,缺点:就是不能在表破坏后规复数据。(是不能自动规复)</code>
<p>既然知道了这俩种引擎的优缺点,那么写一下几个常用的API操纵。</p>
<code>show engines; --显示全部可用的引擎
show table status from myDB; --检察myDB数据库下的全部表利用的引擎
show create table 表名; --指定检察表名的全部段名以及引擎
create table 表名(id int primary key, name varchar(50)) engine=MyISAM; --建表的时间指定引擎
alter table 表名 Engine= MyISAM; --建完表后修改引擎为MyISAM</code>
<p>固然,也可以通过修改配置文件<code>my.ini</code>在末了添加为上default-storage-engine=InnoDB,重启服务,数据库默认的引擎修改为InnoDB。</p>
<h2 id="数据库操纵">数据库操纵</h2>
<code>>net start mysql//启动数据库和停止net stop mysql
>mysql -u root -p //默认登岸本机(-h是主机地址)
>SELECT USER(); //显示当前用户
>create database 数据库名; //创建数据库
>SELECT DATABASE(); //显示当前利用数据库
>SHOW DATABASES //显示全部数据库列表
>USE DATABASE 库名; //利用该数据库
>DROP DATABASE 库名 //删除数据库
>CMD终端:mysqladmin -u用户名 -p旧密码 password 新密码 //修改密码
>mysql语句:set password for 用户名@localhost = password('新密码'); </code>
<h2 id="数据表操纵">数据表操纵</h2>
<code>>SHOW TABLES; //列出库中全部的表
>DESCRIBE table1;//检察表结构
>show columns from 数据表; //显示表的全部段名以及范例
>CREATE TABLE 表名 (字段名 VARCHAR(20), 字段名 CHAR(1)); //增长数据表和字段名
>DROP TABLE 表名;//删除表
>alter table stu rename as students;//将旧表明stu改为新表明students。</code>
<h2 id="表字段操纵">表字段操纵</h2>
<h3 id="添加字段">添加字段</h3>
<code>语法:ALTER TABLE 表名 ADD COLUMN 字段名 字段范例 DEFAULT NULL;
示例:ALTER TABLE dictionary ADD COLUMN calss VARCHAR(10) DEFAULT NULL;
-- dictionary是表名</code>
<h3 id="修改字段名称">修改字段名称</h3>
<code>语法:ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新字段范例 DEFAULT NULL;
示例:ALTER TABLE dictionary CHANGE calss class VARCHAR(10) DEFAULT NULL;</code>
<h3 id="删除字段">删除字段</h3>
<code>语法:ALTER TABLE 表名 DROP COLUMN 字段名
示例:ALTER TABLE dictionary DROP COLUMN calss;</code>
<h3 id="批量增长字段">批量增长字段</h3>
<code>bagin; //事务开始
alter table em_day_data add f_day_house7 int(11);
alter table em_day_data add f_day_house8 int(11);
alter table em_day_data add f_day_house9 int(11);
alter table em_day_data add f_day_house10 int(11);
commit; //提交事务,事务结束</code>
<h2 id="数据增编削查">数据增编削查</h2>
<p>MySQL语句忽略大小写的。每张数据表只能存在一个主键。</p>
<p><strong>Tip:</strong> 由于数据表的首个字段名(就是主键,如果是id)是不能重复命名的(建议利用id,由于每张表只能存在一个主键),以是建议删除的时间利用(where id=1)键名来定位匹配更好。</p>
<h3 id="查">查</h3>
<code>varsql = 'SELECT * FROM websites'; --查询整个websites表全部数据
varsql = 'SELECT name FROM websites';--查询整个websites表name字段数据</code>
<h3 id="增">增</h3>
<code>-- websites表必须存在(Id,name,url,alexa,country)这些字段名
varaddSql = 'INSERT INTO websites(Id,name,url,alexa,country) VALUES(2,"taobao","http://wwww.taobao.com","3","CN")';
insert into table1(id,name,url,country) values(6,"lucas","https://wwww.lucas.com","CN");</code>
<h3 id="改">改</h3>
<code>-- where是定位到上面的增长数据(可以利用任何"字段名=值"来匹配),并更改俩个数据
var modSql = 'UPDATE websites SET name = "facebook",url = "http://www.facebook.com" WHERE Id = 2';
var modSql = 'update websites SET alexa="12" where name="taobao"';--定位name字段为taobao并更新了alexa字段的值</code>
<h3 id="删">删</h3>
<code>var delSql = 'DELETE FROM websites where id=2';-- 删除id=2的数据(固然)
-- 删除name=lucas的数据(建议利用id,由于每张表只能存在一个主键),由于他会将表中全部name=lucas的值全部删除
delete from websites where name="lucas"; </code><br><br/><br/><br/><br/><br/>来源:<a href="https://www.cnblogs.com/jing-tian/p/11687588.html" target="_blank">https://www.cnblogs.com/jing-tian/p/11687588.html</a>
页:
[1]