mysql主要語句

原文鏈接:https://blog.csdn.net/qq_33393542/article/details/79656426

SQL分類

SQL 主要語句可以劃分爲一下3類

  • DDL:數據定義語言,這些語句定義不同的數據段、數據庫、表、列、索引等數據庫對象。常用語句關鍵字主要包括create,drop,alter等
  • DML:數據操作語句,用於添加、刪除、更新和查詢數據庫記錄,並檢查數據完整性。常用語句關鍵字主要包括 insert,delete,update和select等。
  • DCL數據控制語句,用於控制不同數據段直接的許可和訪問級別的語句。這些語句定義了數據庫、表、字段、用戶的訪問權限和安全級別。主要 的語句包括關鍵字grant、revoke等

DDL語句

是對數據庫內部的數據表結構的進行添加 、刪除、修改等操作語言,它和DML語句最大的區別是DML只是對錶內部數據操作,而不涉及表的定義、結構的修改,更不會涉及其他對象。DDL更多地由數據庫管理員(DBA)使用。

  1. 連接mysql服務器
  2. mysql -uroot -p
  3. 創建數據庫test1
  4. create database test1;
  5. 顯示有哪些數據庫
  6. show databases;
  7. //mysql 自動創建的表有
  8. information_schema:主要存儲了系統中的一些數據庫信息,比如用戶表信息、列信息、權限信息、字符集信息、分區信息等等
  9. cluster:存儲了系統的集羣信息
  10. mysql:存儲了系統的用戶權限信息。
  11. test:系統自動創建的測試數據庫,任何用戶都可以訪問
  12. 選擇數據庫
  13. use test1
  14. 顯示test1數據庫中創建的所有表
  15. show tables
  16. 刪除數據庫
  17. drop database test1;
  18. 創建表
  19. create table emp(ename varchar(10),hiredata date,sal decimal(10,2),deptno int(2));
  20. 查看錶定義
  21. desc emp;
  22. 查看創建表的定義
  23. show create table emp;
  24. 刪除表
  25. drop table emp;
  26. 修改表
  27. alter table emp modify ename varchar(20);
  28. 增加表字段
  29. alter table emp add column age int(3);
  30. 刪除表字段
  31. alter table emp drop column age;
  32. 字段改名
  33. alter table emp change age age1 int(4);
  34. changemodify都可以修改表的定義,不同的是change後面需要寫兩次列名,不方便,但是change的優點是可以修改列名稱,則modify則不能
  35. 修改字段排序
  36. alter table emp add birth date after ename;
  37. alter table emp modify age int(3) first;
  38. 更改表名
  39. alter table emp rename emp1;

DML語句 
是指對數據庫中表記錄的操作,主要包括表記錄的插入(insert)、更新(update)、刪除(delete)和查詢(select)。
  1. 插入記錄
  2. insert into emp(ename,hiredate,sal,deptno)values('zzx1','2000-01-01','2000',1);
  3. 也可以不用指定字段名稱,但是values後面的順序要和字段的排列順序一致
  4. inset into emp('zzx1','2000-01-01','2000',1);
  5. 含可空字段、非空但是含有默認值的字段、自增字段、可以不用再insert後的字段列表裏面出現,values後面只寫對應字段名稱的value,沒寫的字段可以自動設置爲null、默認值、自增的下一個數字
  6. 批量增加用逗號隔開
  7. insert into dept values(5,'xxx'),(8,'xxx');
  8. 更新記錄
  9. update emp set sal=4000 where ename='xxx';
  10. 刪除記錄
  11. delete from emp where ename='doney';
  12. 查詢記錄
  13. select * from emp;
  14. *表示所有記錄,也可以用逗號隔開的字段來選擇查詢
  15. 查詢不重複的記錄
  16. select distinct deptno from emp;
  17. 條件查詢
  18. where關鍵字來實現,可以使用<>!=等多條件可以使用or、and等
  19. 排序和限制
  20. desc和asc是排序關鍵字,desc是降序、asc是升序排列 ORDER BY 排序,默認是升序
  21. select * from emp order by sal;
  22. 如果排序字段的值一樣,則值相同的字段按照第二個排序字段進行排序,如果只有一個排序字段,則相同字段將會無序排序
  23. select * from emp order by deptno,sal desc;
  24. 限制
  25. select * from emp order by sal limit 3;
  26. //前者是起始偏移量,後者是顯示行數
  27. select * from emp order by sal limit 1,3;
  28. limit 和order by 一起使用來做分頁
  29. 聚合
  30. 用戶做一下些彙總操作
  31. sum(求和),count(*)(記錄數),max(最大值),min(最小值)
  32. with rollup 是可選語法,表示是否對分類聚合後的結果進行再彙總
  33. having 表示對分類後的結果在進行條件的過濾。
  34. select deptno,count(1) from emp group by deptno having count(1)>=1;


表連接

大類上分爲外連接和內連接 
外鏈接 又分爲左連接和右連接

左連接:包含所以的左邊表中的記錄甚至是右邊表中沒有和它匹配的記錄。 
右連接:同上

  1. select ename,detname from emp left join dept on emp.deptno=dept.deptno;
  2. 左連接和右連接可以相互轉換

子查詢
  1. select * from emp where deptno in(select deptno from dept);
  2. 如果子查詢記錄唯一,可以使用=替代in
  3. select * from emp where deptno =(select deptno from dept limit 1);

記錄查詢 
將兩個表的數據按照一定的查詢出來後,將結果合在一起顯示

union all 是將結果集合併在一起,而union是將union all後的結果在進行一次distinct,去除重複

  1. select deptno from emp union all select deptno from dept;
  2. select demtno from emp union select deptno from dept;




