1. 程式人生 > >Mysql資料庫遠端連線的兩種方式

Mysql資料庫遠端連線的兩種方式

一、連線遠端資料庫:1、顯示密碼

如:MySQL 連線遠端資料庫(192.168.5.116),埠“3306”,使用者名稱為“root”,密碼“123456”

C:/>mysql -h 192.168.5.116 -P 3306 -u root -p1234562、隱藏密碼

如:MySQL 連線本地資料庫,使用者名稱為“root”,

mysql  -u root -p 

圖形化工具推薦使用nativecat,可以連線多種資料庫;

另附上Sql基本CRUD語法:

SQL對資料庫進行操作

建立資料庫

create database 資料庫名稱 [characterset 字符集 collate 字符集校對規則];

檢視資料庫伺服器中所有的資料庫:show databases;

檢視某個資料庫的定義資訊: show create database 資料庫名稱;

 修改資料庫

alter database 資料庫名稱 characterset 字符集 collate 校對規則;

  刪除資料庫

 drop database 資料庫名稱;

 其他資料庫操作

 切換資料庫:use 資料庫名稱;

 檢視當前正在使用的資料庫: select version()

SQL對資料庫表進行操作

SQL建立表

create table 表名稱(欄位名稱欄位型別(長度) 約束,欄位名稱欄位型別(長度) 約束…);

約束作用:保證資料的完整性

單表約束分類:

主鍵約束:primary key 主鍵約束預設就是唯一 非空的

 唯一約束:unique

非空約束:not null

l  建表語句:

create database web_test1;

use web_test1;

create table user(

    id intprimary key auto_increment,

    usernamevarchar(20) unique,

    passwordvarchar(20) not null,

    age int,

    birthdaydate

);

SQL查看錶

 檢視某個資料庫下的所有的表

語法:show tables;

檢視某個表的結構資訊

語法:desc 表名;

SQL刪除表

刪除表

語法:drop table 表名;

SQL修改表

修改表:新增列

alter table 表名 add 列名型別(長度) 約束;

修改表:修改列型別,長度和約束

alter table 表名 modify 列名型別(長度) 約束;

 修改表:刪除列

alter table 表名 drop 列名;

修改表:修改列名稱

alter table 表名 change 舊列名新列名 型別(長度) 約束;

修改表:修改表名

 rename table 表名 to 新的表名;

修改表:修改表的字符集

alter table 表名 character set字符集;

SQL對資料庫表的記錄進行操作(重點)

SQL新增表的記錄

 向表中插入某些列:insert into 表名 (列名1,列名2,列名3…) values (值1,值2,值3…)

 向表中插入所有列:insert into 表名 values (值1,值2,值3…);

注意事項

1.值的型別與資料庫中表列的型別一致。

2.值的順序與資料庫中表列的順序一致。

3.值的最大長度不能超過列設定最大長度。

4.值的型別是字串或者是日期型別,使用單引號引起來。

 新增某幾列

insert into user (id,username,password) values(null,'aaa','123');

 新增所有列

insert into user values(null,'bbb','123',23,'1993-09-01');

 新增中文記錄

insert into user values (null,'張三','123',23,'1993-09-01');

直接向資料庫中插入中文記錄會出現錯誤!!!

解決方法:

         showvariables like '%character%';  --檢視資料庫中與字符集相關引數:

需要將MySQL資料庫伺服器中的客戶端部分的字符集改為gbk

找到MySQL的安裝路徑:my.ini檔案,修改檔案中[client]下的字符集

         * 重新啟動MySQL的伺服器

         services.msc

SQL修改表的記錄

update 表名 set 列名=值,列名=值 [where 條件];

注意事項

1.值的型別與列的型別一致。

2.值的最大長度不能超過列設定的最大長度。

3.字串型別和日期型別新增單引號。

修改某一列的所有值

update user set password = 'abc';

 按條件修改資料

update user set password = 'xyz' where username ='bbb'; 

按條件修改多個列

update user set password='123',age=34 whereusername='aaa';

 SQL刪除表的記錄(重點)

delete from 表名 [where 條件];

注意事項

1.刪除表的記錄,指的是刪除表中的一行記錄。

2.刪除如果沒有條件,預設是刪除表中的所有記錄。

刪除某一條記錄

delete from user where id = 2;

 刪除表中的所有記錄

delete from user;

刪除表中的記錄有兩種做法:

deletefrom user;

刪除所有記錄,屬於DML語句,一條記錄一條記錄刪除。事務可以作用在DML語句上的

truncatetable user;

