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`);
相關文章
- 神經網路學習參考神經網路
- 深度學習程式碼積累深度學習
- 機器學習知識積累機器學習
- Vue學習(四)元件(參考)Vue元件
- APEX學習資料參考
- ai學習參考路線AI
- MySQL學習筆記之一MySql筆記
- 機器學習數學知識積累總結機器學習
- 機器學習數學知識積累之高等數學微積分機器學習
- JAVA學習筆記及知識積累Java筆記
- 機器學習數學知識積累之概率論機器學習
- vue學習資源(參考連結)Vue
- 嵌入式學習參考資料
- php+mysql 個人學習部落格PHPMySql
- 個人學習
- 一千行 MySQL 詳細學習筆記(值得學習與收藏)MySql筆記
- BOOST庫 學習參考完全開發指南
- vue 個人積累Vue
- 學習收藏夾
- 學習Python,推薦3個公眾號給你參考Python
- 知識積累,韓語中的俗語學習
- 【卷積神經網路學習】(4)機器學習卷積神經網路機器學習
- 機器學習數學知識積累之數理統計機器學習
- Google 的 Java 編碼規範,參考學習!GoJava
- 收藏資料結構學習網站資料結構學習網站
- Laravel 驗證碼類實現 (供學習、參考)Laravel
- go 的個人學習Go
- 自媒體人必備的8個免費學習網站,每一個都值得收藏學習網站
- 做個愛學習的孩子!收藏2019知名機器學習暑期學校大列表機器學習
- vue 個人積累(元件,工具)Vue元件
- 個人積累linux 日常命令Linux
- 這傢伙有點懶,還沒有個性簽名 :) -- 參考網站學習篇01網站
- docker 學習之一 裝MySQL 供遠端使用 LinuxDockerMySqlLinux
- 大資料經典學習路線(及供參考)大資料
- OceanBase學習之路48|最佳效能引數的配置參考
- 數字人粒子系統學習筆記之一筆記
- Mysql學習MySql
- MySQL 學習MySql
- 學習MySQLMySql