你好
成都創(chuàng)新互聯(lián)公司專注于企業(yè)成都營銷網(wǎng)站建設(shè)、網(wǎng)站重做改版、固陽網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)、商城系統(tǒng)網(wǎng)站開發(fā)、集團公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為固陽等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
修改表的數(shù)據(jù)一般使用update語句
具體的話參考相關(guān)SQL文檔吧
不是幾句話能說明白的
祝你好運
望采納
修改MySQL數(shù)據(jù)庫名稱的方法如下:
1.語句修改法:
RENAME DATABASE db_name TO new_db_name
這個語法在mysql 5.1.7中被添加進來,到了5.1.23又去掉了。
2.如果所有表都是MyISAM類型的話,可以改文件夾的名字
把data目錄中的db_name目錄重命名為new_db_name
3.重命名所有的表
代碼如下:
4. mysqldump導(dǎo)出數(shù)據(jù)再導(dǎo)入
代碼如下:
5.使用shell腳本重命名所有的表
代碼如下:
插入數(shù)據(jù)
insert into 表名(字段) values(‘?dāng)?shù)據(jù)’);
insert into 表名1(name,age) select name,age from 表2; #表2 數(shù)據(jù)信息復(fù)制到表1
修改數(shù)據(jù)
update 表名 set '字段'='數(shù)據(jù)';??? #修改數(shù)據(jù)
delect from 表名 where 字段=值;?? #刪除數(shù)據(jù)
truncate table 表名;?????????? #清空所有數(shù)據(jù) 且無法恢復(fù)
DQL (數(shù)據(jù)查詢語言,用來查詢數(shù)據(jù))
select 要查詢字段 from 表名 [where 滿足條件];
[group by 分組依據(jù)]
[order by 排序依據(jù)]
[limit 限定輸出結(jié)果]
select * from 表名;???????? #查詢 表 所有數(shù)據(jù)
select 字段 字段 from 表名;????? #查詢指定字段數(shù)據(jù)
select st.name,st.age,th.name,th.age from st,th;??????????? #查詢一個或多個? 表中的數(shù)據(jù)
SELECT 字段名 FROM 表名 WHERE 條件1 OR 條件2 [...OR 條件n];
例:SELECT * FROM students WHERE age20 OR education!='大專'; #查詢年齡小于20或 者學(xué)歷不等于大專的學(xué)生信息
SELECT 字段名 FROM 表名 WHERE 條件1 AND 條件2 [...AND 條件n];
例:SELECT * FROM students WHERE age22 AND education='大專'; # 查詢年齡大于22 且學(xué)歷為大專的學(xué)生信息
select 字段 from 表名 where age in (12,17,23);????????????? #數(shù)據(jù)在指定 數(shù)據(jù) 里面
select 字段 from 表名 where age between 23 and 28;?????? #數(shù)據(jù)在23-28 之間
select * from 表名 order by 字段名;???????????????????? ?#排序,升序
select 字段 from 表名 order by desc;????????????????? ???? ?#?? 字段降序
select 字段1,字段2…… from 表名 group by? 分組依據(jù)字段;????????? #每個字段只顯示一條
例:SELECT id,sname,age,phone,place,GROUP_CONCAT(age,place) FROM students GROUP BY age,place; #查詢學(xué)生信息,根據(jù)age,place分組并顯示每一組的記 錄
select? distinct? 字段 from? 表名;????????????????????????? #去除結(jié)果重復(fù)行
例:SELECT DISTINCT age FROM students; # 查詢學(xué)生的年齡段情況
selcet 字段1,字段2,group_concat(分組依賴字段名) from 表名 group by 分組依賴字段名;??? #查詢每個組中記錄數(shù)量,顯示出來(使用關(guān)鍵字GROUP BY與GROUP_CONCAT()函數(shù)一起使用,可以將每個組中的記錄數(shù)量都顯 示出來)
例:selcet id,sname,age,phone,GROUP_CONCAT(age) FROM students GROUP BY age; # 查詢學(xué)生id,姓名,年齡,電話,根據(jù)age分組并顯示每一組的記錄
SELECT 字段名 FROM 表名 [其他條件] LIMIT int,int; 參數(shù)1是開始讀取的第一條記錄的 編號,參數(shù)2是要查詢記錄的個數(shù)
例:SELECT * FROM students ORDER BY age LIMIT 0,5; # 查詢學(xué)生信息,根據(jù)age 排序從第0位開始顯示,只顯示5條
select?字段名?from?表名where字段名?regexp '匹配方式';
(^匹配以特定字符或 字符串開頭的記錄,
$匹配以特定字符或 字符串結(jié)尾的記錄
[^字符集 合]匹配除“字符集合”以 外的任意一個字符
S1|S2|S3匹配S1 S2 S3中 的任意一個字符串
字符串{N }匹配字符串出現(xiàn)N次
字符串 {M,N}匹配字符串出現(xiàn)至 少M次,最多N次)
聚合函數(shù)查詢
select?count(字段名)?from 表名;?????????? #對于除"*"以外的任何參數(shù),返回所選擇集合中非NULL值的行的數(shù)目;對于參數(shù)“*”,返回選擇集 合中所有行的數(shù)據(jù),包含NULL值的行
例:SELECT COUNT(*) FROM students;
select?sum(字段名) from 表名;????????? #表中某個字段取值的總和
select avg(字段名) from 表名;???????#表中某個字段取值的平均值
select max(字段名) from 表名;?????? ?#表中某個字段取值的最大值
select min(字段名) from 表名;??????? ?#表中某個字段取值的最小值
連接查詢
a.內(nèi)連接:列出數(shù)據(jù)表中與連接條件相匹配的數(shù)據(jù)行,組合成新記錄【只有滿足條件的記錄才出現(xiàn)在查詢結(jié) 果】 內(nèi)連接的最常見的例子是相等連接,也就是連接后的表中的某個字段與每個表中的都相同
select 字段名1,字段名2? from 表名1?inner join 表名2?where 連接條件;
例:select s.name,d.dname?from staff s inner join department d WHERE s.dpid = d.id; # 連接員工表的dpid字段和部門表的id字段,并查詢員工姓名和部門名稱
b.外連接:與內(nèi)連接不同,外連接是指使用OUTER JOIN關(guān)鍵字將兩個表連接起來。外連接生成的結(jié)果集不僅 包含符合連接條件的行數(shù)據(jù) ,而且還包含左表(左外連接時的表) 右表(右外連接時的表)或 兩邊連接表(全外連接時的表)中所有的數(shù)據(jù)行。
select?字段名稱?from 表名1 LEFT|RIGHT?join 表名2 on 表名1.字段名1 = 表名2.字段名2;
例:select?s.name,d.dname FROM staff s LEFT JOIN department d ON s.dpid = d.id; #連接員工表的dpid字段和部門表的id字段,并查詢員工姓名和部門名稱,如果右表中沒有對應(yīng)的 連接數(shù)據(jù),會自動添加NULL值
例:SELECT s.name,d.dname FROM staff s RIGHT JOIN department d ON s.dpid = d.id; # 連接員工表的dpid字段和部門表的id字段,并查詢員工姓名和部門名稱,如果左表中沒有對應(yīng) 的連接數(shù)據(jù),會自動添加NULL值
例:SELECT 字段名1,字段名2 FROM 表名1,表名2 WHERE 連接條件 AND 限制條件; 例:SELECT s.name,d.dname FROM staff s,department d WHERE s.dpid = d.id AND s.dpid1; # 查詢員工姓名和部門名稱,條件是員工表的dpid字段與部門表中的id字段相等,并且dpid大于1
合并查詢結(jié)果
select 字段名?from ?表名 UNION?select 字段名 ?from 表名;?? #關(guān)鍵字UNION是將所 有的查詢結(jié)果合并到一起,并且去除相同記錄
例:SELECT dpid FROM staff UNION SELECT id FROM department; # 查詢員工表dpid與部門表id,如果有重復(fù)數(shù)據(jù),只顯示一次
select?字段名?drom 表名 UNION ALL?select 字段名from表名;?? #關(guān)鍵字UNION ALL 則只是簡單地將結(jié)果合并到一 起
例:SELECT dpid FROM staff UNION ALL SELECT id FROM department; # 查詢員工表dpid與部門表id,全部顯示
MySQL默認(rèn)的數(shù)據(jù)文件存儲目錄為/var/lib/mysql。假如要把MySQL目錄移到/home/data下需要進行下面幾步:
1、home目錄下建立data目錄
cd /home
mkdir data
2、把MySQL服務(wù)進程停掉
mysqladmin -u root -p shutdown
3、把/var/lib/mysql整個目錄移到/home/data
mv /var/lib/mysql /home/data/
這樣就把MySQL的數(shù)據(jù)文件移動到了/home/data/mysql下。
4、找到my.cnf配置文件
如果/etc/目錄下沒有my.cnf配置文件,請到/usr/share/mysql/下找到*.cnf文件,拷貝其中一個到/etc/并改名為my.cnf)中。命令如下:
[root@test1 mysql]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
5、編輯MySQL的配置文件/etc/my.cnf
為保證MySQL能夠正常工作,需要指明mysql.sock文件的產(chǎn)生位置。修改socket=/var/lib/mysql/mysql.sock一行中等號右邊的值為:/home/mysql/mysql.sock。操作如下:
vi my.cnf (用vi工具編輯my.cnf文件,找到下列數(shù)據(jù)修改之)
# The MySQL server
[mysqld]
port = 3306
#socket = /var/lib/mysql/mysql.sock(原內(nèi)容,為了更穩(wěn)妥用“#”注釋此行)
socket = /home/data/mysql/mysql.sock (加上此行)
6、修改MySQL啟動腳本/etc/init.d/mysql
最后,需要修改MySQL啟動腳本/etc/init.d/mysql,把其中datadir=/var/lib/mysql一行中,等號右邊的路徑改成你現(xiàn)在的實際存放路徑:home/data/mysql。
[root@test1 etc]# vi /etc/init.d/mysql
#datadir=/var/lib/mysql(注釋此行)
datadir=/home/data/mysql (加上此行)
7、重新啟動MySQL服務(wù)
/etc/init.d/mysql start
或用reboot命令重啟Linux
如果工作正常移動就成功了,否則對照前面的7步再檢查一下。
還要注意目錄的屬主和權(quán)限。
被取消的命令MySQL 之前提供了一個 rename database db_old to db_new 的命令來直接對數(shù)據(jù)庫改名,可能由于實現(xiàn)的功能不完備(比如,這條命令可能是一個超大的事務(wù),或者是由于之前的表很多還是 MyISAM 等),后來的版本直接取消了這條命令。更改數(shù)據(jù)庫名大致上有以下幾種方案:
一、mysqldump 導(dǎo)入導(dǎo)出要說最簡單的方法,就是直接用 mysqldump 工具,在舊庫導(dǎo)出再往新庫導(dǎo)入(最原始、最慢、最容易想到)的方法:舊庫 yttdb_old 導(dǎo)出(包含的對象:表、視圖、觸發(fā)器、事件、存儲過程、存儲函數(shù))
二、改整庫的表名利用 MySQL 更改表名的方法來批量把舊庫的所有表依次遍歷,改名為新庫的表。這種方法比第一種要快很多倍,但是沒有第一步操作起來那么順滑,不能一步到位。比如,要把數(shù)據(jù)庫 yttdb_old 改名為 yttdb_new,如果數(shù)據(jù)庫 yttdb_old 里只有磁盤表,那很簡單,直接改名即可?;蛘邔憘€腳本來批量改,非常簡單。但是一般舊庫里不只有磁盤表,還包含其他各種對象。這時候可以先考慮把舊庫的各種對象導(dǎo)出來,完了在逐一改完表名后導(dǎo)進去。
三、歷史方案其實在 MySQL 早期還有一種方法。假設(shè) MySQL 部署好了后,所有的 binlog 都有備份,并且二進制日志格式還是 statement 的話,那就可以簡單搭建一臺從機,讓它慢慢追主機到新的庫名,等確切要更改舊庫的時候,再直接晉升從機為主機即可。這里只需要從機配置一個參數(shù)來把舊庫指向為新庫:replicate-rewrite-db=yttdb_old-yttdb_new不過這種局限性很大,不具備標(biāo)準(zhǔn)化,不推薦。
總結(jié)其實針對 MySQL 本身改庫名,大致就這么幾種方法:
如果數(shù)據(jù)量小,推薦第一種;
數(shù)據(jù)量大,則推薦第二種;
數(shù)據(jù)量巨大,那就非 MySQL 本身能解決的了。
可通過部署第三方 ETL 工具,通過解析 MySQL 二進制日志或其他的方式來把舊庫數(shù)據(jù)直接讀取到新庫達到改名的目的等等。
新聞名稱:mysql怎么修改數(shù)據(jù)庫,mysql怎么修改數(shù)據(jù)庫密碼
分享URL:http://m.rwnh.cn/article14/dscodge.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號、做網(wǎng)站、網(wǎng)站內(nèi)鏈、手機網(wǎng)站建設(shè)、品牌網(wǎng)站制作、網(wǎng)站設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)