刪除所有記錄,屬於DDL語句,將表刪除,然後重新建立一個結構一樣的表。事務不能控制DDL

SQL查看錶的記錄(重點)

語法:select[distinct] *|列名 from 表 [條件];

環境的準備:

create table exam(

    id intprimary key auto_increment,

    namevarchar(20),

    englishint,

    chineseint,

    math    int

);

insert into exam values (null,'張三',85,74,91);

insert into exam values (null,'李四',95,90,83);

insert into exam values (null,'王五',85,84,59);

insert into exam values (null,'趙六',75,79,76);

insert into exam values (null,'田七',69,63,98);

insert into exam values (null,'李老八',89,90,83);

查詢所有學生考試成績資訊

select * from exam;

查詢所有學生的姓名和英語成績

select name,english from exam;

查詢英語成績資訊(不顯示重複的值)

select distinct english from exam;

檢視學生姓名和學生的總成績

select name,english+chinese+math from exam;

別名查詢

select name,english+chinese+math as sum from exam;

條件查詢

使用where子句

> , < , >= ,<= , <> ,=

  like:模糊查詢

in:範圍查詢

條件關聯:and , or,not

查詢李四學生的成績:

select * from exam where name = '李四';

查詢名稱叫李四學生並且英文大於90分

select * from exam where name = '李四' and english > 90;

查詢姓李的學生的資訊

like可以進行模糊查詢,在like子句中可以使用_或者%作為佔位符。_只能代表一個字元,而%可以代表任意個字元。

    * like ‘李_’        :名字中必須是兩個字,而且是姓李的。

    * like ‘李%’        :名字中姓李的學生,李子後可以是1個或任意個字元。

    * like ‘%四’        :名字中以四結尾的。

    * like ‘%王%’   :只要名稱中包含這個字就可以。

select * from exam where name like '李%';

 查詢英語成績是69,75,89學生的資訊

select * from exam where english in (69,75,89);

排序查詢

使用order by 欄位名稱 asc/desc;

查詢學生資訊,並且按照語文成績進行排序:

select * from exam order by chinese;

查詢學生資訊,並且按照語文成績倒序排序:

select * from exam order by chinese desc;

查詢學生資訊,先按照語文成績進行倒序排序,如果成績相同再按照英語成績升序排序

select * from exam order by chinese desc,englishasc;

查詢姓李的學生的資訊,按照英語成績降序排序

select * from exam where name like '李%' order by english desc;

分組統計查詢

聚合函式使用

sum();

獲取所有學生的英語成績的總和:

select sum(english) from exam;

獲取所有學生的英語成績和數學成績總和:

select sum(english),sum(math) from exam;

查詢姓李的學生的英語成績的總和

select sum(english) from exam where name like '李%';

查詢所有學生各科的總成績:

select sum(english)+sum(chinese)+sum(math) fromexam;

select sum(english+chinese+math) from exam;

與上面的語句有什麼不同?

* 上面的語句是按照列的方式統計,英語成績總和+語文成績總和+數學成績總和。

* 下面的語句先計算英語+數學+語文然後再求和。

    * 使用ifnull的函式

count();

獲得學生的總數

select count(*) from exam;

獲得姓李的學生的個數

select count(*) from exam where name like '李%';

max();

獲得數學成績的最高分:

select max(math) from exam;

min();

獲得語文成績的最小值

select min(chinese) from exam;

 avg();

獲取語文成績的平均值

select avg(chinese) from exam;

分組查詢

語法:使用group by 欄位名稱;

環境準備

create table orderitem(

    id intprimary key auto_increment,

    productvarchar(20),

    pricedouble

);

insert into orderitem values (null,'電視機',2999);

insert into orderitem values (null,'電視機',2999);

insert into orderitem values (null,'洗衣機',1000);

insert into orderitem values (null,'洗衣機',1000);

insert into orderitem values (null,'洗衣機',1000);

insert into orderitem values (null,'冰箱',3999);

insert into orderitem values (null,'冰箱',3999);

insert into orderitem values (null,'空調',1999);

按商品名稱統計,每類商品所購買的個數:

select product,count(*) from orderitem group byproduct;

按商品名稱統計,每類商品所花費的總金額:

select product,sum(price)from orderitem group by product;

按商品名稱統計,統計每類商品花費的總金額在5000元以上的商品

***** where的子句後面不能跟著聚合函式。如果現在使用帶有聚合函式的條件過濾(分組後條件過濾)需要使用一個關鍵字having

