您的位置:首页 > 数据库 > MySQL

MYSQL数据表操作经验 初学者必看

2014-01-21 14:17 423 查看
特殊导入数据表的方法(CMD命令): 

D:\wamp\bin\mysql15.6.12\bin>mysql -uroot -p newpump < e:table.sql 

或者 用source命令
导入数据表之前设置数据表文件的编码(这里并不是设置数据表里的内容编码):


D:\wamp\bin\mysql15.6.12\bin>mysql -uroot -p --default-charcter-set=utf8 newpump < d:/newpump.sql


以下是设置数据表里的内容编码:
character_set_client     | utf8
character_set_connection | utf8
character_set_database   | utf8
character_set_filesystem | binary
character_set_results    | utf8
character_set_server     | utf8
character_set_system     | utf8

临时解决字符编码问题:
set character_set_client = gbk
set character_set_connection = gbk
set character_set_results = gbk

永久解决字符编码问题:
mysql/mysql.ini
[client] 客户端该项配置
default-character-set=gbk

一、数据表操作:
1 创建表:
约束(索引):提高表的查询效率,
primary key --- 主索引 确保 通过主键可以查找到唯一的记录。
主索引:主索引,值不能重复,一张表当中只能有1个主键
[索引名称] primary key (列名称);
唯一索引:
[索引名称] unique key (字段);
create table demo(
id int(4) auto_increment,
name varchar(20),
pwd varchar(20),
primary key(id),
unique key(name)
);

注意:
唯一索引常用在不能重复的字段上,
create table demo(
id int(4) auto_increment,
name varchar(20),
pwd varchar(20),
primary key(id),
unique key(name)
);

[constrain 索引名称] primary | unique  (列名).
索引:提高查询效率。

2 修改表结构:
1》 添加字段
alter table 表名称 add 列定义(uDate date)
alter table users add uDate date;
insert into users(uName,uAge,uSex,uTel,uDate) values("aaa",15,"2","11111","2012-12-12");

2》删除字段:
alter table 表名称 drop 字段名称;
3》修改字段:该字段 必须存在。
   alter table 表名称 change 旧字段的名称 新列定义;
alter table users change uTel uPhone varchar(30);

  注意:字段类型,索引 不做修改。
4》修改表的名称
alter table 表名 rename 新名字;
5》删除表
drop table 表名称
注意:删除表 同时把记录都删掉了。
二、外键约束:
1 什么外键约束
  表与表之间关系,主次 依赖的关系 能够保证表和表之间完整性,
  是的表和表之间的关联性更强
  
2 表的记录操作语句:
增 删 改 查
1》增加语句:
insert into 表名称(字段1,字段2,.....)
         values(值1,值2,值....)
2》修改语句:
update 表名称 set 字段1=值1 ,字段2=值2,.... 
where 条件
update books set bName="网站编程",bPublishing="清华大学出版社",bAuthor="张三" where bId=93;
注意:set 关键词后 只写你需要更新的字段。
3》删除语句:
delete from 表名称  where 条件
delete from books where bId=93

4》查找
   select * from 表名;
   查找   所有 从  表
   select 字段1,字段2,字段..... from 表名 [where] 
方便php调用,所以要给表名,字段名起一个别名。
    select 字段1 as 别名,字段2 as 别名..... from 表名 as 别名
 
3 外键:
两张表:
user 用户表
order 订单表 与用户相关的订单信息。
1》如果删除用户表中的某个用户数据,
 订单表中的用户订单数据就应该删掉,以保证数据的完整性
2》订单表当中不能随意插入记录(业务逻辑不允许)。
外键 就是解决删除,或修改用户记录的时候,
订单表同步做出删除或修改的。  
注意:
foreign key 外键 规则:
1》有外键约束的表 存储引擎 innodb  mysql 自带innodb
show create table 表名
ENGINE=InnoDB
2》外键表的两张表必须是有关系的,而且两张表 ,有索引关系
3》mysql 表外键的名称必须唯一。
数据库唯一,表名唯一,外建名唯一
4 创建外键约束:
1》格式:
create table 表名称(
列定义  
索引定义 
外键定义:
[constraint[约束名称]] foreign key[字段]
references [外键表名](外键字段1,外键字段2.....)
[on delete|on update [restrict|cascade|set null|no action] ]
)
restrict  拒绝对父表的更新或删除
cascade 父表更新或删除的时候,自动更新或删除子表中对应行。
set null 父表中更新或删除的时候,子表中的外键列 成为null
no action 不采取任何动作。

2》创建两表之间关联的关系:
alter tabl e 表名 add 外键的定义。
alter table `order` add foreign key(u_id) references user(id) on delete cascade

注意:操作外键时候,一定 主表中的记录更新或删除,引起从表中的记录的更新或删除。

谢谢关注websites博客!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  PHP mysql 数据库