mysql 操作命令

删除约束
ALTER TABLE RecipeDetail DROP CONSTRAINT
pkRecipeDetailRnoMno
增加约束
ALTER TABLE RecipeDetail ADD CONSTRAINT
pkRecipeDetailRnoMno PRIMARY KEY(Rno,Mno);
ALTER TABLE RecipeDetail ADD CONSTRAINT
fkRecipeDetailMnoMedicine FOREIGN KEY(Mno)REFERENCES
Medicine (Mno);
ALTER TABLE Doctor ADD CONSTRAINT checkPsex CHECK( Psex IN
('男', '女'));
ALTER DOMAIN rfee DECIMAL(18,2) DROP CONSTRAINT rfee_test;
在mysql中导入数据:
load data local infile 'f:/file/medicine.txt' into table medicine lines t
erminated by '\r\n';
mysql 修改表名,列名,列类型,添加列,删除列

alter table tablename rename anothername;--修改表名
alter table tablename add column name type;--增加列
alter table tablename drop column columnname;--删除列
alter table tablename modify columnname char(10);--更改某一列的类型

按部门编号统计不同部门的医生人数
SELECT Ddeptno,COUNT(Dno) from Doctor GROUP BY Ddeptno;

在医生基本信息表中,按部门统计男医生的平均年龄不超过40岁的部门
编号,并按平均年龄升序显示
SELECT Ddeptno ,AVG(Dage) FROM Doctor WHERE Dsex='男' GROUP BY Ddeptno HAVING AVG(Dage)<=40 ORDER BY AVG(Dage);

比如我们要备份mysql中已经存在的名为linux的数据库,要用到命令mysqldump
命令格式如下:
[root@linuxsir01 root]# mysqldump -u root -p linux > /root/linux.sql
Enter password:在这里输入数据库的密码

通过上面的命令,我们要明白两件事,首先备份数据库是要以数据库管理员的身份备份;其次:备份目的地是/root,备份的文件名是linux.sql。其实备份的位置和文件名,根据自己的情况来定。文件名可以自己来取,路径也可以自己来安排;
比如我想把linux的数据库备份到/home/beinan,数据库的文件名为linuxsir031130.sql,所以应该输入如下的命令。

[root@linuxsir01 root]#mysqldump -u root -p linux > /home/beinan/linuxsir031130.sql
Enter password:在这里输入数据库管理员root的数据库密码

如果数据量大会占用很大空间,这时可以利用gzip压缩数据,命令如下:

#mysqldump -u root -p tm | gzip > tm_050519.sql.gz


这样我们到/home/beinan目录下就能发现mysql中名为linux的数据库的备份文件linuxsir031130.sql
综上所述,我们学习时要学会变通。

恢复:
首先我们还是要操作上面几个过程,比如添加数据库管理员(如果您没有添加过mysql数据库管理员的话),创建数据库等。
比如我们要把在/home/beinan这个目录中的linuxsir031130.sql这个备份,导入名为linux的数据库中,应该如下操作;
[root@linuxsir01 root]#mysql -u root -p linux < /home/beinan/linuxsir031130.sql
Enter password:在这里输入密码

如果机器好,数据库比较小,几分钟就好了。





使用触发器,在网上看到了很多例子,其实都是抄过来抄过去,而且是很老的版本,有写是不能在现在的mysql中成功使用的比如下面的网站;

http://www.qiyeku.com/xinwen/1165301.html

Example1:

创建表tab1
DROP TABLE IF EXISTS tab1;
CREATE TABLE tab1(
tab1_id varchar(11)
);

创建表tab2
DROP TABLE IF EXISTS tab2;
CREATE TABLE tab2(
tab2_id varchar(11)
);

创建触发器:t_afterinsert_on_tab1
作用:增加tab1表记录后自动将记录增加到tab2表中
DROP TRIGGER IF EXISTS t_afterinsert_on_tab1;
CREATE TRIGGER t_afterinsert_on_tab1
AFTER INSERT ON tab1
FOR EACH ROW
BEGIN

if new.tab1_id is not null then
insert into tab2(tab2_id) values(new.tab1_id);

end if;
END;

测试一下
INSERT INTO tab1(tab1_id) values('0001');

看看结果
SELECT * FROM tab1;
SELECT * FROM tab2;

但是当你开始创建出发器的时候就会遇到



然后累死你去慢慢检查还有百度google,就是找不到错误在什么地方,累死你,累死你...小白我就把全世界骂了一遍,

其实问题很简单 http://blog.sina.com.cn/s/blog_3fed3a390102e1eo.html

只要吧创建触发器的语句写到下面省略号的位置就可以了!

delimiter $$
...//你的语句,记得写begin哦
end$$
就像这样

delimitter $$
DROP TRIGGER IF EXISTS t_afterinsert_on_tab1;
CREATE TRIGGER t_afterinsert_on_tab1
AFTER INSERT ON tab1
FOR EACH ROW
BEGIN
insert into tab2(tab2_id) values(new.tab1_id);
END$$
然后你就会觉得世界很美好了!

把结束符号该回来

delimiter ;

变量的使用

http://blog.sina.com.cn/s/blog_5fe1c0a80100d8ds.html

SELECT id,name INTO @v1,@v2 FROM..



–添加约束
–添加主键
alter table student –student 表名
add constraint PK_stuNo primary key (studentNO) –studentNo 列名

–添加非空
alter table student
add constraint LoginPwd check (LoginPwd is not null)

–默认约束
alter table student
add constraint DF_address default(‘地址不详’) for address;

–检查约束
alter table Student
add constraint CK_borndate CHECK(BornDate>= ’1980-01-01′)

–唯一约束
alter table student
add constraint UQ_identityCard Unique (identityCard)

–外键约束

alter table result
add constraint FK_stuNo foreign key(studentNo) –外键列名
references student(studentNo) –student 主表
go

–删除约束
–alter table student
–drop constraint CK_borndate





sql 数据类型到 java 数据类型的映射:

http://www.java2v.com/CN/Tutorial/Java/0340__Database/JavaObjectTypesMappedtoJDBCTypes.htm



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值