Mysql資料庫遠端連線的兩種方式
如: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