数据库的五个概念
- 数据库服务器
- 数据库
- 数据表
- 数据字段
- 数据行
那么这里下面既是对上面几个概念进行根本的一样平常操纵。
数据库引擎利用
这里仅仅只先容常用的两种引擎,而InnoDB是从MySQL 5.6.版本以后InnoDB就是作为默认启动利用的存储引擎。 - <code>(1) InnoDB
- a,支持ACID,简朴地说就是支持事务完备性、同等性;
- b,支掣葱锁,以及雷同ORACLE的同等性读,多用户并发;
- c,独有的聚集索引主键设计方式,可大幅提拔并发读写性能;
- d,支持外键;
- e,支持崩溃数据自修复;
- InnoDB设计目的是处置惩罚大容量数据库体系,它的CPU利用率是其它基于磁盘的关系数据库引擎所不能比的。
- 它是一个可靠地事务处置惩罚引擎,不支持全文本搜索
- (2) MyISAM
- a,不支持 每次查询具有原子性
- b,只支持表所
- c,强调的是性能,其实行数 度比InnoDB范例更快,但是不提供事务支持
- d,如果实行大量的SELECT,MyISAM是更好的选择
- e,缺点:就是不能在表破坏后规复数据。(是不能自动规复)</code>
复制代码既然知道了这俩种引擎的优缺点,那么写一下几个常用的API操纵。 - <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>
复制代码固然,也可以通过修改配置文件my.ini 在[mysqld]末了添加为上default-storage-engine=InnoDB,重启服务,数据库默认的引擎修改为InnoDB。
数据库操纵- <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>
复制代码数据表操纵- <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>
复制代码表字段操纵
添加字段- <code>语法:ALTER TABLE 表名 ADD COLUMN 字段名 字段范例 DEFAULT NULL;
- 示例:ALTER TABLE dictionary ADD COLUMN calss VARCHAR(10) DEFAULT NULL;
- -- dictionary是表名</code>
复制代码修改字段名称- <code>语法:ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新字段范例 DEFAULT NULL;
- 示例:ALTER TABLE dictionary CHANGE calss class VARCHAR(10) DEFAULT NULL;</code>
复制代码删除字段- <code>语法:ALTER TABLE 表名 DROP COLUMN 字段名
- 示例:ALTER TABLE dictionary DROP COLUMN calss;</code>
复制代码批量增长字段- <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>
复制代码数据增编削查
MySQL语句忽略大小写的。每张数据表只能存在一个主键。
Tip: 由于数据表的首个字段名(就是主键,如果是id)是不能重复命名的(建议利用id,由于每张表只能存在一个主键),以是建议删除的时间利用(where id=1)键名来定位匹配更好。
查- <code>var sql = 'SELECT * FROM websites'; --查询整个websites表全部数据
- var sql = 'SELECT name FROM websites'; --查询整个websites表name字段数据</code>
复制代码增- <code>-- websites表必须存在(Id,name,url,alexa,country)这些字段名
- var addSql = '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>
复制代码改- <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>
复制代码删- <code>var delSql = 'DELETE FROM websites where id=2'; -- 删除id=2的数据(固然)
- -- 删除name=lucas的数据(建议利用id,由于每张表只能存在一个主键),由于他会将表中全部name=lucas的值全部删除
- delete from websites where name="lucas"; </code>
复制代码
来源:https://www.cnblogs.com/jing-tian/p/11687588.html |