mysql中depart_mysql 学习笔记

1)net stop mysql

net start mysql

2)c:\mysql\bin\mysqladmin flush-privileges      3)登陆mysql后,用flush privileges语句

6、创建数据库staffer

create database staffer;

7、以下的语句在mysql环境在运行

显示用户拥有权限的数据库       show databases;

切换到staffer数据库       use staffer;

显示当前数据库中有权限的表 show tables;

显示表staffer的结构   desc staffer;

8、创建測试环境

1)创建数据库staffer

mysql> create database staffer

2)创建表staffer,department,position,depart_pos

create table s_position

(

id int not null auto_increment,

name varchar(20) not null default ‘经理‘, #设定默认值

description varchar(100),

primary key PK_positon (id) #设定主键

);

create table department

(

id int not null auto_increment,

name varchar(20) not null default ‘系统部‘, #设定默认值

description varchar(100),

primary key PK_department (id) #设定主键

);

create table depart_pos

(

department_id int not null,

position_id int not null,

primary key PK_depart_pos (department_id,position_id) #设定复和主键

);

create table staffer

(

id int not null auto_increment primary key, #设定主键

name varchar(20) not null default ‘无名氏‘, #设定默认值

department_id int not null,

position_id int not null,

unique (department_id,position_id) #设定唯一值

);

3)删除

mysql>

drop table depart_pos;

drop table department;

drop table s_position;

drop table staffer;

drop database staffer;

9、改动结构

mysql>

#表position添加列test

alter table position add(test char(10));

#表position改动列test

alter table position modify test char(20) not null;

#表position改动列test默认值

alter table position alter test set default ‘system‘;

#表position去掉test默认值

alter table position alter test drop default;

#表position去掉列test

alter table position drop column test;

#表depart_pos删除主键

alter table depart_pos drop primary key;

#表depart_pos添加主键

alter table depart_pos add primary key PK_depart_pos (department_id,position_id);

10、操作数据

#插入表department

insert into department(name,description) values(‘系统部‘,‘系统部‘);

insert into department(name,description) values(‘公关部‘,‘公关部‘);

insert into department(name,description) values(‘客服部‘,‘客服部‘);

insert into department(name,description) values(‘財务部‘,‘財务部‘);

insert into department(name,description) values(‘測试部‘,‘測试部‘);

#插入表s_position

insert into s_position(name,description) values(‘总监‘,‘总监‘);

insert into s_position(name,description) values(‘经理‘,‘经理‘);

insert into s_position(name,description) values(‘普通员工‘,‘普通员工‘);

#插入表depart_pos

insert into depart_pos(department_id,position_id)

select a.id department_id,b.id postion_id

from department a,s_position b;

#插入表staffer

insert into staffer(name,department_id,position_id) values(‘陈达治‘,1,1);

insert into staffer(name,department_id,position_id) values(‘李文宾‘,1,2);

insert into staffer(name,department_id,position_id) values(‘马佳‘,1,3);

insert into staffer(name,department_id,position_id) values(‘亢志强‘,5,1);

insert into staffer(name,department_id,position_id) values(‘杨玉茹‘,4,1);

11、 查询及删除操作

#显示系统部的人员和职位

select a.name,b.name department_name,c.name position_name

from staffer a,department b,s_position c

where a.department_id=b.id and a.position_id=c.id and b.name=‘系统部‘;

#显示系统部的人数

select count(*) from staffer a,department b

where a.department_id=b.id and b.name=‘系统部‘

#显示各部门的人数

select count(*) cou,b.name

from staffer a,department b

where a.department_id=b.id

group by b.name;

#删除客服部

delete from department where name=‘客服部‘;

#将財务部改动为財务一部

update department set name=‘財务一部‘ where name=‘財务部‘;

12、 备份和恢复

备份数据库staffer

c:\mysql\bin\mysqldump -uroot -proot staffer>e:\staffer.sql

得到的staffer.sql是一个sql脚本。不包含建库的语句,所以你须要手工

创建数据库才干够导入

恢复数据库staffer,须要创建一个空库staffer

c:\mysql\bin\mysql -uroot -proot staffer

假设不希望后来手工创建staffer,能够

c:\mysql\bin\mysqldump -uroot -proot --databases staffer>e:\staffer.sql

mysql -uroot -proot >e:\staffer.sql

但这种话系统种就不能存在staffer库。且无法导入其它名字的数据库,

当然你能够手工改动staffer.sql文件

13、 从文本向数据库导入数据

1)使用工具c:\mysql\bin\mysqlimport

这个工具的作用是将文件导入到和去掉文件扩展名名字同样的表里。如

staffer.txt,staffer都是导入到staffer表中

经常使用选项及功能例如以下

-d or --delete 新数据导入数据表中之前删除数据数据表中的全部信息

-f or --force 无论是否遇到错误。mysqlimport将强制继续插入数据

-i or --ignore mysqlimport跳过或者忽略那些有同样唯一

keyword的行, 导入文件里的数据将被忽略。

-l or -lock-tables 数据被插入之前锁住表。这样就防止了,

你在更新数据库时,用户的查询和更新受到影响。

-r or -replace 这个选项与-i选项的作用相反;此选项将替代

表中有同样唯一keyword的记录。

--fields-enclosed- by= char

指定文本文件里数据的记录时以什么括起的, 非常多情况下

数据以双引號括起。 默认的情况下数据是没有被字符括起的。

--fields-terminated- by=char

指定各个数据的值之间的分隔 符。在句号分隔的文件里,

分隔符是句号。您能够用此选项指定数据之间的分隔符。

默认的分隔符是跳格符(Tab)

--lines-terminated- by=str

此选项指定文本文件里行与行之间数据的分隔字符串

或者字符。 默认的情况下mysqlimport以newline为行分隔符。

您能够选择用一个字符串来替代一个单个的字符:

一个新行或者一 个回车。

mysqlimport命令经常使用的选项还有-v 显示版本号(version),

-p 提示输入密码(password)等。

这个工具有个问题。无法忽略某些列,这样对我们的数据导入有非常大的麻烦。尽管

能够手工设置这个字段。但会出现莫名其妙的结果。我们做一个简单的演示样例

我们定义例如以下的depart_no.txt,保存在e盘,间隔为制表符\t

10 10

11 11

12 24

执 行例如以下命令

c:\mysql\bin\mysqlimport -uroot -proot staffer e:\depart_pos.txt

在这里没有使用列的包围符号。切割採用默认的\t,由于採用别的符号会有问题,

不知道是不是windows的原因

2)Load Data INFILE file_name into table_name(column1_name,column2_name)

这个命令在mysql>提示符下使用。长处是能够指定列导入。示比例如以下

c:\mysql\bin\mysql -uroot -proot staffer

mysql>load data infile "e:/depart_no.txt" into depart_no(department_id,position_id);

这两个工具在Windows下使用都有问题,不知道是Windows的原因还是中文的问题,

并且不指定的列它产生了空值,这显然不是我们想要的,所以慎重使用这些工具

mysql 学习笔记

标签:load   target   策略   切换   where   空值   信息   query   环境

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:http://www.cnblogs.com/slgkaifa/p/6817138.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值