1. phpMyAdmin 給表加欄位
進phpMyAdmin選中伺服器,選中資料庫,選中表,就應該能看見表的結構,也就是好多欄位,那個下面第三行,有個添加新欄位,在那裡添加新欄位 1,於表開頭,點擊添加,欄位填寫ID,後面類型選int,一般id都會在額外里選上AUTO_INCREMENT,當然也可以不選。
sql是
ALTER TABLE `(這里你要添加的表的名字)` ADD `id` INT NOT NULL AUTO_INCREMENT FIRST
2. 如何向mysql資料庫表中添加一個變數欄位
在select 語句中賦值給用戶變數的語法是 @ var_name := value ,這里的var_name 是變數名,value是正檢索的值.
1:變數可以用在以後語句中表達式可用的任何地方,例如where字句或者insert 語句中。
例如select @id :=cust_id from customers where cust_id='customer name';
delete from orders where cust_id = @id;
2:變數的另一個用途是保存在一個auto_increment列的表中 插入新的一行後last_insert_id()的結果
select @last_id :=Last_INSERT_ID();
LAST_INSERT_ID()返回新的AUTO_INCREMENT列值,通過將其保存在變數中,你可以在之後的語句中多次引用該值。
即使發起其他的語句創建他們自身的atuo_increment值,從而改變了last_insert_id()返回的值
3:用戶變數擁有單一的值,如果使用返回多行的語句來將值賦給一個變數,那麼只有最後一行的值被賦給了該變數。
4:要將一個變數顯示地設為一個特定值,使用set語句,set語法可以使用:=或者=來進行賦值
5:set也可以用來將一個select的結果賦給一個變數.
3. 怎麼在MySql里添加一個自動增長的ID欄位
以插入語句的方法來解決此問題。
如下參考:
1.在添加欄位之前,第一個zd應該首先檢查tb1表的當前結構。
注意事項:
MySQL使用的SQL語言是訪問資料庫最常用的標准化語言。MySQL軟體採用雙重許可政策,分為社區版和商業版,由於其體積小,速度快,整體擁有成本低,尤其是開源這一特點,一般中小型網站開發都選擇MySQL作為網站資料庫。
4. SQL如何添加欄位
增加欄位: alter table [表名] add 欄位名 smallint default 0 增加數字欄位,整型,預設值為0。
alter table [表名] add 欄位名 int default 0 增加數字欄位,長整型,預設值為0。
alter table [表名] add 欄位名 single default 0 增加數字欄位,單精度型,預設值為0。
alter table [表名] add 欄位名 double default 0 增加數字欄位,雙精度型,預設值為0。
alter table [表名] add 欄位名 Tinyint default 0 增加數字欄位,位元組型,預設值為0。
alter table [表名] add 欄位名 text [null] 增加備注型欄位,[null]可選參數。
alter table [表名] add 欄位名 memo [null] 增加備注型欄位,[null]可選參數。
alter table [表名] add 欄位名 varchar(N) [null] 增加變長文本型欄位大小為N(1~255)。
alter table [表名] add 欄位名 char [null] 增加定長文本型欄位大小固定為255。
(4)正式伺服器如何添加欄位擴展閱讀
全局變數
全局變數是sql server(WINDOWS平台上強大的資料庫平台)系統內部使用的變數,其作用范圍並不局限於某一程序,而是任何程序均可隨時調用全局變數通常存儲一些sql server(WINDOWS平台上強大的資料庫平台)的配置設定值和效能統計數據。
用戶可在程序中用全局變數來測試系統的設定值或Transact-SQL命令執行後的狀態值。有關sql server(WINDOWS平台上強大的資料庫平台) 全局變數的詳細情況請參見附錄。
注意:全局變數不是由用戶的程序定義的,它們是在伺服器級定應義的。只能使用預先說明及定義的變局變數。引用全局變數時,必須以「@@」開頭。局部變數的名稱不能與全局變數的名稱相同、否則會在應用中出錯。
5. mysql 如何給大表添加欄位
1. 能不加欄位就不要加, 能不修改欄位就不要修改, 能不刪除欄位就不要刪除, 等等為什麼要刪除欄位呢? 如果沒事,不要蛋疼的找事。 實際上,我們那次更新失敗後, 我們並沒有增加那個欄位, 然後我們一直運行到今天, 但是後來還是增加了其他欄位
2. 增加欄位的情況下, 如果可以通過增加一個新的表來增加這個欄位, 那麼就增加一個新的表, 通過cache 或 程序來實現join 的效果
3. 如果能停機, 並且停機的時間在你容忍范圍之內, 數據備份之後停機來做。 如果是主從備份,做這樣大的操作的時候,停掉主從備份, 萬一你掛了, 備份資料庫可以救你。 等到一切安全了, 重啟主從備份;
4. 如果上面都不行, 這個欄位還是要改,要加, 需要用到下面的方法, 也是扇貝網正在使用的方法;
修改大數據表的方法:
1. 被修改的表 Table A 需要有一個記錄時間戳的欄位, 這個時間戳就是每次數據更新,都會更新的欄位, 這個欄位需要有索引,在django里可以使用 auto_now=True
2. 創建一個新的臨時表 Table B, 不是tmp_table, 是一個新的表,但是是臨時使用的。 這個表和要修改的表擁有一模一樣的數據結構, 加上你要修改的部分, 比如增加的欄位;
3. 記錄下Table A 的索引
4. 刪除 Table B 的全部索引
5. 把Table A 的數據全部復制到Table B, 是不是執行 INSERT INTO B(field1, field2) SELECT field1, field2 FROM A? 當然不是, 這么做不還是鎖死了Table A 么, 這里的遷移就是一個需要細分的地方,需要寫一個腳本, 讓程序每次讀取比如5000條數據出來, 插入到Table B裡面, 因為Table B 是沒有索引的, 所以要當心不要使用多進程來做; 如果是多進程, 要確保插入到B的時候是不會有重復數據的; 如果是1000萬的數據,每次5000條, 假設這個操作需要500ms, 那麼 2000*200ms = 16 分鍾。 這只是一個估值, 具體情況和伺服器當時的情況有關, 不好細說。 另外, 我們要記錄這個遷移開始的時間點,記為t1;
6. 那麼這個時候Table A 的數據是不是都進入了Table B 呢, 應當說差不多大部分都進入了, 但5中說, 這大概需要16分鍾, 這么長的時間里, 可能有新的數據進入了, 也有可能已有的數據發生了更新, 所以我們要把Table A 中在t1 之後發生變化的數據查找出來, 然後更新到Table B 中, 我們的做法是:
記錄這個操作對應的時間點 t2
BEGIN;
DELETE FROM B WHERE updated_time > t1;
INSERT INTO B(field1, field2) SELECT field1, field2 FROM A WHERE updated_time >t1;
COMMIT;
7. 現在A 和 B 差不多該同步了吧? 差不多了, 但是6 執行完之後, A仍然在寫, 子子孫孫無窮盡也 ... , 但這個時候 A 和 B 的差異已經非常非常小了, 所以在下一步,我們在一個transaction 里執行下面的操作:
BEGIN;
DELETE FROM B WHERE updated_time > t2;
INSERT INTO B(field1, field2) SELECT field1, field2 FROM A WHERE updated_time >t2;
ALTER TABLE A RENAME TO C;
ALTER TABLE B RENAME TO A;
COMMIT;
8. Done
PS: 如果A表沒有時間戳, 實際上沒有先見之明的人大概不會想到要預留一個時間戳的欄位, 那麼幾乎是沒有辦法快速比較兩個表的差異的, 這個時候我選擇的做法就是放棄修改的數據, 只管新的數據了, 所以只要把t1, t2 換成id 就可以了, 這樣delete 語句也省略了, 因為沒啥好delete的;
千萬不要想著根據ID 來JOIN 然後更新B表的欄位來補齊新的數據, 如果能把兩個千萬級別的表JOIN起來, 內存有多大呢?
9. 上面的解決方案是我們第二次嘗試之後犯下了一個巨大的錯誤,這個錯誤導致網站癱瘓了大概20分鍾, 如果你和我一樣沒有發現問題,那麼這就是悲劇的地方。 問題就在於我是根據上面的PS來操作的, 然後B就華麗地變成了A. B 表至今身上是沒有索引的, 立即悲劇。 所以應當在第5步之後按照A的索引為B建立索引, 待索引全部好了之後, 再繼續6。 如果不是走PS這條路, 而是有時間戳的欄位的話, 在6的時候會發現這個問題, 因為那條Delete 慢的超出想像, 會明白這里是有問題的
10. 新手, 請在本地練習之後, 再實際操作; 可以多操作幾次, 寫一個腳本,伺服器上直接執行腳本.
6. oracle資料庫表裡有數據了,可以直接再添加一個欄位嗎
可以直接再添加一個欄位,添加方法為:
1、連接oracle資料庫服務,如果你的資料庫伺服器是部署在你的電腦上需要輸入用戶名和密碼,如果連接的是其他的伺服器,則不需要。
7. sqlite怎樣在原有基礎上添加新欄位
通過alter添加新的欄位SQL語句:
8. SQL表中如何添加欄位(菜鳥冰天雪地急求)
企業管理器。。。
一點就來。。。
新欄位記得設成空
9. sql server中如何為數據表增加欄位
sql server 使用SQL語句為數據表增加一個欄位,使用alter table子句。
語法:alter table 表格名 add 欄位名 數據類型 -alter table table_name add col_name char(5)