mysql數據庫的增刪改查

mysql數據庫的增刪改查

1.mysql接口自帶功能

msyq>\h:查看幫助信息
一、\h 或 help 或 ?
二、\G:分組顯示結果
三、\T 或 tee:將結果和命令輸出到文本
四、\c 或 CTRL+c:清除當前語句
五、\s 或 status:獲取MySQL服務器狀態信息
六、\. 或 source:執行外部SQL腳本:二進制日誌截取、備份出來的SQL腳本
七、\u 或use:切換數據庫

2.sql服務端命令

2.1 sql種類

DDL:數據庫(對象)定義語言
DCL:數據庫控制語言(grant revoke)
DML:數據(行)操做語言(update delete insert)
DQL: 數據查詢語言(show、select)

2.1.1 DDL操做之管理庫操做

查看數據庫mysql

mysql> show databases;
mysql> show databases like 'test%'; #==>模糊查詢,以test開頭的數據庫

建立數據庫sql

mysql> create database oldboy;

查看建庫的語句數據庫

show create database oldboy\G

指定字符集建庫服務器

mysql>create database llf CHARACTER SET utf8 ;
mysql>show create database llf;

查看幫助函數

mysql>help  create database;

刪除數據庫ui

mysql> drop database llf;

改變庫的字符集日誌

mysql> alter database oldboy charset utf8mb4;
mysql> show create database oldboy;

切庫code

user oldboy

查看當前所在的庫對象

select database();

查看當前的用戶排序

select user();

查看庫裏的表

show tables;

DDL&&DCL語句之管理用戶

用戶:
‘user’@‘主機域’
幫助:
? Account Management
經常使用命令:
1.查看當前用戶
2.建立用戶
3.查看用戶對應的權限
4.刪除用戶
5.給用戶受權
6.收回權限
7.工做博客受權

2.1.2 DDL語句之管理表操做

建立表

create table <表名> (<字段名1> <類型1> ,…<字段名n> <類型n>);
mysql> create table t1(id int,name varchar(20));
獲取幫助
help create table;

查詢表

mysql> show tables;

查看建表語句

mysql> show create table t1\G

查看錶結構

mysql> desc t1;

刪除表

mysql> drop table t1;

修改表

在表中添加一列
mysql> alter table t1 add age int;
添加多列
mysql> alter table t1 add sid int,add bridate datetime;
在指定列後添加一列
mysql> alter table t1 add i_name varchar(20) after name;
在表中最前添加一列
mysql> alter table t1 add num int first;
刪除列
mysql> alter table t1 drop num;
修改列名
mysql> alter table t1 change name stu_name varchar(20);
修改列屬性
mysql> alter table t1 modify sid varchar(20);
修改表名
mysql> rename table t1 to t2;
mysql> alter table t2 rename to t1;

2.1.3 DML語句之管理表內容操做

插入內容(insert)

insert into <表名> [( <字段名1>[,..<字段名n > ])] values ( 值1 )[, ( 值n )]
mysql> insert into t2 values(1,'zhang');
添加多行內容
mysql> insert into t2 values(2,'yang'),(3,'li'),(4,'yi');
經過列名添加內容
mysql> insert into t2(name) values("zhangggg");

查詢表內容

mysql> select * from t2;

更新表(update)

mysql> update t2 set name='zhang123' where id=4;

刪除表內容

mysql> delete from t2 where id=4;
刪除表中全部行,比較危險。一行一行刪除表中數據。
mysql> delete from t2;
在物理上刪除表數據,速度比較快。
mysql> truncate table t1;

2.1.4 DQL語句之管理表內容操做

select基本查詢

SELECT * FROM city;
SELECT NAME,Population FROM city;

select條件查詢where

SELECT *|{[DISTINCT] column|select_expr[alias], ...]}[FROM [database.]table][WHERE conditions];
WHERE條件又叫作過濾條件,它從FROM子句的中間結果中去掉全部條件conditions不爲TRUE(而爲FALSE或者NULL)的行
WHERE子句跟在FROM子句後面
不能在WHERE子句中使用列別名

where字句的基本使用

一、查詢中國(CHN)全部的城市信息
SELECT * FROM world.`city` WHERE CountryCode='CHN';
or
SELECT * FROM world.`city` WHERE CountryCode='chn';
二、查詢中國(CHN)安徽省全部的城市信息。
SELECT * FROM city WHERE CountryCode="CHN" AND District="anhui";
 三、查詢世界上人口數量在10w-20w城市信息
 SELECT * FROM city WHERE Population BETWEEN 100000 AND 200000;
四、中國或者日本的全部城市信息
SELECT * FROM city WHERE CountryCode IN ('chn',"jpn");
注意:
WHERE中出現的字符串和日期字面量必須使用引號括起來
這裏,字符串字面量寫成大寫或小寫結果都同樣,即不區分大小寫進行查詢。
這和ORACLE不一樣,ORACLE中WHERE條件中的字面量是區分大小寫的

模糊查詢

SELECT * FROM city WHERE  CountryCode LIKE 'ch%';

select 排序與限制

ORDER BY子句用來排序行
Asc:執行升序排序。默認值
DEsc:執行降序排序
ORDER BY子句通常在SELECT語句的最後面
LIMIT子句:
MySQL特有的子句。
它是SELECT語句中的最後一個子句(在order by後面)。
它用來表示從結果集中選取最前面或最後面的幾行。
偏移量offset的最小值爲0。
語法:
limit <獲取的行數> [OFFSET <跳過的行數>]
或者limit [<跳過的行數>,] <獲取的行數>
SELECT * FROM city
ORDER BY

按照人口數量排序輸出中國的城市信息(ASC\DESC)
SELECT * FROM city WHERE CountryCode="CHN" ORDER BY Population DESC;(從大到小)
SELECT * FROM world.`city` WHERE countrycode='CHN' 
ORDER BY id DESC  ;
按照列數來進行排序
SELECT * FROM city
ORDER BY 5 DESC ;
取第1-10行
SELECT * FROM world.`city` WHERE countrycode='CHN' 
ORDER BY 5 DESC LIMIT 20;
取第11-20行
SELECT * FROM world.`city` WHERE countrycode='CHN' 
ORDER BY 5 DESC LIMIT 10,10 ;

SELECT * FROM world.`city` WHERE countrycode='CHN' 
ORDER BY 5 DESC LIMIT 10 OFFSET 10 ;

3.多表查詢

傳統的鏈接寫法(使用where)
---- 中國全部城市信息+使用語言
SELECT ci.name,ci.countrycode,ci.Population,cl.language FROM city AS ci,countrylanguage AS cl
WHERE ci.countrycode="chn" AND cl.countrycode="chn";

經常使用鏈接寫法(join on )

查詢青島這個城市,所在的國傢俱體叫什麼名字
SELECT ci.`Name`,ci.`CountryCode`,ci.`Population`,cl.name FROM city AS ci JOIN country AS cl ON ci.`CountryCode`=cl.code AND ci.name="qingdao"、

group by +聚合函數(avg()、max()、min()、sum())

算出中國人口總數
SELECT CountryCode,SUM(Population) FROM city WHERE CountryCode="chn" ORDER BY CountryCode
相關文章
相關標籤/搜索