亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

MySQL 基礎常用命令總結

 更新時間:2021年09月06日 09:52:56   投稿:zhanglei  
這篇文章主要介紹了MySQL 的基礎常用命令,在執(zhí)行語句的時候,很多命令都是必須記住的,想具體了解的小伙伴請參考下面文章內容

MySQL 基礎常用命令

注意:MySQL在centos中安裝的是5.7版本的,編輯MySQL時會有個報錯,需要執(zhí)行:

set@@global.sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';


1. SQL語句

每個命令執(zhí)行結束加分號結束     

  • 查詢所有數(shù)據(jù)庫:show databases;
  • 切換數(shù)據(jù)庫:use 庫命名;
  • 創(chuàng)建數(shù)據(jù)庫:create database [IF NOT EXISTS] 庫名;
  • 刪除數(shù)據(jù)庫:drop database [IF EXISTS] 庫名;
  • 查詢數(shù)據(jù)庫創(chuàng)建:show 建庫語句;
  • 指定數(shù)據(jù)庫采用的字符集:CHARACTER SET
  • 修改數(shù)據(jù)庫的編碼集:alter database 數(shù)據(jù)庫名 CHARACTER SET 編碼集;

注意:不要修改mysql服務器的編碼集,表的編碼集默認和庫一致

2. 建表

格式:

  • create table [if not exists] 表名(
  • 字段1 數(shù)據(jù)類型 字段屬性,
  • 字段2 數(shù)據(jù)類型 字段屬性,...
  • 字段N 數(shù)據(jù)類型 字段屬性
  • )engine=引擎 default charset=編碼集;
  • 查看當前數(shù)據(jù)庫:select database();
  • 查看建表語句:show create table 表名;
  • 查看表結構:desc 表名;
  • 刪除:drop table [if exists] 表名;

3.字段屬性

  • not null:沒給值數(shù)據(jù)為默認值(varchar默認值為空
  • AUTO_INCREMENT定義列為自增的屬性,一般用于主鍵,數(shù)值會自動加1
  • PRIMARY KEY關鍵字用于定義列為主鍵,您可以使用多列來定義主鍵,列間以逗號分隔
  • ENGINE 設置存儲引擎,CHARSET 設置編碼
  • default null:沒給值數(shù)據(jù)就是null
  • default 值:設置字段的默認值

注意:主鍵不重復的列

這里我們建立一個student表:

 create table if not EXISTS student (
 id int auto_increment,
 `name` VARCHAR(32),
  age int,
 sex char(1),
 clazz VARCHAR(32)) charset utf8;


insert into student values (1001,'zs',18,'男','一班');
insert into student values (1002,'ls',19,'女','二班');
 insert into student(`name`,age,sex,clazz) values ('ww',69,'男','一班');
 insert into student(`name`,age,sex,clazz) values ('we',21,'女','二班');
insert into student(`name`,age,sex,clazz) values ('ld ',23,'男','一班');
insert into student(`name`,age,sex,clazz) values ('lq',45,'女','二班');
insert into student(`name`,age,sex,clazz) values ('lwq',23,'男','一班');
 insert into student(`name`,age,sex,clazz) values ('ld',12,'女','二班');


4.修改表:alter table

修改表名:alter(rename) table 舊表名 to 新表名;

rename table student1 TO `student`;

添加字段:alter table 表名 add 字段 字段數(shù)據(jù)類型 屬性;

 alter table student add job varchar(32) default '沒有工作' ;
insert into student (job) VALUES('a');
insert into student (job) VALUES('b');
insert into student (job) VALUES('c');
insert into student (job) VALUES('a');
 insert into student (job) VALUES('b');


修改字段:alter table 表名 change 舊字段 新字段 數(shù)據(jù)類型 屬性;

 alter table student change clazz clazz varchar(255);
 alter table student change age score double;


修改字段:alter table 表名 modify 字段 數(shù)據(jù)類型 屬性;

alter table student MODIFY varchar(356); #這里不能比之前的空間小


注意:

  • change:修改所有(字段名,數(shù)據(jù)類型,屬性)
  • modify:修改一部分(數(shù)據(jù)類型,屬性)
  • 修改數(shù)據(jù)類型時,varchar->int元數(shù)據(jù)會變?yōu)?

5. 增刪改查:字符串全部使用''包起來

5.1 增