SQL分類

SQL 主要語句可以劃分爲一下3類

  • DDL:數據定義語言,這些語句定義不同的數據段、數據庫、表、列、索引等數據庫對象。常用語句關鍵字主要包括create,drop,alter等
  • DML:數據操作語句,用於添加、刪除、更新和查詢數據庫記錄,並檢查數據完整性。常用語句關鍵字主要包括 insert,delete,update和select等。
  • DCL數據控制語句,用於控制不同數據段直接的許可和訪問級別的語句。這些語句定義了數據庫、表、字段、用戶的訪問權限和安全級別。主要 的語句包括關鍵字grant、revoke等

DDL語句

是對數據庫內部的數據表結構的進行添加 、刪除、修改等操作語言,它和DML語句最大的區別是DML只是對錶內部數據操作,而不涉及表的定義、結構的修改,更不會涉及其他對象。DDL更多地由數據庫管理員(DBA)使用。

  1. 連接mysql服務器
  2. mysql -uroot -p
  3. 創建數據庫test1
  4. create database test1;
  5. 顯示有哪些數據庫
  6. show databases;
  7. //mysql 自動創建的表有
  8. information_schema:主要存儲了系統中的一些數據庫信息,比如用戶表信息、列信息、權限信息、字符集信息、分區信息等等
  9. cluster:存儲了系統的集羣信息
  10. mysql:存儲了系統的用戶權限信息。
  11. test:系統自動創建的測試數據庫,任何用戶都可以訪問
  12. 選擇數據庫
  13. use test1
  14. 顯示test1數據庫中創建的所有表
  15. show tables
  16. 刪除數據庫
  17. drop database test1;
  18. 創建表
  19. create table emp(ename varchar(10),hiredata date,sal decimal(10,2),deptno int(2));
  20. 查看錶定義
  21. desc emp;
  22. 查看創建表的定義
  23. show create table emp;
  24. 刪除表
  25. drop table emp;
  26. 修改表
  27. alter table emp modify ename varchar(20);
  28. 增加表字段
  29. alter table emp add column age int(3);
  30. 刪除表字段
  31. alter table emp drop column age;
  32. 字段改名
  33. alter table emp change age age1 int(4);
  34. changemodify都可以修改表的定義,不同的是change後面需要寫兩次列名,不方便,但是change的優點是可以修改列名稱,則modify則不能
  35. 修改字段排序
  36. alter table emp add birth date after ename;
  37. alter table emp modify age int(3) first;
  38. 更改表名
  39. alter table emp rename emp1;

DML語句 
是指對數據庫中表記錄的操作,主要包括表記錄的插入(insert)、更新(update)、刪除(delete)和查詢(select)。
  1. 插入記錄
  2. insert into emp(ename,hiredate,sal,deptno)values('zzx1','2000-01-01','2000',1);
  3. 也可以不用指定字段名稱,但是values後面的順序要和字段的排列順序一致
  4. inset into emp('zzx1','2000-01-01','2000',1);
  5. 含可空字段、非空但是含有默認值的字段、自增字段、可以不用再insert後的字段列表裏面出現,values後面只寫對應字段名稱的value,沒寫的字段可以自動設置爲null、默認值、自增的下一個數字
  6. 批量增加用逗號隔開
  7. insert into dept values(5,'xxx'),(8,'xxx');
  8. 更新記錄
  9. update emp set sal=4000 where ename='xxx';
  10. 刪除記錄
  11. delete from emp where ename='doney';
  12. 查詢記錄
  13. select * from emp;
  14. *表示所有記錄,也可以用逗號隔開的字段來選擇查詢
  15. 查詢不重複的記錄
  16. select distinct deptno from emp;
  17. 條件查詢
  18. where關鍵字來實現,可以使用<>!=等多條件可以使用or、and等
  19. 排序和限制
  20. desc和asc是排序關鍵字,desc是降序、asc是升序排列 ORDER BY 排序,默認是升序
  21. select * from emp order by sal;
  22. 如果排序字段的值一樣,則值相同的字段按照第二個排序字段進行排序,如果只有一個排序字段,則相同字段將會無序排序
  23. select * from emp order by deptno,sal desc;
  24. 限制
  25. select * from emp order by sal limit 3;
  26. //前者是起始偏移量,後者是顯示行數
  27. select * from emp order by sal limit 1,3;
  28. limit 和order by 一起使用來做分頁
  29. 聚合
  30. 用戶做一下些彙總操作
  31. sum(求和),count(*)(記錄數),max(最大值),min(最小值)
  32. with rollup 是可選語法,表示是否對分類聚合後的結果進行再彙總
  33. having 表示對分類後的結果在進行條件的過濾。
  34. select deptno,count(1) from emp group by deptno having count(1)>=1;


表連接

大類上分爲外連接和內連接 
外鏈接 又分爲左連接和右連接

左連接:包含所以的左邊表中的記錄甚至是右邊表中沒有和它匹配的記錄。 
右連接:同上

  1. select ename,detname from emp left join dept on emp.deptno=dept.deptno;
  2. 左連接和右連接可以相互轉換

子查詢
  1. select * from emp where deptno in(select deptno from dept);
  2. 如果子查詢記錄唯一,可以使用=替代in
  3. select * from emp where deptno =(select deptno from dept limit 1);

記錄查詢 
將兩個表的數據按照一定的查詢出來後,將結果合在一起顯示

union all 是將結果集合併在一起,而union是將union all後的結果在進行一次distinct,去除重複

  1. select deptno from emp union all select deptno from dept;
  2. select demtno from emp union select deptno from dept;




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章