Mysql學習積累之一[網摘收藏個人學習參考]
之前主要使用Oracle,對MySQL不熟悉.以為兩者差不多,但發現其實還是有點區別,現在開始學習Mysql.
任何時候,技術沒有早晚,看到自己缺少的,就只能自己主動補鈣.:)
收藏一篇文章如下,參考:http://www.centos.bz/2011/07/mysql-frequently-used-commands/.所有權歸原作者.
============================================
登入MySQL,如果連線遠端資料庫,需要用-h指定hostname。
- # [mysql dir]/bin/mysql -h hostname -u root -p
建立一個資料庫。
- mysql> create database [databasename];
列出所有資料庫。
- mysql> show databases;
切換到一個資料庫。
- mysql> use [db name];
顯示一個資料庫的所有表。
- mysql> show tables;
檢視資料表的欄位格式。
- mysql> describe [table name];
刪除一個資料庫。
- mysql> drop database [database name];
刪除一個資料表。
- mysql> drop table [table name];
顯示一個資料表的所有資料。
- mysql> SELECT * FROM [table name];
返回指定資料表的各列資訊。
- mysql> show columns from [table name];
使用值“whatever”過濾顯示選定的某些行。
- mysql> SELECT * FROM [table name] WHERE [field name] = “whatever”;
顯示所有包含name為”Bob”和phone number為“3444444”的記錄。
- mysql> SELECT * FROM [table name] WHERE name = “Bob” AND phone_number = `3444444`;
顯示所有不包含name為”Bob”和phone number為“3444444”的記錄,並以phone_number欄位排序。
- mysql> SELECT * FROM [table name] WHERE name != “Bob” AND phone_number = `3444444` order by phone_number;
顯示所有的name以字母“bob”開頭和phone number為“3444444”的記錄。
- mysql> SELECT * FROM [table name] WHERE name like “Bob%” AND phone_number = `3444444`;
顯示name以字母“bob”開頭和phone number為“3444444”的第1至第5條記錄。
- mysql> SELECT * FROM [table name] WHERE name like “Bob%” AND phone_number = `3444444` limit 1,5;
使用正規表示式查詢記錄。使用“正規表示式二進位制”強制區分大小寫。此命令查詢以a開頭的任何記錄。
- mysql> SELECT * FROM [table name] WHERE rec RLIKE “^a”;
返回唯一不同的記錄。
- mysql> SELECT DISTINCT [column name] FROM [table name];
以升序或降序顯示選定的記錄。
- mysql> SELECT [col1],[col2] FROM [table name] ORDER BY [col2] DESC;
返回行數。
- mysql> SELECT COUNT(*) FROM [table name];
統計指定列值的總和。
- mysql> SELECT SUM(*) FROM [table name];
聯結表。
- mysql> select lookup.illustrationid, lookup.personid,person.birthday from lookup left join person on lookup.personid=person.personid=statement to join birthday in person table with primary illustration id;
新建一個使用者。以root登入。切換到mysql資料庫,建立使用者,重新整理許可權。
- # mysql -u root -p
- mysql> use mysql;
- mysql> INSERT INTO user (Host,User,Password) VALUES(`%`,`username`,PASSWORD(`password`));
- mysql> flush privileges;
從unix命令列更改使用者密碼。
- # [mysql dir]/bin/mysqladmin -u username -h hostname.blah.org -p password `new-password`
從mysql命令列更改使用者密碼。以root登入,設定密碼,更新許可權。
- # /etc/init.d/mysql stop
- # mysqld_safe –skip-grant-tables &
- # mysql -u root
- mysql> use mysql;
- mysql> update user set password=PASSWORD(“newrootpassword”) where User=`root`;
- mysql> flush privileges;
- mysql> quit
- # /etc/init.d/mysql stop
- # /etc/init.d/mysql start
root密碼為空時,設定root密碼。
- # mysqladmin -u root password newpassword
更新root密碼。
- # mysqladmin -u root -p oldpassword newpassword
允許使用者“bob”從localhost以密碼“passwd”連線伺服器。以root登入,切換mysql資料庫。設定許可權,更新許可權。
- # mysql -u root -p
- mysql> use mysql;
- mysql> grant usage on *.* to bob@localhost identified by `passwd`;
- mysql> flush privileges;
為資料庫db設定許可權。以root登入,切換到mysql資料庫,授予許可權,更新許可權。
- # mysql -u root -p
- mysql> use mysql;
- mysql> INSERT INTO db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv) VALUES (`%`,`databasename`,`username`,`Y`,`Y`,`Y`,`Y`,`Y`,`N`);
- mysql> flush privileges;
或者
- mysql> grant all privileges on databasename.* to username@localhost;
- mysql> flush privileges;
更新已存在表的資料。
- mysql> UPDATE [table name] SET Select_priv = `Y`,Insert_priv = `Y`,Update_priv = `Y` where [field name] = `user`;
刪除表中[field name] = ‘whatever’的行。
- mysql> DELETE from [table name] where [field name] = `whatever`;
更新資料庫的許可權/特權。
- mysql> flush privileges;
刪除列。
- mysql> alter table [table name] drop column [column name];
新增列到db。
- mysql> alter table [table name] add column [new column name] varchar (20);
更改列名。
- mysql> alter table [table name] change [old column name] [new column name] varchar (50);
增加唯一的列。
- mysql> alter table [table name] add unique ([column name]);
設定列值大點。
- mysql> alter table [table name] modify [column name] VARCHAR(3);
刪除唯一列。
- mysql> alter table [table name] drop index [colmn name];
匯入一個CSV檔案到表。
- mysql> LOAD DATA INFILE `/tmp/filename.csv` replace INTO TABLE [table name] FIELDS TERMINATED BY `,` LINES TERMINATED BY `
` (field1,field2,field3);
匯出所有資料庫到sql檔案。
- # [mysql dir]/bin/mysqldump -u root -ppassword –opt >/tmp/alldatabases.sql
匯出一個資料庫。
- # [mysql dir]/bin/mysqldump -u username -ppassword –databases databasename >/tmp/databasename.sql
從一個資料庫匯出一個表。
- # [mysql dir]/bin/mysqldump -c -u username -ppassword databasename tablename > /tmp/databasename.tablename.sql
從sql檔案還原資料庫(資料表)。
- # [mysql dir]/bin/mysql -u username -ppassword databasename < /tmp/databasename.sql
建立資料表例1。
- mysql> CREATE TABLE [table name] (firstname VARCHAR(20), middleinitial VARCHAR(3), lastname VARCHAR(35),suffix VARCHAR(3),officeid VARCHAR(10),userid VARCHAR(15),username VARCHAR(8),email VARCHAR(35),phone VARCHAR(25), groups VARCHAR(15),datestamp DATE,timestamp time,pgpemail VARCHAR(255));
建立資料表例2。
- mysql> create table [table name] (personid int(50) not null auto_increment primary key,firstname varchar(35),middlename varchar(50),lastnamevarchar(50) default `bato`);
相關文章
- Mysql學習積累之二[網摘收藏個人學習參考]MySql
- mybatis學習參考MyBatis
- 神經網路學習參考神經網路
- 深度學習程式碼積累深度學習
- webpack學習筆記丁點積累Web筆記
- Vue學習(四)元件(參考)Vue元件
- APEX學習資料參考
- JAVA學習筆記及知識積累Java筆記
- 程式設計師的學習和積累程式設計師
- 個人學習卷積神經網路的疑惑解答卷積神經網路
- MySQL學習筆記之一MySql筆記
- 嵌入式學習參考資料
- vue學習資源(參考連結)Vue
- 知識積累,韓語中的俗語學習
- sql查詢學習和實踐點滴積累SQL
- 個人學習
- 學習收藏夾
- BOOST庫 學習參考完全開發指南
- JavaSE 學習參考:方法的基本概念Java
- vue 個人積累Vue
- 一千行 MySQL 詳細學習筆記(值得學習與收藏)MySql筆記
- php+mysql 個人學習部落格PHPMySql
- [網摘學習]Git版本恢復命令resetGit
- 程式設計師要不斷學習和實時積累程式設計師
- Google 的 Java 編碼規範,參考學習!GoJava
- 給軟體工程師的學習參考薦軟體工程工程師
- C語言學習參考(基礎&進階)C語言
- 收藏資料結構學習網站資料結構學習網站
- pureMVC學習之一REMMVC
- BBED學習之一
- rac學習之一
- lftp學習備記錄--轉摘於網上FTP
- Laravel 驗證碼類實現 (供學習、參考)Laravel
- 關於mssql的學習體會,僅供參考!SQL
- PHP 【面試】【學習】GitHub 收藏PHP面試Github
- go 的個人學習Go
- [原始碼解析] 深度學習流水線並行GPipe (2) ----- 梯度累積原始碼深度學習並行梯度
- vue 個人積累(元件,工具)Vue元件