格式:

insert into 表名(字段) values(值),(值)...(值);
 insert into student values (1001,'zs',18,'男','一班');
insert into student values (1002,'ls',19,'女','二班');
insert into student(`name`,age,sex,clazz) values ('ww',69,'男','一班');
insert into student(`name`,age,sex,clazz) values ('we',21,'女','二班');
insert into student(`name`,age,sex,clazz) values ('ld ',23,'男','一班');
insert into student(`name`,age,sex,clazz) values ('lq',45,'女','二班');
insert into student(`name`,age,sex,clazz) values ('lwq',23,'男','一班');
10 insert into student(`name`,age,sex,clazz) values ('ld',12,'女','二班');


5.2 刪

 -- 刪除delete from 表名 where 子句;
 delete from student where job='c';


5.3 改

 -- 改update 表名 set 字段1=值1,字段2=值2...字段N=值N where 子句;
update student set job='b'where name ='ls';


5.4 查

-- 查select 字段 from 表名 where 子句;
 select * from student ; #查詢全部
 SELECT id as di,name,job,score from student where score>18; #特定查詢,并且展示特定的表 as:表示改字段名稱(原來的表不發(fā)生變化)


注意:表示所有字段

6. 子句

  • > < <= >= = <> 大于、小于、大于(小于)等于、不等于
  • between ...and... 顯示在某一區(qū)間的值(含頭含尾)
  • in(set) 顯示在in列表中的值,例:in(100,200)只能匹配100或200
  • like '張_' 模糊查詢 使用% 和 _(%表示匹配所有 _匹配一個)
  • Is null 判斷是否為空
  • and 多個條件同時成立
  • or 多個條件任一成立
  • not 不成立,例:where not(expection>10000);
-- >   <   <=   >=   =    !=    大于、小于、大于(小于)等于、不等于
SELECT * from student WHERE id>1006;
SELECT * from student WHERE id!=1006;
 
--between  ...and...    顯示在某一區(qū)間的值(含頭含尾)
select id,name,job from student  where id BETWEEN  1002 and 1005;
 select * from student where job BETWEEN 'a' and 'b';
 -- in(set)    顯示在in列表中的值,例:in(100,200)只能匹配100或200
 select * from student where job in('a','b');

-- like '張_'    模糊查詢  使用% 和 _(%表示匹配所有 _匹配一個)
 SELECT * from student where name like 'l%';
 SELECT * from student where name like 'l_';
select * from student where name is not null;


7.limit分頁

格式:
  語句 limit 開始下標,長度;

-- limit分頁    語句 limit 開始下標,長度;注意:沒有where
select * from student LIMIT 1,2;
select * from student LIMIT 0,2;
select * from student LIMIT  2;


注意:
  如果數(shù)據(jù)量不夠,顯示全部

8.去重

格式:
  DISTINCT 字段1,字段2...字段N

 -- 去重 DISTINCT 字段1,字段2...字段N
 select DISTINCT name from student;
 select count(DISTINCT name) from student;


注意:

  字段不能在DISTINCT之前,只能在DISTINCT后面

  DISTINCT之后有多個字段,按照所有字段進行去重

 9.聚合函數(shù)

  •       count(字段):求多少行數(shù)據(jù)
  •       sum(字段):求和
  •       avg(字段):平均數(shù)
  •       max(字段):最大值
  •       min(字段):最小值

注意:

  •       varchar能比較大小,不能獲取avg(沒有任何意義)
  •       如果值為Null不參與計算
  •       sum和avg字段的數(shù)據(jù)不是數(shù)值,結果都是0

 

 -- count(字段):求多少行數(shù)據(jù)
select count(*) from student;
 select count(name) from student;

-- sum(字段):求和
select sum(score) from student;
select sum(job) FROM student;
select name+score as sum FROM student; #score的值
 SELECT name*score as cheng FROM student; #0

-- avg(字段):平均數(shù)
 SELECT avg(score) FROM student;
 -- max(字段):最大值
SELECT max(score) FROM student;
SELECT max(job) FROM student; #c
-- min(字段):最小值
SELECT min(score) FROM student;


10.拼接

  格式1

    concat(str1,str2...)

  格式2:

    concat_WS(separator,str1,str2,...)

-- 格式一:concat(str1,str2...)
 select CONCAT(id,'-',name) as pj FROM student;
 -- 格式二:concat_WS(str1,str2...)
