MySQL基础笔记

连接数据库: 一般都是一个API函数(不同语言不同,但参数相似)XXX_connect( server,user,passwd,newlink,clientflag);

创建与删除一个数据库 在PHP是使用mysql_query(sql:是SQL的查询命令,connection:可选为SQL标识符)

选择数据库:mysql_select_db(dbname:数据名,connection:可选规定MySQL连接)

MYSQL的数据类型有 1,2,3,4,8,字节的整型,还有浮点,双精型。

创建数据表 CREAT TABLE tablename(colum_name :属性名 column_type:属性类型);

删除数据表 DROP TABLE tablename;

插入数据: INSERT INTO table_name(field1,field2,field2 ....)VALUES(value1 ,value2,value,“value3””)value就是数据的值。

查询数据: SELECT column_name,column_name FROM tablename [WHERE Clause][OFFSET M][LIMIT N]

  • 查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
  • SELECT 命令可以读取一条或者多条记录。
  • 你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据
  • 你可以使用 WHERE 语句来包含任何条件。
  • 你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。
  • 你可以使用 LIMIT 属性来设定返回的记录数。
WHERE语句:
  • 你可以使用AND或者OR指定一个或多个条件。
  • WHERE子句也可以运用于SQL的 DELETE 或者 UPDATE 命令。
  • WHERE 子句类似于程序语言中的if条件,根据 MySQL 表中的字段值来读取指定的数据。
MYSQL LIKE语句:在使用SELECT时

WHERE 子句中可以使用等号 (=) 来设定获取数据的条件,如 "runoob_author = 'Sanjay'"。

但是有时候我们需要获取 runoob_author 字段含有 "jay" 字符的所有记录,这时我们就需要在 WHERE 子句中使用 SQL LIKE 子句。

SQL LIKE 子句中使用百分号(%)字符来表示任意字符,类似于UNIX或正则表达式中的星号 (*)。

如果没有使用百分号(%), LIKE 子句与等号(=)的效果是一样的。

例:SELECT field1,field2,....fieldN table_name1,table_name2.... WHERE field1 LIKE condition1 [AND [OR]] field2 = "someone"


例如:SELECT * FROM tableA where name = “xy”

修改或者更新数据库中的数据使用UPDATE来操作
 UPDATE查询: UPDATE table_name SET field1 = new- value1,field2 = new -value2 [WHERE Clause] 

DELETE语句从数据表中删除数据
DELETE FROM table_name[ WHERE Clause]
  • 如果没有指定 WHERE 子句,MySQL表中的所有记录将被删除。
  • 你可以在 WHERE 子句中指定任何条件
  • 您可以在单个表中一次性删除记录。
排序 使用ORDER BY字句啦设定想按那个字段那种方式进行排序,在返回搜索结果。SELECT field ,field2,...FROM tablename1,tablename2, ORDER BY field1,field2 ..[ASC or DESC]
  • 你可以使用任何字段来作为排序的条件,从而返回排序后的查询结果。
  • 你可以设定多个字段来排序。
  • 你可以使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列。 默认情况下,它是按升序排列。
  • 你可以添加 WHERE...LIKE 子句来设置条件。


分组:使用 GROUP BY  :SELECT column column_name,functuon{column_name] FROM tabel_name WHERE column_name operator value GROUP BY column_name
函数我们可以使用COUNT , SUM, AVG等。

MYSQL连接的使用: 就是从多个数据表中读取数据,使用JOIN。在SELECT,UPDATE 和 DELETE。
INNER JOIN (内连接):获取两个表中字段匹 配关系的记录
LEFT JOIN 左连接:获取左表的所所有记录。
RIGHT JOIN:获取右表的所有记录

ALTER修改数据表名或者修改数据表字段:
增加或删除ALTER TABLE tablename DROP(ADD) 字段
修改 : ALTER TABLE tablename MODITY 字段名  类型
     ALTER TABLE  tablename CHANGE  字段名  新字段名 类型

创建索引  CREAT INDEX indexname ON mytablename(username(length)); 可以在创建表的时候在字段里创建。使用ALTER命令修改
ALTER TABLE tablename  ADD  PRIMARY KEY UNIQUE  IDEX ...

临时表:用于保存临时数据,连接关闭就会自动删除表:CREAT TEMPORARY TABLE tabename 要删除的话跟普通表一样。
复制表:使用 SHOW CREAT TABLE tablename获取创建数据表语句
  • 使用 SHOW CREATE TABLE 命令获取创建数据表(CREATE TABLE) 语句,该语句包含了原数据表的结构,索引等。
  • 复制以下命令显示的SQL语句,修改数据表名,并执行SQL语句,通过以上命令 将完全的复制数据表结构。
  • 如果你想复制表的内容,你就可以使用 INSERT INTO ... SELECT 语句来实现。
序列的使用由于一个数据表自由一个字段自增主键,如果想其他字段也自增就使用MySQL序列来实现
MySQL中最简单使用序列的方法就是使用 MySQL AUTO_INCREMENT 来定义列在字段后
取AUTO_INCREMENT值

在MySQL的客户端中你可以使用 SQL中的LAST_INSERT_ID( ) 函数来获取最后的插入表中的自增列的值。

在PHP或PERL脚本中也提供了相应的函数来获取最后的插入表中的自增列的值。

统计重复数据:
统计所有字段 SELECT COUNT(*)as  param1,param2,param3
过滤重复数据:如果你需要读取不重复的数据可以在 SELECT 语句中使用 DISTINCT 关键字来过滤重复数据。 SELECT DISTINCT  param1 ,param2
删除重复数据:

在C++中使用ADO

_variant_t和_bstr_t这两个类分别封装并管理VARIANT和BSTR这两种数据类型通过_variant_t和_bstr_t这两个类,就可以方便的把C++类型变量转换成COM中的变量了ADO是基于COM接口x实现的
先在stdafx.h最后添加#import "C:\Program Files (x86)\Common Files\System\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")
创建两个成员
_ConnectionPtr m_pConnection; //连接access数据库的链接对象
_RecordsetPtr m_pRecordset; //结果集对象
连接数据库:
m_pConnection = _ConnectionPtr(__uuidof(Connection));
m_pConnection->ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=数据路径";
m_pConnection->Open("", "", "", adConnectUnspecified);
//
m_pConnection.CreateInstance("XX.CONNECTION”);
m_pConnection->Open("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=数据路径","", "", "", adConnectUnspecified);
执行数据库操作:
_variant_t RecordsAffected;
CString AddSql;
AddSql.Format(_T("操作语句"));

m_pConnection->Execute((_bstr_t)AddSql, &RecordsAffected, adCmdText);第一个参数是命令,第二个是操作完成后影响的行数,第三个是命令的类型有以下:adCmdText表明是文本命令,adCmdTable表明是一个表名,adCmdProc是表名是一个存储过程 adCmdUnknow未知。指令返回一个记录集指针。

查询方法一般使用recordptr接口

CString checksql = "查询的命令语句";

m_pRecordset = m_pConnection.GetRecordSet((_bstr_t)checksql);

if(m_pRecordset->adoEOF)

//adoEOF指示当前记录位置位于 Recordset 对象的最后一个记录之后,就是查询返回的记录位于最后一个记录之后,就是没有。

{

没有找到记录

}

注意:ACCESS不支持truncate语句 要删除只能用delete 所以要删除全部只能就把表删了再建

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值