數據庫學習——MySQL入門

數據庫這門課爲什麼這麼難學,該怎麼學? - 阿里云云棲社區的回答 - 知乎
在這裏插入圖片描述

1.MySQL安裝

MySQL官網下載
選擇Windows (x86, 32-bit), MSI Installer(完整版)
安裝之後:
cmd
cd 到MySQL的bin目錄下:
mysql -u root -p
(輸入密碼)
在這裏插入圖片描述

2.數據庫常用命令

數據庫的增刪,注意有分號!
show databases;
create database gc;
drop database gc;

3.數據類型

DB裏面含有很多數據表table:
在這裏插入圖片描述
數據表table的數據結構:(包含了Type,即數據類型)
在這裏插入圖片描述
MySQL的三種數據類型:

文本類

常用:VARCHAR(size)、TEXT、LONGTEXT
在這裏插入圖片描述

數字類

常用:TINYINT(size)、INT(size)、BIGINT(size)、DOUBLE(size,d)
在這裏插入圖片描述

日期類

常用:DATETIME()
在這裏插入圖片描述

4.數據表常用命令

在對錶進行操作之前,必須得選定某個數據庫。例:選定剛剛創建的gc數據庫——use gc

(1)創建數據表

create table table_name(
		colum_name data_type,
		colum_name data_type,
		… …
		colum_name data_type
);

例:某個網站下的用戶賬號

create table account(
	id bigint(20),
	createTime datetime,
	ip varchar(255),
	mobile varchar(255),
	nickname varchar(255),
	username varchar(255),
	avatar varchar(255),
	brief text,
	job varchar(255),
	location varchar(255),
	qq varchar(255),
	gender int(11),
	city varchar(255),
	province varchar(255)
);

(2)刪除數據表

drop table table_name;

(3)顯示數據表

顯示該表的所有屬性

show tables;
//指定數據表的元素顯示
describe table_name;

(4)修改數據表——alter

  • 數據表增、刪列(增刪屬性)
alter table 【table_name】 add 【column_name】【data_type】[not null][default];
alter table 【table_name】 drop 【column_name】; 

例:在剛剛創建的account表中增刪一列c1

alter table account add c1 int(11) not null default 1;
alter table account drop c1;
  • 修改列信息
alter table 【table_name】 change 【old_column_name】 【new_column_name】【data_type】;
  • 修改表名
alter table 【table_name】 rename 【new_table_name】;

(5)查看錶數據——select

顯示錶內的對象及其屬性的值

select * from table_name; //查詢所有對象的所有屬性
select column_name1, column_name2, ... from table_name; //查詢所有對象的選定屬性
select distinct column_name from table_name; //精確查詢,查詢所有對象的選定屬性,但是會去除重複的行

(6)插入數據——insert into

(在(4)之後,表裏插入一行,相當於插入一個對象,對象擁有表裏羅列的各種屬性)

insert into table_name values(value1, value2, ... );//value的個數取決於表的屬性個數,對所有屬性賦值
insert into table_name(column_name1, column_name2, ... ) values(value1, value2, ... );//只對選定屬性賦值

如:創建一行僅對id和ip屬性賦值
在這裏插入圖片描述

(7)insert into 和 select組合使用

在(5)和(6)的基礎之上——在數據遷移的時候常用

insert into table_name1 select col_name1,col_name2 from table_name2;
insert into table_name2 (col_name1,col_name2) select col_name3,col_name4 from table_name2;

5.where語法

where後面可以通過and 與or 運算符組合多個條件進行篩選,運算符包括:
"=" 、"!="、">"、"<"、">="、"<="、"between"、"like"

(1)選定符合條件的行

select * from table_name where column_name 運算符 value;

如:從account表裏選出ip =20的那些行在這裏插入圖片描述

(2)刪除符合條件的行

delete from table_name where column_name 運算符 value;

(3)null的判斷用 is/ is not

select * from table_name where col_name is null;
select * from table_name where col_name is not null;

切記:無法用"="查詢出來

(4)order by排序

//按單一列排序
select * from table_name 【where 子句】 order by col_name [asc/desc];
//按多列排序,優先級依次降低,只對第一次排序後某些相等的值進行第二次關鍵字排序。
select * from table_name 【where 子句】 order by col_name1[asc/desc],col_name2[asc/desc]……;

不加asc/desc時,默認按照關鍵字進行 asc 升序排序

(5)limit語法

select * from table_name 【where 子句】【order by子句】 limit [offset], rowCount;

offset:查詢結果的起始位置,第一條記錄的是0;
rowCount:從offset位置開始,獲取的記錄條數。
limit 2 相當於 limit 0,2;
例:limit 2,2相當於從篩選結果的第二條記錄開始,選兩條記錄。
在這裏插入圖片描述

(6)where …in語法

select * from table_name where col_name in (value1,value2 … …);
select * from table_name1 where col_name1 in (select col_name2 from table_name2 [where子句]);

col_name in (value1,value2…) 等同於 col_name= value1 or col_name=value2…

(7)where …between語法

select * from table_name where col_name between value1 and value2;
select * from table_name where col_name not between value1 and value2;

(8)where …like語法

常用在字符串查找,int也行,不常用

select  * from table_name where col_name like pattern;  
select  * from table_name where col_name not like pattern; 

pattern:匹配模式

例如:'abc'僅能匹配'abc''%abc'可以匹配以'abc'結尾的字符串;'abc%'可以匹配以'abc'開頭的字符串;'%abc%'能匹配包含'abc'的字符串。%是通配符,可以把它當作任何字符串。

6.更新表數據

update table_name set col_name = xxx [where子句]; //修改單列
update table_name set col_name1=xxx,col_name2=xxx…[where子句]; //修改多列
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章