SELECT CONCAT_WS('~',id,name,score,job)FROM student; #中間以~隔開


11.日期函數(shù)

獲取當前日期:

current_timestamp;--所有

current_timestamp();--所有

CURRENT_DATE();-- 年月日

CURRENT_DATE;-- 年月日

CURRENT_TIME();-- 時分秒

CURRENT_TIME;-- 時分秒

-- 獲取當前日期:
--         current_timestamp;--所有
SELECT CURRENT_TIMESTAMP from student;
--         current_timestamp();--所有
 SELECT CURRENT_TIMESTAMP() from student;
 --         CURRENT_DATE();-- 年月日
 select CURRENT_DATE() from student;
--         CURRENT_DATE;-- 年月日
 select CURRENT_DATE from student;
--         CURRENT_TIME();-- 時分秒

 SELECT CURRENT_TIME() FROM student;
--         CURRENT_TIME;-- 時分秒
SELECT CURRENT_TIME FROM student;

時間轉str

格式:
date_format(date,format)
date:時間
format:格式

str轉日期

格式:
str_to_date(str,formaat)

SELECT * FROM date;
 -- 時間轉str
 --         格式:
 --             date_format(date,format)
--             date:時間
--             format:格式
select DATE_FORMAT('2021-09-01','%Y~%m~%d');
--     str轉日期
--         格式:
 --             str_to_date(str,formaat)
 SELECT STR_TO_DATE('2021-09-01','%Y-%m-%d');


日期相減

格式:
datediff(expr1,expr2);

注意:只能相減年月日,時分秒?yún)⑴c運算結果為null

datediff(expr1,expr2);
-- 注意:只能相減年月日,時分秒?yún)⑴c運算結果為null
SELECT DATEDIFF('2021-09-09','2021-09-01');

函數(shù)向日期添加指定的時間間隔

格式:
DATE_ADD(date,INTERVAL expr unit);
date:時間
INTERVAL:關鍵字
expr:間隔的數(shù)值
unit:年月日時分秒(..,...,day,..,..,..)

SELECT DATE_ADD('2021-09-09',INTERVAL +10 YEAR);
SELECT DATE_ADD('2021-09-09',INTERVAL +10 DAY);


12. 數(shù)組計算

round(x,d):四舍五入
x:值
d:保留幾位小數(shù)點

ceil(x):向上取整
floor(x):向下取整
rand():隨機數(shù)(0-1之間)

-- 數(shù)組計算
--     round(x,d):四舍五入
 --         x:值
 --         d:保留幾位小數(shù)點
SELECT ROUND(1.3,2); #2表示保留幾位小數(shù)

--     ceil(x):向上取整
 SELECT ceil(1.2);
--     floor(x):向下取整
 SELECT floor(1.2);
--     rand():隨機數(shù)(0-1之間)
 SELECT rand();

13.排序

格式:
order by 字段1 asc|desc,字段2 asc|desc...字段n asc|desc;

SELECT * from student ORDER BY score,job;
 SELECT * from student ORDER BY score desc, job desc;


注意:

  • 默認升序asc,降序desc
  • 如果有多個字段,按照先后順序依次排序

14. group by 分組

格式:

group by 字段1,字段2...字段n;

注意:

  • 多個字段,按照所有字段進行分組(一起分組)
  • 有多少組顯示多少條數(shù)據(jù)(默認情況下,沒有經過條件篩選)
  • 組顯示的數(shù)據(jù)為每組中默認第一條數(shù)據(jù)
  • by 通常和聚合函數(shù)一起使用
select max(score) as c from student where score=c;
select max(score) as c from student having score=c;
兩個都不能運行

SELECT count(*),job,`name`,id as c from student GROUP BY sex where c>2; #錯誤
SELECT count(*) as c,job,`name`,id from student GROUP BY sex HAVING c>2;

-- select id,name,sex from student where job='a'; # 可以運行
--select id,name,sex from student having job='a'; #不能運行(顯示了之后就沒有job)
-- 執(zhí)行過程是 from-where-select-having
-- select count(*) c from student where c>1; -- 不行
-- select count(*) c from student having c>1;-- 行
select count(*) c,sex from student group by sex where sex='男';
select count(*) c,sex from student group by sex having sex='男';


