數據庫操作
顯示當前數據庫
show databases;(database 后面要加s)
這行命令用來顯示當前有多少個數據庫
//mysql中有自帶的四個庫
創建數據庫
create database 數據庫名(name);
創建一個數據庫
create dabase if not exists <數據庫名(name)>;
//如果系統有與當前創建的數據庫名字一樣的數據庫,則不會創建
//在創建數據庫時我們往往要指定字符集,如果沒有指定字符集,系統會使用默認的字符集:utf8
//MySQL的utf8編碼不是真正的utf8,沒有包含某些復雜的中文字符。MySQL真正的utf8是 使用utf8mb4,建議大家都使用utf8mb4
create base <數據庫名> character set 字符集(utf8mb4)
一般我們沒有指定字符集卻使用漢字字符,就會報以下錯誤
使用數據庫
use <數據庫名>;
當我們要對某個數據庫進行操作時一定要先選中這個數據庫;
沒有使用就對數據庫操作會報錯
刪除數據庫
drop database <數據庫名>;
在工作中刪除數據庫是一項極其危險在操作前一定要慎重,因為數據庫刪除以后,內部看不到對應的數據庫,里邊的表和數據全部被刪除
表操作
顯示當前庫下的所有表
show tables(table后面要加s);
創建表
create table <表名> (列名 類型,列名 類型,......);
舉例:create table student(id int(4) ,name varchar(20));
可以使用comment增加字段說明。
例如:
可以使用default關鍵字來設定字段的默認值,使用is null和is not null來設定字段是否可以為空
查看表結構
desc <表名>;
刪除表
drop table <表名>;
和刪除庫一樣,刪除表也是一項非常危險的操作;
表的增刪查改(初階)
增加
1.單行添加
?insert into <表名> values(數據,數據);
舉例:insert into student values(1,’張三’);
2.多行添加
?insert into <表名> values(數據,數據),(數據,數據),(數據,數據)......;
舉例:insert into student values(1234,’張三’),(2345,’王五’);
3.指定列添加
?insert into 表名(列名)?values(數據);
舉例:insert into student(name) values(‘李四’);
查詢表
全列查詢
Select * from 表名;
指定列查詢
Select 列名,列名 from 表名
表達式查詢和別名
Select 表達式 as 新列名 from 表名
//此處的表達式數據只是一個顯示出來的臨時數據
//as可以省略(但是不建議)
去重-distinct
Select distinct 列名 from 表名;
舉例:select distinct math?from score;
//當有多個列名時,只會去重每一列都相同的數據
排序-order by
Select 列名 from表名 order by 列名 asc/desc;
// order by 列名指定某個列進行排序
//asc是升序desc是降序,如果省略就默認是asc
//排序后的數據是臨時數據,不影響原數據的存儲順序
舉例:select math from score order by math ?desc;
//如果一個sql不加order by此時查詢的數據的順序,是不確定或者無序的,當前我只是在自己的機器上進行一些簡單的操作,如果驚醒一些復雜的操作,就不一定了;//order by還可以進行表達式排序
//order by還可以進行表達式排序
舉例:?select name,Chinese+English+math as sum from score order by sum desc;
、
//order by可以指定多個列進行排序,每個列名后都可以跟desc
舉例:select name,Chinese,English,math as sum from score order by Chinese desc ,English desc ,math desc;
條件查詢-where
select 列名 from 表名 where 條件
舉例:?select * from score where math >80;
//遍歷這個表的每一行數據,把每一行的數據分別帶入到條件中,如果條件成立,這個記錄就會被放到集合中,如果條件不成立,這個記錄就會pass
//以下是一些常用的條件符號(這里就不一一演示了)
Select 表達式 from 表名 where 條件
//條件不能用as,第三步定義的別名,where是第二步執行,執行where的時候,sum還處在未定義的狀態
//這樣是可以的
分頁查詢-limit
limit可以限制這次查詢最多可以查詢多少個結果
select 列名 from 表名 limit 查詢個數;
舉例:?selete * from score limit 3;
select * from score limit 3 offset 3;
//可以用offset設置偏移量(就是下一個下標從3開始)
修改-update
Update 表名 set 列名 = 值 where 條件
舉例:
//如果沒有條件語句就認為選中全部
//可以一次性修改多條數據
刪除-delete
Delete 列名 from 表名 where 條件
舉例:delete from score where name = 10;
//不加條件就是選中全部
truncate table 表名;
//刪除表中所有數據但是不刪除表
語句總結
-- 單行插入: insert into 表(字段1, ..., 字段N) values (value1, ..., value N);
-- 多行插入: insert into 表(字段1, ..., 字段N) values (value1, ...), (value2, ...), (value3, ...);
-- 全列查詢: select * from 表
-- 指定列查詢:select 字段1,字段2... from 表
-- 查詢表達式字段: select 字段1+100,字段2+字段3 from 表
-- 別名:?select 字段1 別名1, 字段2 別名2 from 表
--去重:?distinct select distinct 字段 from 表
-- 排序: select * from 表 order by 排序字段
-- 條件查詢:where: select * from 表 where 條件
--修改:update 表 set 字段1=value1, 字段2=value2... where 條件
--刪除:delete from 表 where 條件
以上就是博主對mysql基礎語法的分享如果有不懂的或者有其他見解的歡迎在下方評論或者私信博主,也希望多多支持博主之后和博客!!🥰🥰