关于mysql语法的几个问题

make1me1laugh 2004-04-22 11:11:47
假设现在有一个如下结构的数据表

create table books
(
publisher varchar(50),
author varchar(200),
price decimal(5,2),
pageCount int(5) not null,
);

1.修改表结构时比如要把author字段设为not null,那么alter就要写成
alter table books modify author varchar(200) not null;
而这句中的varchar(200)是和原来一样的,我的问题就是能否有指令用来
修改表结构时只要写出有改变的部分呢?
比如像:command table books modify author not null;
原来的varchar(200)不变,只是给加上not null的限制;

2.比如要定义一个pageCount(页数)字段,值形如 20千字、30千字,
这个 千字 那么如何实现?

3.有时候输入sql语句执行后会有提示信息告诉有几个warning,
请问如何查看具体warning信息?

4.我如果有个现成的表记录文件,要是想导入表中(就是用load data local infile "text.txt" into table books;),但是和表的字段结构顺序不同,
应该怎么改?
比如表结构是 author | price | publisher
而现在这个文本文件的写法是
清华大学出版社 29 陆中正
就是要把现在的表结构改成
publisher | price | author
就好了

5.要是想把表中某个字段值为null的记录删除怎么写sql?
也就是想问问sql语句中null应该怎么表示
当然你知道我指的不是字符串"null"

6.我初学,目前只知道alter语句一句只能做一处修改
比如要把表中的publisher,author,price,barCode几个字段都设为not null,
而我只会一句改一处
就是先alter table books modify publisher varchar(50) not null;
然后 alter table books modify author varchar(200) not null;
再 alter table books modify price decimal(5,2) not null;
......
这样很麻烦啊,能不能一句就解决问题?

7.问题6中要对几处要修改的地方所做的修改都是一样的(都是改成not null)
要是对表中几个几个字段分别所做的修改是不同的呢
能不能用一句sql解决?
比如
先 alter table books modify publisher varchar(20) not null;
然后alter table books modify author varchar(200) null;
再 alter table books modify price decimal(5,3) null;
.....
把以上几句能否用一句sql解决?


小弟出学,遇到不少问题,希望我把问题描述清楚了
也希望各位高人帮帮我
谢谢哦!!!!!
...全文
17 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
make1me1laugh 2004-04-23
  • 打赏
  • 举报
回复
多谢大家,我研究研究先
有问题再探讨
谢谢!!!
tt1226 2004-04-23
  • 打赏
  • 举报
回复
你可以下载个sqlyog,图形话界面,直接进去修改表结构和表记录,没有找到的话找我,QQ:6372575
make1me1laugh 2004-04-23
  • 打赏
  • 举报
回复
大家帮个忙啊~
shuixin13 2004-04-23
  • 打赏
  • 举报
回复
1.修改表结构时只要写出有改变的部分呢?
>>
如果是要设置或删除字段的默认值,
那是可以的
ALTER TABLE tbl_name ALTER col_name {SET DEFAULT literal | DROP DEFAULT}



2.比如要定义一个pageCount(页数)字段,值形如 20千字、30千字,
这个 千字 那么如何实现?
>>
无法实现.
只能通过后期数据集处理

3. 请问如何查看具体warning信息?
>>
如果你通过C API 连接 MySQL ,
那可以使用 C API 函数 mysql_info() 来查看这个信息
如果你使用的 MySQL 4.1 以上版本
也可以使用 SHOW WARNINGS; 语句来查看


4.我如果有个现成的表记录文件,要是想导入表中,但是和表的字段结构顺序不同,应该怎么改?
>>
LOAD DATA INFILE 'C:/Sql/OutFile.csv'
INTO TABLE yourtable (col3, col1, col2);

5.要是想把表中某个字段值为null的记录删除怎么写sql?
SELECT * FROM yourtable WHERE Col1 IS NULL;
DELETE yourtable WHERE Col1 IS NULL;

6.目前只知道alter语句一句只能做一处修改
>>
ALTER TABLE books modify publisher varchar(50) not null,
modify author varchar(200) not null,
modify price decimal(5,2) not null;


7.问题6中要对几处要修改的地方所做的修改都是一样的(都是改成not null)
>>
与上题相似
msp780212 2004-04-23
  • 打赏
  • 举报
回复
想走捷径,可以呀,你把MYSQL改写一下,让它有这样的功能。


楼主很聪明
make1me1laugh 2004-04-22
  • 打赏
  • 举报
回复
各位看到的不回答也不要紧
看我这么懒的人打这么多字也不容易
大家帮忙顶顶啊
有分的
谢谢啊!

56,681

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