『壹』 mysql中,怎麼一條條執行某個表中已經存好的語句
你要知道,只能有sql語句取出來才能執行。所以,你只要這么做:
從資料庫的表table1中,取出該欄位下的sql,如果sql有多行,那麼,我們,可以通過字元串分割等,把多條緩春喚sql分離出森派來,對每條sql逐一執行。或者,每個sql之間有分號的,直接一起擾凱執行多條也是可以的,只要把多條sql當作一條,一起用函數query下
『貳』 MySQL中如何執行SQL語句
MYSQL裡面執行SQL語句使用一個DOS命令:MYSQL.EXE
滑鼠雙擊MYSQL.EXE不一定能夠執行,因為那是連接的默認主機、用戶名、密碼,往往不能工作,你需要在CMD命令提示符下,執行命令的時候用參數指定這些內容,參數格式是:
MYSQL.EXE -h 主機名稱或者IP比如127.0.0.1 -u 用戶名稱比如root -p
『叄』 15個MySQL常用基本SQL語句
在學習SQL語句之前,首先需要區分幾個概念,我們常說的資料庫是指資料庫軟體,例如MySQL、Oracle、SQL Server等,而本文提到的資料庫是指資料庫軟體中的一個個用於存儲數據的容器。
在MySQL中,資料庫稱為database,數據表稱為table,一個資料庫軟體中有多個資料庫(databases),每個資料庫中又可以有多個數據表(tables),最終,數據是存儲在數據表中。
資料庫和數據表之間的關系可以用下面這個圖來表示,對於一個資料庫來說,有多個數據表。
在正式開始寫SQL語句之前,需要說明兩點。
這里通過MySQL Workbench來寫SQL代碼,在Workbench中,執行一條SQL語句的方式有兩種。
了解了這之後,接下來介紹一些常見的命令,分兩部分:資料庫常用命令和數據表常用命令。
1、查看有哪些資料庫
2、創建資料庫
創建一個名為Testdb的資料庫。
3、創建資料庫並指定編碼格式
有些時候,為了防止中文亂碼,創建資料庫的時候需要指定編碼格式。
4、使用某個資料庫
使用mydb這個資料庫,或者進入mydb這個資料庫。
5、刪除資料庫
刪除Testdb這個資料庫。
1、查看有哪些數據表
進入某個資料庫之後,想查看有哪些數據表,SQL語句為:
mydb是一個新建的資料庫,所以自然是沒有數據表。
2、創建數據表
建表SQL語句格式為:
說明: 每個欄位以逗號分隔,最後一個欄位不加逗號。
例如,給定一個學員信息表,如下表所示。
根據以上表格,建表SQL語句如下。
以上語句中,primary key表示主鍵,意思是這個欄位作為記錄的唯一標識,就像每個人的身份證號,都是唯一確定的。
3、查看錶結構
查看錶結構的SQL命令為:
執行該命令會顯示表stuinfo的基本結構,例如有哪些欄位,每個欄位是什麼類型,誰是主鍵等。
4、修改數據表
修改數據表通過drop子句進行,比如,建完表後,想增加一個欄位,SQL語句的格式為:
想在指定位置增加一個欄位,例如,在某個欄位後增加一個欄位,SQL語句的格式為:
如果在某個欄位之前增加欄位,用before即可。
例如,在欄位age後增加一個欄位major(專業),SQL語句為:
執行這個命令,再通過describe查看錶結構,會發現表中多了一個欄位major。
如果要刪除major這個欄位,通過drop子句,SQL語句為:
5、重命名表
重命名表通過alter+rename來實現,SQL語句格式為:
這里為了不影響之前創建的表,我們創建一個新表,SQL語句如下。
以上創建一個名為stuInfoTest的表,現在想將它的名稱改成stuinfotest1,SQL語句為:
6、刪除數據表
刪除數據表通過drop進行,SQL語句格式為:
例如,刪除數據表stuinfotest1,SQL語句為:
7、插入記錄
此時的表stuinfo是空的,沒有數據,我們要向表中插入記錄。
插入記錄通過insert into進行,SQL語句格式為:
例如,向表stuinfo插入一條記錄,SQL語句為:
注意:上方是一條SQL語句,為了可讀性換行,記住一條SQL語句默認以分號結尾。
如果需要一次性插入多條記錄,SQL語句格式為:
例如,向表stuinfo再插入兩條記錄,SQL語句為:
注意:如果設置了主鍵,插入記錄的主鍵欄位是不能重復的,也就是不能插入重復的記錄。
作業:大家可以按照上述方法將上面的學員信息表中的所有記錄都插入表stuinfo中。
8、查詢記錄
有了數據之後,就可以查詢記錄了,查詢記錄通過select子句進行。
例如,想查詢表stuinfo中的所有記錄,SQL語句為:
執行之後,就可以看到表stuinfo中的所有記錄了。
如果想查詢符合某個條件的記錄,就要用到where子句了,SQL格式為:
例如,想查詢stuid為20161001的記錄,SQL語句為:
9、刪除記錄
刪除記錄通過delete子句進行,SQL語句格式為:
例如,想刪除stuid為20161002的記錄,SQL語句為:
10、修改記錄
修改記錄通過update子句進行,update就是更新的意思,SQL語句格式為:
例如,想將學號(stuid)為20161001的記錄的姓名(stuname)更新為Jack,SQL語句為:
以上,就是MySQL中的基本SQL語句。
零基礎如何學習數據分析?查看下方專欄。
『肆』 如何利用Mysql命令行執行記事本中的SQL語句
先將記事本擴展名改成.sql,然後在命令行輸入SOURCE + 空格+文件路徑名。
注意:路徑名無需加引號,還有,路徑名中的「\」改成「/」。
『伍』 如何記錄MySQL執行過的SQL語句
第一種: 查 Slow query 的 SQL 語法:
log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 2 (超過 2秒的 SQL 語法記錄起來, 設短一點來記錄除錯也是一種方法 XD)
第二種: 設 MySQL Replication 用 binlog:
log_bin = /var/log/mysql/mysql-bin.log (此檔要用 mysqlbinlog 解來看)
mysql 會將所有 INSERT/UPDATE/DELETE 語法記於此(但是語法可能跟你想的不同), 這是要寫給 SLAVE 用的 log 檔
第三種: 推薦此方法, 將 MySQL 執行的每行指令全都記錄起來:
log = /tmp/mysql.log
restart mysql 後, tail -f /tmp/mysql.log 就可以看到羅!
補充: 最早前的方法是 mysqlmp, 然後執行完後再 mysqlmp, 再 diff, 但是在 DB > 1G 後就放棄此方法了 XD
『陸』 mysql 可以對執行成功的SQL語句進行回滾嗎
mysql命令行下怎樣實現數據的回滾操作
在MySQL有時執行了錯誤的update或者delete時導致大量數據錯誤恢復的辦法。執行時沒有開啟事務,也沒有對數據進行。這時就需要使用到sqlbinlog工具。
sqlbinlog需要開啟,具體的打開方法就不說了。
使用sqlbinlog會產生bin文件,恢復就需要用到這些文件。文件中記錄著資料庫的所有操作。(此方法的操作是將資料庫之前所執行的語句重新執行一次,以達到恢復效果)
具體步驟:1,先找到bin文件,一般都是在mysql的data文件夾中,結尾以.00000X等形式結束。
2,尋找需要還原的時間點 使用語句 mysqlbinlog 文件名 例(MySQLbinlog xxbin.000001)來查看內容,然後找到對應的具體時間
3,導出sql語句,使用語句 mysqlbinlog 文件名>sql文件路徑 例(mysqlbinlog xxxbin,00001>>a.sql | mysql -u root -p )
如果需要指定時間導出--start--date -stop='' --date='' 來導出指定時間執行的語句例(sqlbinlog --start-stop='2015-11-22 10:00:00' xxbin.000001>a.sql | mysql -u root -p )這句意思是導出在2015-11-22 10點之前的語句,反之start是導出時間之後的。 start和stop可以同時使用。
如果存在多個bin文件,則按照需要導出。
4,使用mysql將導出的語句執行一次。
『柒』 怎麼在mysql中直接調用在外面寫好的sql語句
方法一、使用source調用寫好的sql文件,例如:李手檔
mysql> source d:\db\load.sql
方法二、記事本打開sql文件,全選復制之後,粘貼到命哪亂令窗口裡面薯喊(點滑鼠右鍵粘貼)
『捌』 如何讓MYSQL執行寫在TXT里的SQL
用editplus打開一個空文本,把你的數據進去,然後使用替換規則,將空格替換成tab鍵(你在文本中輸入一個tab格,到替換處理)。
然後把替換好的數據粘貼在excel中;
把你手上的數據對應的列取出,在excel表中加入sql語句(寫在另外的列上)
再把拼好的數據到editplus中,替換tab製表符成空格,注意''單引號的使用(小竅門:在excel中有用到單引號的地方不妨加一個列,填入特殊符號,以便在這里替換成'單引號),換行處注意增加「;」分號。
sql 需要自己寫insert into mobilesegmeng XXXXXX的。這個方法教你怎麼拼接成sql語句。
『玖』 mysql資料庫執行sql語句怎麼寫
Mysql常用命令詳解
Mysql安裝目錄
資料庫目錄
/var/lib/mysql/
配置文件
/usr/share/mysql(mysql.server命令及配置文件)
相關命令
/usr/bin(mysqladmin mysqlmp等命令)
啟動腳本
/etc/init.d/mysql(啟動腳本文件mysql的目錄)
系統管理
連接MySQL
格式:
mysql -h 主機地址 -u用戶名 -p用戶密碼
例 1:連接到本機上的 MySQL。
hadoop@ubuntu:~$ mysql
-uroot -pmysql;
例 2:連接到遠程主機上的 MYSQL。
hadoop@ubuntu:~$ mysql -h
127.0.0.1 -uroot -pmysql;
修改新密碼
在終端輸入:mysql -u用戶名 -p密碼,回車進入Mysql。
>
use mysql;
> update user set password=PASSWORD('新密碼') where
user='用戶名';
> flush privileges; #更新許可權
> quit; #退出
增加新用戶
格式:grant select on 資料庫.* to
用戶名@登錄主機 identified by '密碼'
舉例:
例 1:增加一個用戶 test1 密碼為
abc,讓他可以在任何主機上登錄,並對所有資料庫有
查詢、插入、修改、刪除的許可權。首先用以 root 用戶連入
MySQL,然後鍵入以下命令:
mysql>grant select,insert,update,delete on *.* to
root@localhost identified by 'mysql';
或者
grant all privileges on *.* to
root@localhost identified by 'mysql';
然後刷新許可權設置。
flush privileges;
例
2:如果你不想 root 有密碼操作資料庫「mydb」里的數據表,可以再打一個命令將密碼消掉。
grant
select,insert,update,delete on mydb.* to root@localhost identified by
'';
刪除用戶
hadoop@ubuntu:~$ mysql
-u用戶名 -p密碼
mysql>delete from user where user='用戶名' and
host='localhost';
mysql>flush privileges;
//刪除用戶的資料庫
mysql>drop
database dbname;
資料庫操作
顯示所有的資料庫
mysql> show databases;(注意:最後有個
s)
創建資料庫
mysql> create database
test;
連接資料庫
mysql> use
test;
查看當前使用的資料庫
mysql> select
database();
當前資料庫包含的表信息
mysql>
show tables; (注意:最後有個 s)
刪除資料庫
mysql> drop database
test;
表操作
備注:操作之前使用「use
<資料庫名>」應連接某個資料庫。
建表
命令:create
table <表名> (<欄位名 1> <類型 1> [,..<欄位名 n> <類型
n>]);
例子:
mysql> create table MyClass(
> id int(4) not null
primary key auto_increment,
> name char(20) not null,
> sex int(4)
not null default '0',
> degree double(16,2));
獲取表結構
命令: desc 表名,或者show columns from
表名
例子:
mysql> describe MyClass
mysql> desc MyClass;
mysql>
show columns from MyClass;
刪除表
命令:drop table <表名>
例如:刪除表名為
MyClass 的表
mysql> drop table MyClass;
插入數據
命令:insert into <表名> [( <欄位名
1>[,..<欄位名 n > ])] values ( 值 1 )[, ( 值 n )]
例子:
mysql> insert
into MyClass values(1,'Tom',96.45),(2,'Joan',82.99), (2,'Wang',
96.59);
查詢表中的數據
查詢所有行
mysql>
select * from MyClass;
查詢前幾行數據
例如:查看錶 MyClass 中前 2 行數據
mysql>
select * from MyClass order by id limit 0,2;
或者
mysql> select * from
MyClass limit 0,2;
刪除表中數據
命令:delete from 表名 where 表達式
例如:刪除表
MyClass 中編號為 1 的記錄
mysql> delete from MyClass where id=1;
修改表中數據
命令:update 表名 set 欄位=新值,... where
條件
mysql> update MyClass set name='Mary' where id=1;
在表中增加欄位
命令:alter table 表名 add 欄位 類型
其他;
例如:在表 MyClass 中添加了一個欄位 passtest,類型為 int(4),默認值為 0
mysql> alter
table MyClass add passtest int(4) default '0'
更改表名
命令:rename table 原表名 to 新表名;
例如:在表
MyClass 名字更改為 YouClass
mysql> rename table MyClass to
YouClass;
更新欄位內容
命令:update 表名 set
欄位名 = 新內容
update 表名 set 欄位名 = replace(欄位名, '舊內容', '新內容');
例如:文章前面加入 4
個空格
update article set content=concat(' ', content);
資料庫導入導出
從資料庫導出資料庫文件
使用「mysqlmp」命令
首先進入 DOS
界面,然後進行下面操作。
1)導出所有資料庫
格式:mysqlmp -u [資料庫用戶名] -p
-A>[備份文件的保存路徑]
2)導出數據和數據結構
格式:mysqlmp -u [資料庫用戶名] -p
[要備份的資料庫名稱]>[備份文件的保存路徑]
舉例:
例 1:將資料庫 mydb 導出到 e:\MySQL\mydb.sql
文件中。
打開開始->運行->輸入「cmd」,進入命令行模式。
c:\> mysqlmp -h localhost -u
root -p mydb >e:\MySQL\mydb.sql
然後輸入密碼,等待一會導出就成功了,可以到目標文件中檢查是否成功。
例
2:將資料庫 mydb 中的 mytable 導出到 e:\MySQL\mytable.sql 文件中。
c:\> mysqlmp -h
localhost -u root -p mydb mytable>e:\MySQL\mytable.sql
例 3:將資料庫 mydb
的結構導出到 e:\MySQL\mydb_stru.sql 文件中。
c:\> mysqlmp -h localhost -u root -p
mydb --add-drop-table >e:\MySQL\mydb_stru.sql
備注:-h localhost
可以省略,其一般在虛擬主機上用。
3)只導出數據不導出數據結構
格式:
mysqlmp -u [資料庫用戶名] -p -t
[要備份的資料庫名稱]>[備份文件的保存路徑]
4)導出資料庫中的Events
格式:mysqlmp -u [資料庫用戶名] -p
-E [資料庫用戶名]>[備份文件的保存路徑]
5)導出資料庫中的存儲過程和函數
格式:mysqlmp -u [資料庫用戶名]
-p -R [資料庫用戶名]>[備份文件的保存路徑]
從外部文件導入資料庫中
1)使用「source」命令
首先進入「mysql」命令控制台,然後創建資料庫,然後使用該資料庫。最後執行下面操作。
mysql>source
[備份文件的保存路徑]
2)使用「<」符號
首先進入「mysql」命令控制台,然後創建資料庫,然後退出 MySQL,進入 DOS
界面。最後執行下面操作。
mysql -u root –p < [備份文件的保存路徑]
『拾』 如何記錄MySQL執行過的SQL語句
開啟記錄飢行MySQL執行數螞過SQL語句的方法很簡單:編輯/etc/my.cnf文件,在[mysqld]節薯肢埋下面添加:log=/var/lib/mysql/sql_row.log行(日誌的路徑自己根據需要定義)。
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
log=/var/lib/mysql/sql_row.log
# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
# symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
修改完畢後,記得重啟 MySQL:
service mysql restart
# 或者
/etc/init.d/mysqld stop
/etc/init.d/mysqld start
現在你去 /var/lib/mysql/ 路徑下的 sql_row.log 文件應該是能夠看到 MySQL 什麼時候執行了哪些程序了。