1. 程式人生 > >Mysql 簡單操作

Mysql 簡單操作

## 建立資料庫: create database 資料庫名;
檢視有哪些資料庫: show databases;
使用資料庫: use 資料庫名;
刪除資料庫:	drop database 資料庫名;

##建立表的操作。
create table 表名(
	欄位名 資料型別(長度) [約束],
	欄位名 資料型別(長度) [約束],
	欄位名 資料型別(長度) [約束]
);
欄位名其實就是列名
常用的資料型別。
int  整數
double  小數
varchar  字串(可變字元)
date 日期,只有年月日,沒有時分秒。
注意:常用的資料型別中,varchar必須指定長度,其他的可以不指定。
[約束] 是可選的。可以加,也可以不加。
每一個欄位都可以有約束。
主鍵約束:primary key。 被主鍵約束的列,不能為空,並且不能出現重複的值。

## 查看錶
檢視該資料庫下一共有哪些表。
show tables;
查看錶的詳情。可以檢視到表結構的一些資訊。
desc 表名;
刪除表。
drop table 表名;

## 刪除語句:
delete from 表名;   會把所有的資料都給刪除。
如果想要刪除指定的,可以使用條件進行篩選
delete from 表名 where 條件;	
另一個刪除
truncate table 表名;   刪除表中的所有資料

區別:
truncate 刪除
TRUNCATE TABLE 表名; --刪除表中所有的資料,使用的方式是先直接摧毀整個表,然後重新建立一個新的空表。 會清除自增長的序列。
delete from 表名 刪除
DELETE FROM 表名; – 刪除表中所有的資料,逐條刪除,一條一條的刪 不會清除自增長的序列

##新增資料:
(1) 全列新增。
# insert into 表名 (列1,列2,列3) values (值1,值2,值3);
# 列和值一定要嚴格對應.
# 如果是varchar不能超過長度。
# 在資料庫語句中,如果不是數值型別,請使用單引號包裹(雙引號也可以,但是不推薦)。
# 在資料表中要表示這個資料是空,可以使用NULL
(2) 指定列新增
# insert into 表名 (列1,列3) values (值1,值3);
(3) 全列值新增。
# insert into 表名 values (值1, 值2, 值3);
# values後面的值必須是所有列的值。
(4) 批量新增
insert into 表名 values (值1, 值2, 值3),(值1, 值2, 值3),…(值1, 值2, 值3);
(5) 新增
insert into 表名 values (值1, 值2, 值3);

##資料表的修改操作(更新操作):
update 表名 set 列=值,列=值 where 條件;
where條件用作篩選。可以省略。如果省略,會修改所有的資料。

##對資料表結構修改的語句:
(1)新增列:
alter table 表名 add 列名 資料型別(長度) [約束];
(2)修改列的型別長度及約束:
alter table 表名 modify 列名 資料型別(長度) [約束];
(3)修改列名。也可以把列的型別約束進行修改:
alter table 表名 change 舊列名 新列名 資料型別(長度) [約束];
(4)刪除列
alter table 表名 drop 列名;
(5)修改表名
rename table 表名 to 新表名;
(6)修改表的字符集
alter table 表名 character set 字符集;

##資料的查詢語句:
基本的查詢
select 列名,列名 from 表名;
如果要查詢所有的列。可以使用 *
select * from 表名;
資料表的條件查詢:
運算子:用作條件的篩選。
> < >= <= = != <>
between … and …:在區間範圍內。比如 between 1 and 10。代表1-10之間。包含頭也包含尾。
in(…): 包含其中之一。 比如in(1,3,5)。只要包含1,3,5其中之一就可以。
like:用作模糊查詢。
%:0個或1個或多個任意字元。
_:1個任意字元。
IS NULL:判斷是否為空。

AND:與,相當於java中的&。必須所有條件全部滿足。
OR: 或,相當於java中的|。 滿足一個條件就可以。
NOT: 非。 相當於java中的!.取反

##條件查詢的格式:
select 列名 from 表名 where 條件;

##模糊查詢:
like 結合萬用字元去使用
% 代表0個或1個或多個任意的字元
_ 代表1個任意字元
舉例:
查詢第二個字為’想’的所有商品
SELECT * FROM product WHERE pname LIKE ‘_想%’;

查詢三個字的商品
SELECT * FROM product WHERE pname LIKE ‘___’;

(1)別名查詢:
指的是查詢完成之後給這個列重新起一個名字
select 列名 as 別名 from 表名

as可以省略
select 列名 別名 from 表名;

也可以給多個列都起別名
SELECT 列名 AS 別名,列名 AS 別名 FROM 表名;

表也可以起別名 。多表聯合查詢使用。現在看不出效果
select * from 表名 as 別名
as 也可以省略

(2)去重(distinct):
SELECT DISTINCT 列名 FROM 表名;
舉例:
代表要對price這個列進行去重
SELECT DISTINCT price FROM product;

##多表查詢:
內連線查詢。
隱式內連線:
select * from 表A, 表B where 條件;
顯式內連線:
select * from 表A inner join 表B on 條件;
一定要加條件,否則會產生笛卡爾積.
多表查詢中,欄位前面要加表名,代表是這個表中的欄位。
表名.列名;
只會查詢關聯的資料

##外連結查詢
左外連線:
select * from 表A left outer join 表B on 條件;
會查詢左表中所有的資料。右表只會查詢關聯的資料.
右外連線
select * from 表A right outer join 表B on 條件;
查詢右邊表中的所有資料,左表只會查詢關聯的資料 outer也可以省略
子查詢
一個select的查詢結果作為另一個select的一部分出現。(條件,另一張表出現)

##分頁查詢:
limit m,n
m: 指的是從第幾條資料開始顯示(mysql從0開始數)
n: 指的是每頁顯示多少條資料。
公式 : m = (當前頁數 - 1) * 每頁顯示多少條資料