select product,sum(price) from orderitem  group by product having sum(price) > 5000;

 按商品名稱統計,統計每類商品花費的總金額在5000元以上的商品,並且按照總金額升序排序

select product,sum(price) from orderitem  group by product having sum(price) > 5000order by sum(price) asc;

總結:

SQL書寫順訊

S(select)… F(from)…W(where)…G(groupby)…H(having)…O(order by);

SQL解析順序

F(from)…W(where)…G(groupby)…H(having)…S(select)… O(order by);

索引的使用

建立索引

1.ALTER TABLE tbl_name ADD PRIMARY KEY (column_list):

 該語句新增一個主鍵,這意味著索引值必須是唯一的,且不能為 NULL。

2.ALTER TABLE tbl_name ADD UNIQUE index_name (column_list):

這條語句建立索引的值必須是唯一的(除了 NULL 外,NULL 可能會出現多次)。

3.ALTER TABLE tbl_name ADD INDEX index_name (column_list):

新增普通索引,索引值可出現多次。

 4.ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list):

該語句指定了索引為 FULLTEXT ,用於全文索引。

1.2.2      刪除索引

DROP INDEX [indexName] ON mytable;

1.2.3      修改

ALTER mytable ADD INDEX [indexName] ON(username(length))

1.2.4      查詢

使用 SHOW INDEX 命令來列出表中的相關的索引資訊。可以通過新增 \G 來格式化輸出

資訊。

SHOW INDEX FROM table_name \G


相關推薦

Mysql資料庫遠端連線方式

一、連線遠端資料庫:1、顯示密碼如:MySQL 連線遠端資料庫(192.168.5.116),埠“3306”,使用者名稱為“root”,密碼“123456”C:/>mysql -h 192.168.5.116 -P 3306 -u root -p1234562、隱藏密碼

MySql查詢生日的方式

