MySQL修改列名和類型的示例語句如下:
網站建設哪家好,找創(chuàng)新互聯(lián)!專注于網頁設計、網站建設、微信開發(fā)、微信小程序開發(fā)、集團企業(yè)網站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了旺蒼免費建站歡迎大家使用!
alter table checks change column `check` `id` numeric(6);
你的checks表的第一個列名是SQL關鍵字check,為避免SQL解析錯誤,需要用 ` 號引起來,如果不是SQL關鍵字,可以不用引起來。
剛開始使用 mysql 的時候,剛開始是想要區(qū)分列名大小寫的問題,在網上看到很多辦法, 于是就 1、 linux 下 mysql 安裝完后是默認:區(qū)分表名的大小寫,不區(qū)分列名的大小寫; 2、 2、 root 帳號登錄后, 用 在/etc/my.cnf 中的[mysqld]后添加添加 lower_case_table_names=1, 重啟 MYSQL 服務,這時已設置成功:不區(qū)分表名的大小寫; lower_case_table_names 參數(shù)詳解: lower_case_table_names = 0 其中 0:區(qū)分大小寫,1:不區(qū)分大小寫 MySQL 在 Linux 下數(shù)據(jù)庫名、表名、列名、別名大小寫規(guī)則是這樣的: 1、數(shù)據(jù)庫名與表名是嚴格區(qū)分大小寫的; 2、表的別名是嚴格區(qū)分大小寫的; 3、列名與列的別名在所有的情況下均是忽略大小寫的; 4、變量名也是嚴格區(qū)分大小寫的; MySQL 在 Windows 下都不區(qū)分大小寫。 在 my.ini 中的[mysqld]后添加添加 lower_case_table_names=1,重啟 MYSQL 服務, 這時已設置成功:不區(qū)分表名的大小寫; lower_case_table_names 參數(shù)詳解: lower_case_table_names = 0 其中 0:區(qū)分大小寫,1:不區(qū)分大小寫 3、如果想在查詢時區(qū)分字段值的大小寫,則:字段值需要設置 BINARY 屬性,設置的方 法有多種: A、 創(chuàng)建時設置: 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 但是經過本人的實踐之后如果按此方法修改后表名的區(qū)分大小寫指的是你創(chuàng)建一 個表之后,它保留你創(chuàng)建時候的表名的原貌,但是在系統(tǒng)后臺存儲的時候此表是不 區(qū)分大小寫的,也就是說在創(chuàng)建一個表名僅大小寫不一樣的表是不可以的。 例如; 在修改為表名區(qū)分大小寫之后,也就是 lower_case_table_names = 0 (不管是在哪個系 統(tǒng)下)在 mysql 命令行界面下輸入 CREATE TABLE TEST ( Id int not null primary key, Name varchar not null ); 之后你執(zhí)行 show tables; 會包含一個 TEST 表,表名保留原來的大小寫, 你如果輸入 show tables like ‘t%’;是查不到這個新建的表的; 之后你在創(chuàng)建另外一個表, CREATE TABLE test ( Id int not null primary key, Name varchar not null ); 系統(tǒng)會提示你,表 test 已經存在,不允許創(chuàng)建。
?修改表:
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;
查看當前數(shù)據(jù)庫中所有表名稱:SHOW TABLES;
?查看指定表的創(chuàng)建語句:SHOW CREATE TABLE emp,查看emp表的創(chuàng)建語句;
?查看表結構:DESC emp,查看emp表結構;
?刪除表:DROP TABLE emp,刪除emp表;
那個 修改列名 各個數(shù)據(jù)庫都支持的寫法 到底有沒有, 我也不大確定.
下面是 3種數(shù)據(jù)庫 各自的寫法.
你可以切換著測試測試, 看看哪種寫法,是 各個數(shù)據(jù)庫都支持的寫法.
Oracle
SQL ALTER TABLE test_tab
2 RENAME COLUMN val TO val2;
Table altered.
SQL Server
調用 EXECUTE sp_rename 來進行 對數(shù)據(jù)庫表中,列名的變更。
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鍵上方的.
這是一個數(shù)據(jù)庫設計問題,不建議這樣做,最好樓主用_order做列名或者另起名字,一定要這樣做的話,可以這樣,
create table tt(id int(3),`order` varchar(12));把order用``框起來,這個鍵在esc下面,1左邊,記住別按shift哦 ,當然查詢的時候也要這樣做,否則會找不到列名。