乐趣区

前端开发对MySql使用总结

数据库的五个概念

  1. 数据库服务器
  2. 数据库
  3. 数据表
  4. 数据字段
  5. 数据行

那么这里下面既是对上面几个概念进行基本的日常操作。

数据库引擎使用

这里仅仅只介绍常用的两种引擎, 而 InnoDB 是从 MySQL 5.6. 版本以后 InnoDB 就是作为默认启动使用的存储引擎。

(1) InnoDB
        a, 支持 ACID,简单地说就是支持事务完整性、一致性;b, 支持行锁,以及类似 ORACLE 的一致性读,多用户并发;c, 独有的聚集索引主键设计方式,可大幅提升并发读写性能;d, 支持外键;e, 支持崩溃数据自修复;InnoDB 设计目标是处理大容量数据库系统,它的 CPU 利用率是其它基于磁盘的关系数据库引擎所不能比的。它是一个可靠地事务处理引擎,不支持全文本搜索

(2) MyISAM
        a, 不支持 每次查询具有原子性
        b, 只支持表所
        c, 强调的是性能,其执行数 度比 InnoDB 类型更快,但是不提供事务支持
        d, 如果执行大量的 SELECT,MyISAM 是更好的选择
        e, 缺点:就是不能在表损坏后恢复数据。(是不能主动恢复)

既然知道了这俩种引擎的优缺点,那么写一下几个常用的 API 操作。

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

当然,也可以通过修改配置文件 my.ini 在[mysqld]最后添加为上 default-storage-engine=InnoDB,重启服务,数据库默认的引擎修改为 InnoDB。

数据库操作

>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('新密码'); 

数据表操作

>SHOW TABLES;   // 列出库中所有的表

>DESCRIBE table1;  // 查看表结构

>show columns from 数据表;   // 显示表的所有段名以及类型

>CREATE TABLE 表名 (字段名 VARCHAR(20), 字段名 CHAR(1)); // 增加数据表和字段名

>DROP TABLE 表名;  // 删除表

>alter table stu rename as students;  // 将旧表明 stu 改为新表明 students。

表字段操作

添加字段

语法:ALTER TABLE 表名 ADD COLUMN 字段名 字段类型 DEFAULT NULL;

示例:ALTER TABLE dictionary ADD COLUMN calss VARCHAR(10) DEFAULT NULL;
-- dictionary 是表名

修改字段名称

语法:ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新字段类型 DEFAULT NULL;

示例:ALTER TABLE dictionary CHANGE calss class VARCHAR(10) DEFAULT NULL;

删除字段

语法:ALTER TABLE 表名 DROP COLUMN 字段名

示例:ALTER TABLE dictionary DROP COLUMN calss;

批量增加字段

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;                                             // 提交事务,事务结束

数据增删改查

MySQL 语句忽略大小写的。每张数据表只能存在一个主键。

Tip: 由于数据表的首个字段名 (就是主键, 假如是 id) 是不能重复命名的 (建议使用 id, 因为每张表只能存在一个主键), 所以建议删除的时候使用(where id=1) 键名来定位匹配更好。

var  sql = 'SELECT * FROM websites';   -- 查询整个 websites 表所有数据
var  sql = 'SELECT name FROM websites';  -- 查询整个 websites 表 name 字段数据

-- 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");

-- 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 字段的值

var delSql = 'DELETE FROM websites where id=2';  -- 删除 id= 2 的数据(当然)

-- 删除 name=lucas 的数据(建议使用 id, 因为每张表只能存在一个主键), 因为他会将表中所有 name=lucas 的值全部删除
delete from websites where name="lucas";   
退出移动版