div mat 情況 兩種 color sele rom spa style 需要是要查詢日期段內過生日的會員,分為兩種情況: 1. 不跨年 例如: 查詢2017-01-01到2017-01-20之間過生日的會員 (假定今天是2017-01-01則這種也可以描述為20

Linux MySQL資料庫遠端連線插入中文資料報錯

剛開始學Java,最近在用Java寫一個圖書管理系統,基本已經完成。寫的過程中資料庫都是本地訪問的,在我基本寫完改成遠端訪問伺服器中的MySQL時,總是報錯有一個列中的值錯誤,找了半天發現是編碼問題導致不能插入中文資料。下面是解決辦法: 1、修改MySQL配置 sudo vim

資料庫同步的方式_syncnavigator資料同步工具

www.syncnavigator.cn SyncNavigator 做資料同步時所支援的資料庫型別: 支援sqlserver 2000-2014所有版本,全相容,和MYsql 4.x 、MYsql 5.x 、MYsql 6.x版本。 來源資料庫和目標資料庫可以版本不同,比如:來源資

SqlServer 資料庫同步的方式 (釋出、訂閱),主從資料庫之間的同步

  www.syncnavigator.cn SyncNavigator 資料同步工具  做資料同步時所支援的資料庫型別: 支援sqlserver 2000-2014所有版本,全相容,和MYsql 4.x 、MYsql 5.x 、MYsql 6.x版本。 來源

linux配置mysql資料庫遠端連線失敗的解決方法

今天配置Linux下MySQL資料庫可以遠端訪問的問題,百度這方面的資料有很多,但是方法都一樣,都試過了卻未能解決,記錄一下 第一步:在/etc/mysql/my.cnf下找到bind-address = 127.0.0.1 在這行前加個”#”進行註釋,或

Linux MySQL資料庫遠端連線插入中文資料報錯

剛開始學Java,最近在用Java寫一個圖書管理系統,基本已經完成。寫的過程中資料庫都是本地訪問的,在我基本寫完改成遠端訪問伺服器中的MySQL時,總是報錯有一個列中的值錯誤,找了半天發現是編碼問題導致不能插入中文資料。下面是解決辦法: 1、修改MySQL配置

MySql資料庫優化的八方式

儘管我們可以使用子查詢(子查詢),連線(JOIN)和聯合(UNION)來建立各種各樣的查詢,但不是所有的資料庫操作都可以只用一條或少數幾條SQL語句就可以完成的。更多的時候是需要用到一系列的語句來完成某種工作。但是在這種情況下,當這個語句塊中的某一條語句執行出錯的時候,整個語句塊的操作就會變得不確定起來設想一

B樹,B+樹,B*樹相關知識以及Mysql資料庫中的引擎

原文地址: http://m.blog.csdn.net/article/details?id=53164202 接觸到了資料結構當中的B樹,B+樹,B*樹,我覺得應該寫一篇部落格記錄下,畢竟是第一次接觸的,只有寫了部落格以後,感覺對這個的印象才會更加深刻。  前言:  為

資料庫同步的方式

介紹通過釋出訂閱的方式實現資料庫之間的同步操作。釋出訂閱份為兩個步驟:1、釋出。2、訂閱。首先在資料來源資料庫伺服器上對需要同步的資料進行釋出,然後在目標資料庫伺服器上對上述釋出進行訂閱。釋出可以釋出一張表的部分資料,也可以對整張表進行釋出。下面分別介紹釋出、訂閱的過程。 一、釋出。釋出需要用實際的伺服器名

SQL SERVER 資料庫表同步複製 筆記 SqlServer2008 資料庫同步的方式 (釋出、訂閱)

SQL SERVER 資料庫表同步複製 筆記 同步複製可執行在不同版本的SQL Server服務之間 環境模擬需要兩臺資料庫192.168.1.1(釋出),192.168.1.10(訂閱) 1、在釋出和訂閱機中建立兩個相同的賬戶(如: sqladmin),使用者名稱和密碼都一致,隸屬於administr

Ubuntu 18.04安裝lamp環境並配置mysql資料庫遠端連線

首先,更新軟體源軟體列表: 更新本機軟體: 安裝apache2: 安裝完成後,檢視Apache執行狀態,顯示running說明是執行中: 通過本地迴環地址(127.0.0.1/localhost)訪問apache伺服器,出現下圖所示

騰訊雲系列三:Centos7 安裝 mysql資料庫 遠端連線 字符集設定

關鍵字加紅:難看死了Oracle oracle Linux linux 資料庫 java Java mysql Mysql 測試 —— edit by 陳宇超 安裝環境:騰訊雲主機 centos7,1

Mysql 匯入匯出檔案方式

下面我們要把上面的檔案匯入到資料庫中,匯入之前要確認資料庫已經在執行,即是mysqld程序(或者說服務,Windows NT下面稱為”服務“,unix下面為”程序“)已經在執行。然後執行下面的命令: bin/mysql –p < /home/mark/New_Data.sql 接著按提示輸入密碼,如果上

SQL Server 2008 資料庫同步的方式(釋出、訂閱)

資料庫釋出訂閱份為兩個步驟:1、釋出。2、訂閱。首先在資料來源資料庫伺服器上對需要同步的資料進行釋出,然後在目標資料庫伺服器上對上述釋出進行訂閱。釋出可以釋出一張表的部分資料,也可以對整張表進行釋出。下面分別介紹釋出、訂閱的過程。   一、釋出      釋出需要用實

linux配置mysql資料庫遠端連線失敗

今天配置linux下mysql資料庫可以遠端訪問的問題,百度這方面的資料有很多,但是方法都一樣,都試過了卻未能解決,記錄一下 第一步:在/etc/mysql/my.cnf下找到bind-address = 127.0.0.1 在這行前加個"#"進行註釋,或者改為: b

阿里雲ESC雲伺服器的mysql資料庫遠端連線

1.在雲伺服器中安裝mysql服務。 2.開啟 阿里雲安全組配置入口3306埠。不會可以百度。 3.建立資料庫 MySQL> create database name; 建立一個

優化Oracle資料庫,有方式

資料庫效能最關鍵的因素在於IO,因為操作記憶體是快速的,但是讀寫磁碟是速度很慢的,優化資料庫最關鍵的問題在於減少磁碟的IO,就個人理解應該分為物理的和邏輯的優化, 物理的是指oracle產品本身的一些優化,邏輯優化是指應用程式級別的優化 物理優化的一些原則: 1). Or

MySQL資料庫優化的八方式(經典必看)

1、選取最適用的欄位屬性 MySQL可以很好的支援大資料量的存取,但是一般說來,資料庫中的表越小,在它上面執行的查詢也就會越快。因此,在建立表的時候,為了獲得更好的效能,我們可以將表中欄位的寬度設得儘可能小。 例如,在定義郵政編碼這個欄位時,如果將其設定為CHAR(2

@芥末的糖 ---------- node連線資料庫方式mysql和moogoDB

先做個總結:連線資料庫是一個建庫,建Schema的過程...之後就是利用例項化的物件進行資料庫的操作... 1.moogoDB的連線 //database.js var mongoose = require('mongoose') mongoose.connect('mongodb://loca