一 .mysql的基本操作
cmd命令来启动和停止Mysql
net start mysql /net stop mysql;
登录和退出msyql系统
mysql - h(localhost) 服务器地址或名字 -uroot 登录名 -p
在没有登录mysql的情况下备份和恢复数据库
备份:mysqldump -hlocalhost -uroot -p 要备份的数据库 >目标文件名
恢复:mysqldump -hlocalhsot -uroot -p 要恢复的数据库名<目标文件名
二.基本语法规定
1.注释:
单行注释:#注释的内容 或 _ _ 注释内容 (_ _ 之后有空格)
多行注释: /*注释内容 */
2.命名规则:
通常使用下划线命名:
create table tab_person(id int , person_name varchar(20));
三.php 操作mysql数据库的基本语法
mysql_content("数据库服务器名",”用户名“,”密码“); //连接数据库
mysql_query("set names utf8"); 或者 mysql_set_charset("utf8");//设置编码
mysql_query("use 数据库名"); 或者 mysql_set_db("数据库名"); //选择要使用的数据库
$sql = select * from 表名 ;
$result = mysql_query($sql);执行sql语句
mysql_fetch_array($result); // 获得一行数据 并使用字段名和下标存储
mysql_fetch_assoc(); //获得一行数据 并使用字段名存储
mysql_fetch_row();//获得一行数据 并使用下标索引存储
mysql_num_fields();//获得结果集的列数
mysql_field_name($result,$i); //得到结果集的第$i个字段
mysql_affected_rows();//返回最近一次与 连接句柄 关联的 INSERT,UPDATE 或 DELETE 查询所影响的记录行数
mysql_num_rows() 函数来获得 SELECT 所返回的记录行数。
四.数据定义语句
create database 数据库名 charset 字符集名
create table 表名(字段1,字段2,。。。。);
create view 视图名 as 一个select 语句
数据库定义语句
创建数据库:create database 数据库 charset 字符集名;
查看字符集: show charset;
显示所有数据库:show databses;
删除数据库: drop database 数据库名;
选择数据库: use 数据库名;
显示某个数据库的创建语句:show create database 数据库名
五.字段类型
整数型: tinyint(255) smallint(65535) mediumint(16777215) int(4294967295) bigint(18446744073709551615)
小数型: 浮点 float (单精度浮点型,精确到6-7位) double (双精度浮点型,精确到20位) 定点 decimal decimal(总长度,小数位数);
日期时间型:year timestamp time date datetime
timestamp类型:表示该字段的值在insert或update语句执行的时候,会自动获得当前的时间值;
字符串型 : set enum text varchar char
char类型:表示定长字符串 设定的长度表示该字段必须存储该个数的字符,如果不够,也会自动补空格充满
varchar类型:表示可变长度字符串 设定的长度表示该字段最多能存储该个数的字符,如果不够,则存储的字符长度以实际为准
enum类型:枚举类型 其实就是”单选项“类型;
create table tab_enum(address enum(’北京‘,’山东‘,’上海‘));
set类型: 就是”多选项“类型;
create table tab_set(aihao set(‘篮球‘,’足球‘,’排球‘));
unsigned: 不为负;
zerofill:对该字段的数据值,如果长度不够指定的长度 前面用0填充
create table tab_int2(id int(5) zerofill,name varchar(20));
创建数据表实例:
create table table_all(
id int auto_increment primary key comment ‘自增长的id‘,
user_name varchar(20) unique key omment ‘用户名‘,
password char(32) not null comment ‘密码‘,
age tinyint unsigned default 18 comment ‘年龄,默认为18‘,
email varchar(50),
birthday date,
reg_time datetime,
jiguan enum(‘北京‘,’上海‘,’河北‘),
aihao set(‘篮球‘,’足球‘,’排球‘),
money decimal(10,2)
);
auto_increment : 用于整数类型,实现该字段的自增长特性,它必须同时设定这个字段为一个primary key 或 unique key
primary key: 用于设定该字段为主键;
unique key :用于设定该字段的值具有唯一性
not null :用于设定该字段的值不能为null,
default : 默认值,用于设定该字段的值如果没有赋值,就使用一个默认值
comment: 字段说明文字
六.索引
索引 就是为了找某个表中的某行数据,而预先设定的一个排好序的"序列值";
通过索引,可以迅速找到对应的数据本身
主键索引: primary key (字段);
唯一索引: unique key (字段);
普通索引: key (字段);
外键索引:foreign key (字段) references 另一个表名(字段);
全文索引: fulltext key(字段)
索引的优点:加快数据的查找速度。
缺点: 数据的增删改操作就会变慢。
七.表选项设定
engine= 表存储引擎名;//设定表的存储引擎, innodb myisam
auto_increment=起始整数;//设定该表的自增长字段的起始值
charset=字符编码;//设定该表存储的字符类型
comment=表说明文字;
八.修改表
添加字段:alter table 表名 add [column] 新字段名 字段类型
alter table student add column email varchar(50) deault ‘@‘ not null comment ‘邮箱‘ ;
删除字段: alter table 表名 drop [column] 字段名
alter table student drop email;
修改表名:
alter table student rename to new_student;
删除一个表:
drop table if exists 表名; if exists 用于判断该表是否存在;
九.表操作相关语句
显示所有表:show databases;
显示表结构: desc 表名;
显示表的创建语句:show create table 表名;
重命名表:rename table 旧表名 to 新表名;
复制已有表结构:create table [if not exists ] 新表名 like 原表名;
创建索引: create [unique | fulltext] index 索引名 on 表名(字段1);
create unique index ix_f1 on tab_char(f1);
删除索引:
drop index 索引名 on 表名。
原文:http://www.cnblogs.com/chenchenphp/p/5270977.html