Mysql
Mysql是关系型数据库管理系统,在Web应用方面是最好的RDBMS。
数据库是按照数据结构来组织、存储和管理数据的仓库。
RDBMS即关系数据库管理系统的特点:1、数据以表格的形式出现
2、每行为各种记录名称
3、每列为记录名称所对应的数据域
4、许多的行和列组成一张表单
5、若干的表单组成database
一个关系型数据库由一个或数个表格组成。
Mysql的特点:1、开源的,2、支持大型的数据库,3、使用标准的SQL数据语言形式,4、运行于多个系统上,支持多种开发语言,5、对PHP有很好的支持,6、支持大型数据库,7、可以定制的。
PHP提供了mysql_connect()函数来连接数据库。
mysql_connect(host,username,password,dbname,port,socket);
参数 | 描述 |
host | 主机名或IP地址 |
username | mysql用户名 |
password | mysql密码 |
dbname | 数据库名称 |
port | 连接到mysql服务器的端口号 |
socket | 规定socket或要使用的pipe |
mysql_close()函数断开与mysql数据库的连接。
创建数据库:create database 数据名
使用mysqli_query(connection,query,resultmode);
参数 | 描述 |
connection | 规定要使用的mysql连接 |
query | 查询字符串 |
resultmode |
MYSQLI_USE_RESULT(需要检索大量数据库) MYSQLI_STORE_RESULT |
DROP命令删除数据库或mysql mysqladmin命令在终端来执行删除。
mysqli_select_db(connection,dbname)来选取一个数据库:mysqli_select_db(connection,dbname);
数值类型
类型 | 大小 | 用途 |
tingyint | 1字节 | 小整数值 |
smallint | 2字节 | 大整数值 |
mediumint | 3字节 | 大整数值 |
int | 4字节 | 大整数值 |
bigint | 8字节 | 极大整数值 |
float | 4字节 | 单精度浮点数值 |
double | 8字节 | 双精度 |
decimal | 小数值 |
日期和时间类型:DATETIME、DATE、TIMESTAMP、TIME、YEAR
类型 | 大小 | 格式 | 用途 |
DATE | 3 | YYYY-MM-DD | 日期值 |
TIME | 3 | HH:MM:SS | 年份值 |
YEAR | 1 | YYYY | 时间值或持续时间 |
DATETIME | 8 | YYYY-MM-DD HH:MM:SS | 混合日期和时间值 |
TIMESTAMP | 4 | YYYYMMDD HHMMSS | 混合日期和时间值,时间戳 |
字符串类型:char、varchar、binary、varbinary、blob、text、enum、set。
mysql创建数据表:create table table_name(column_name column_type);
auto_increment定义列为自增的属性,一般用于主键,数值会自动+1;
primary key定义列为主键。
engine设置存储引擎,charset设置编码
插入数据:insert into tablename (列名) values(数值);
查询数据:select * from tablename;
select * from tablename where
select * from tablename where and
修改数据:update set where
删除数据:delete from tablename where
mysqli_free_result()释放内存
mysqli_fetch_array()输出所有查询的数据
join按照功能大致分为:inner join(内连接,等值连接):获取两个表中字段匹配关系的记录
left join(左连接):获取左表所有记录
right join(右连接):获取右表所有记录
NULL值处理:IS NULL:当列的值不为null,运算返回true;
IS NOT NULL:当列的值不为null,运算返回true
<=>:比较操作符,当比较的两个值为null时返回true
正则表达式:SELECT name FROM person_tbl WHERE name REGEXP +{^,$,.,[…],[^…],+,*,{n},{n,m}};
M.ysql事务主要用于处理操作量大,复杂度高的数据。
事务用来管理insert、update、delete语句。
事务必须满足四个条件ACID:原子性(Atomicity,或称不可分割性)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability)。
mysql事务处理:1、begin 开始一个事务,rollback 事务回滚,commit 事务确认。
2、直接用set来改变mysql的自动提交模式:set autocommit=0 禁止自动提交, set autocommit=1开启自动提交。
alter:修改数据表名或者修改数据表字段。
删除、添加或修改表字段:alter table tablename drop i;
alter table tablename add i int;
alter table tablename modify c char(10);
alter table tablename chang i j int;
Mysql索引:索引可以大大提高mysql的检索速度
创建索引:create index indexname on tablename (username(length));
修改表的结构:alter table tablename add index indexname(columnname);
创建表的时候直接指定索引:create table mytable(ID INT NOT NULL,username VARCHAR(16) NOT NULL,INDEX [indexName] (username(length)));
)