--where having 一起使用
SELECT count(*)as c,name,id FROM student where sex='男' HAVING c>3;
where 是對表中from到的數(shù)據(jù)進行篩選;
having是對表中selec顯示數(shù)據(jù)進行曬選;

到此這篇關于MySQL 基礎常用命令總結的文章就介紹到這了,更多相關MySQL常用命令內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Mysql中的sql優(yōu)化實踐詳解

    Mysql中的sql優(yōu)化實踐詳解

    這篇文章主要介紹了Mysql中的sql優(yōu)化實踐詳解,SQL優(yōu)化是指通過改進SQL語句的編寫和查詢計劃的設計來提高數(shù)據(jù)庫查詢性能的過程,在優(yōu)化SQL時,可以采取一些措施來提升查詢性能,需要的朋友可以參考下
    2023-09-09
  • 通過DML更新MySQL數(shù)據(jù)庫數(shù)據(jù)的示例代碼

    通過DML更新MySQL數(shù)據(jù)庫數(shù)據(jù)的示例代碼

    這篇文章主要給大家介紹了如何通過DML更新MySQL數(shù)據(jù)庫的數(shù)據(jù),通過DML來對數(shù)據(jù)庫種地表的數(shù)據(jù)記錄進行增刪改查操作,文中給大家了詳細的代碼示例供大家參考,具有一定的參考價值,需要的朋友可以參考下
    2024-01-01
  • mysql視圖之管理視圖實例詳解【增刪改查操作】

    mysql視圖之管理視圖實例詳解【增刪改查操作】

    這篇文章主要介紹了mysql視圖之管理視圖,結合實例形式詳細分析了mysql視圖增刪改查操作具體實現(xiàn)技巧與相關操作注意事項,需要的朋友可以參考下
    2019-12-12
  • MySQL中使用innobackupex、xtrabackup進行大數(shù)據(jù)的備份和還原教程

    MySQL中使用innobackupex、xtrabackup進行大數(shù)據(jù)的備份和還原教程

    這篇文章主要介紹了MySQL中使用innobackupex、xtrabackup進行大數(shù)據(jù)的備份和還原教程,xtrabackup用來對超過10G數(shù)據(jù)的Mysql進行備份和還原任務,需要的朋友可以參考下
    2014-09-09
  • windows下安裝、卸載mysql服務的方法(mysql 5.6 zip解壓版安裝教程)

    windows下安裝、卸載mysql服務的方法(mysql 5.6 zip解壓版安裝教程)

    這篇文章主要介紹了windows下安裝、卸載mysql服務的方法(zip解壓版安裝),需要的朋友可以參考下
    2016-06-06
  • MySQL使用聚合函數(shù)進行單表查詢

    MySQL使用聚合函數(shù)進行單表查詢

    這篇文章主要介紹了MySQL使用聚合函數(shù)進行單表查詢,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • mysql如何配置secure_file_priv

    mysql如何配置secure_file_priv

    這篇文章主要介紹了mysql如何配置secure_file_priv問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • 使用LEFT?JOIN?統(tǒng)計左右存在的數(shù)據(jù)問題

    使用LEFT?JOIN?統(tǒng)計左右存在的數(shù)據(jù)問題

    最近做了一個數(shù)據(jù)模塊的統(tǒng)計,統(tǒng)計企業(yè)收款、發(fā)票相關的數(shù)據(jù),開始統(tǒng)計是比較簡單,后面再拆分賬套統(tǒng)計就有點小復雜,這篇文章主要介紹了使用LEFT?JOIN?統(tǒng)計左右存在的數(shù)據(jù),需要的朋友可以參考下
    2022-10-10
  • MySQL timestamp自動更新時間分享

    MySQL timestamp自動更新時間分享

    在mysql中timestamp數(shù)據(jù)類型是一個比較特殊的數(shù)據(jù)類型,他可以自動在你不使用程序更新情況下只要你更新了記錄timestamp會自動更新時間
    2013-06-06
  • MySQL中如何正確存儲IP地址

    MySQL中如何正確存儲IP地址

    在MySQL中,當存儲IPv4地址時,應該使用32位的無符號整數(shù)(UNSIGNED INT)來存儲IP地址,而不是使用字符串,下面就來詳細的介紹一下具體原因,感興趣的可以了解一下
    2023-05-05

最新評論