十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
MySQL修改列名和类型的示例语句如下:
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、微信小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了旺苍免费建站欢迎大家使用!
alter table checks change column `check` `id` numeric(6);
你的checks表的第一个列名是SQL关键字check,为避免SQL解析错误,需要用 ` 号引起来,如果不是SQL关键字,可以不用引起来。
刚开始使用 mysql 的时候,刚开始是想要区分列名大小写的问题,在网上看到很多办法, 于是就 1、 linux 下 mysql 安装完后是默认:区分表名的大小写,不区分列名的大小写; 2、 2、 root 帐号登录后, 用 在/etc/my.cnf 中的[mysqld]后添加添加 lower_case_table_names=1, 重启 MYSQL 服务,这时已设置成功:不区分表名的大小写; lower_case_table_names 参数详解: lower_case_table_names = 0 其中 0:区分大小写,1:不区分大小写 MySQL 在 Linux 下数据库名、表名、列名、别名大小写规则是这样的: 1、数据库名与表名是严格区分大小写的; 2、表的别名是严格区分大小写的; 3、列名与列的别名在所有的情况下均是忽略大小写的; 4、变量名也是严格区分大小写的; MySQL 在 Windows 下都不区分大小写。 在 my.ini 中的[mysqld]后添加添加 lower_case_table_names=1,重启 MYSQL 服务, 这时已设置成功:不区分表名的大小写; lower_case_table_names 参数详解: lower_case_table_names = 0 其中 0:区分大小写,1:不区分大小写 3、如果想在查询时区分字段值的大小写,则:字段值需要设置 BINARY 属性,设置的方 法有多种: A、 创建时设置: CREATE TABLE T( A VARCHAR(10) BINARY ); B、 使用 alter 修改: ALTER TABLE `tablename` MODIFY COLUMN `cloname` VARCHAR(45) BINARY; C、mysql table editor 中直接勾选 BINARY 项。 乱码解决,更详细的看下字符集设置这篇 在[mysqld] 下增加下句 default-character-set=utf8 但是经过本人的实践之后如果按此方法修改后表名的区分大小写指的是你创建一 个表之后,它保留你创建时候的表名的原貌,但是在系统后台存储的时候此表是不 区分大小写的,也就是说在创建一个表名仅大小写不一样的表是不可以的。 例如; 在修改为表名区分大小写之后,也就是 lower_case_table_names = 0 (不管是在哪个系 统下)在 mysql 命令行界面下输入 CREATE TABLE TEST ( Id int not null primary key, Name varchar not null ); 之后你执行 show tables; 会包含一个 TEST 表,表名保留原来的大小写, 你如果输入 show tables like ‘t%’;是查不到这个新建的表的; 之后你在创建另外一个表, CREATE TABLE test ( Id int not null primary key, Name varchar not null ); 系统会提示你,表 test 已经存在,不允许创建。
修改表:
1.修改之添加列:给stu表添加classname列:
ALTER TABLE stu ADD (classname varchar(100));
2.修改之修改列类型:修改stu表的gender列类型为CHAR(2):
ALTER TABLE stu MODIFY gender CHAR(2);
3.修改之修改列名:修改stu表的gender列名为sex:
ALTER TABLE stu change gender sex CHAR(2);
4.修改之删除列:删除stu表的classname列:
ALTER TABLE stu DROP classname;
5.修改之修改表名称:修改stu表名称为student:
ALTER TABLE stu RENAME TO student;
查看当前数据库中所有表名称:SHOW TABLES;
查看指定表的创建语句:SHOW CREATE TABLE emp,查看emp表的创建语句;
查看表结构:DESC emp,查看emp表结构;
删除表:DROP TABLE emp,删除emp表;
那个 修改列名 各个数据库都支持的写法 到底有没有, 我也不大确定.
下面是 3种数据库 各自的写法.
你可以切换着测试测试, 看看哪种写法,是 各个数据库都支持的写法.
Oracle
SQL ALTER TABLE test_tab
2 RENAME COLUMN val TO val2;
Table altered.
SQL Server
调用 EXECUTE sp_rename 来进行 对数据库表中,列名的变更。
1 EXECUTE sp_rename N'dbo.test_tab.val', N'Tmp_val2', 'COLUMN'
2 GO
注意: 更改对象名的任一部分都可能会破坏脚本和存储过程。
1 EXECUTE sp_rename N'dbo.test_tab.Tmp_val2', N'val2', 'COLUMN'
2 GO
注意: 更改对象名的任一部分都可能会破坏脚本和存储过程。
MySQL
mysql ALTER TABLE test_tab
- CHANGE COLUMN val val2 VARCHAR(10); //
Query OK, 0 rows affected (0.13 sec)
Records: 0 Duplicates: 0 Warnings: 0
select * from student where '07001' = '1'
列名,表名可以用``号括起来,就是TAB键上方的.
这是一个数据库设计问题,不建议这样做,最好楼主用_order做列名或者另起名字,一定要这样做的话,可以这样,
create table tt(id int(3),`order` varchar(12));把order用``框起来,这个键在esc下面,1左边,记住别按shift哦 ,当然查询的时候也要这样做,否则会找不到列名。