MySQL基礎語句總結

MySQL中的創建庫、表以及查詢語句對我們以後很好的應用數據庫是很大有幫助的,博文中是對這些基礎語句的總結,希望會對大家有些幫助
1、創建與刪除數據庫
  1. 創建數據庫
  2. mysql> create database testdb; 
  3. mysql> create database if not exists testdb;
  4. mysql> create schema if not exists student character set 'gbk' collate 'gbk_chinese_ci'
  5. 刪除數據庫
  6. mysql> drop database testdb;      
2、創建與刪除表
  1. CREATE TABLE [if not exists] tb_name(col_name,col_definstion,constraint
  2. 創建表  
  3. mysql> create table tb (id int unsigned not null auto_increment primary key,Name char(20) 
  4.  not null,Age tinyint not null);   
  5. mysql> create table tb (id int unsigned not null auto_increment,Name char(20) not null,Age 
  6.  tinyint not null,primary key(id));  
  7. mysql> create database mydb;   
  8. mysql> use mydb;   
  9. mysql> create table students(name char(20) not null,age tinyint unsigned,gender char(1)  
  10. not null);  
  11. mysql> create table courses(ID tinyint unsigned not null auto_increment primary key,Couse  
  12. varchar(50) not null);    
  13. mysql> create table courses(name char(20) not null,age tinyint unsigned,gender char(1)  
  14. not null);  ---從一張表中查出需要的數並創建爲一個新表,但是很多字段的屬性沒有存在,需要自己在重新定義  
  15. mysql> create table testcourses select * from courses where CID <=2;  
  16. 以其它表爲模板,創建一個新表,字段的屬性還會存在  
  17. mysql> create table test like courses;  
  18. 刪除表:DROP TABLE tb_name;  
  19. mysql> drop table testcourses;  
3、修改表
  1. ALTER TABLE tb_name;     
  2. mysql>alter table students change course Course varchar(100) after name;  
  3. mysql>alter table students add course varchar(100);     
  4. 向表中插入數據
  5. insert into tb_name (col,col2,....) values (val1,val2,....);  
  6. insert into tutors (Tname,Gender,Age) values ('jerry','M',24);  -----批量插入方式
  7. insert into tutors set Tname='Tom',Genser='F',Age=30; -----只能實現單個字段插入  
  8. insert into tutors (Tname,Gender,Age) select Name,Genser,Age from students where Age >=20  
  9. select * from tutors order by TID desc limit 1; -----查看降序的第一行  
  10. select last_insert_ID(); -----查詢插入的最後一個序列號  
  11. 更改數據庫  
  12. UPDATE tb_name SET column=value where   
  13. mysql>update students set Course='wg' where Name='j';   -----更改j的課程爲wg   
  14. 刪除表中的某一字段  
  15. DELETE FROM students  WHERE Course='';   
  16. mysql>delete from students where Course='wg';   
4、創建用戶
  1. CREATE USER 'USERNAME'@'HOST' IDENTIFIED BY 'PASSWORD'
  2. mysql> create user 'jerry'@'%' identified by 'jerry';   ------創建用戶 
  3. 修改用戶密碼的方法 
  4. 1) mysql> SET PASSWORD FOR 'USERNAME'@'HOST'=PASSWORD('NEW_PASSWORD'); 
  5. 2) mysqladmin -uUSERNAME -hHOST -p password 'password'  ------不進入mysql修改密碼 
  6. mysqladmin -uroot -h127.0.0.1 -p passwd'123456' 
  7. 3) mysql> UPDATE user SET Password=PASSWORD('password'WHERE USER='root' AND 
  8. Host='127.0.0.1'
  9. UPDATE user SET Password=PASSWORD('123456'WHERE USER='root' AND Host='127.0.0.1'
  10. 給用戶授權
  11. GRANT pri1,pri2,......ON DB_NAME.TB_NAME TO 'USERNAME'@'HOST' [IDENTIFIED BY 'password'
  12. mysql> grant all privileges on test.* to 'jerry'@'%';   -----給用戶所有權限 
  13. REVOKE pri1,pri2,.....ON DB_NAME.TB_NAME FROM 'USERNAME'@'HOST' 
5、關於show命令
  1. SHOW GRANTS FOR 'USERNAME'@'HOST'  -----查看用戶的授權
  2. mysql> show databases;    -----查看數據庫 
  3. mysql> desc students; -----查看一張表的結夠 
  4. mysql> show grants for 'jerry'@'%';    -----查看創建用戶的信息   
  5. mysql> show character set;  -----查看當前服務器所支持的字符集 
  6. mysql> show collation; -----查看排序規則 
  7. mysql> show engines; -----查看數據庫中的所有引擎 
  8. mysql> show table status like 'user'; -----查看一張表的狀態信息(橫向顯示的) 
  9. mysql> show table status like 'user'\G: -----查看一張表的狀態信息(縱向顯示) 
6、select語句練習 
下面的語句查詢操作所使用的數據庫已經上添加到附件
  1. 簡單語句查詢
  2. select * from students; ------顯示錶中的所有內容 
  3. select Name,Age from students; ------顯示students表中的Name和Age列 
  4. select distict Gender from students; ------相同的內容只顯示一次 
  5. 選擇students表中年齡大於20的同學(以下三種方式): 
  6. select * from students where Age>=20;
  7. select Name,Age from students where Age>=20;
  8. select Name,Age from students where Age+1>20; 
  9. 查找年齡大於20的同學並且按降序排列: 
  10. select Name,Age from students where Age>20 order by Age desc;
  11. 年齡大於等於20並且是男性的同學: 
  12. select Name from students where Age>20 and Gender='M';
  13. 年齡不大於20的同學:
  14. select Name,Age,Gender from students where not Age>20;  
  15. 小於等於20的女同學:
  16. select Name,Age,Gender from students where not (Age>20 or Gender=‘M’);
  17. 年齡在(21-24)之間的同學(以下兩種方式):
  18. select Name,Age from students where Age>20 and Age<25;
  19. select Name,Age from students where Age between 20 and 25; 
  20. 顯示以Y開頭的名稱(這裏限定了姓名的長度)("_"表示任意單個字符): 
  21. select Name from students where Name like 'Y___';
  22. 顯示以Y開頭的姓名: 
  23. select Name from students where Name like 'Y%';
  24. 名稱中含有ing的名稱(“%”表示任意長度的任意字符):
  25. select Name from students where Name like '%ing%'
  26. 顯示以M或N或Y開頭的名字(支持正則表達式):
  27. select Name from students where Name rlike '^[MNY].*$'
  28. 顯示年齡是18、20、25的同學:
  29. select Name from students where Age IN (18,20,25); 
  30. 顯示挑選課程號(CID1)爲空的同學: 
  31. select Name from students where CID1 is null;
  32. 把查詢後的結果進行降序排序(ASC升序,desc降序) 
  33. select Name,CID1 from students where CID1 is not null order by CID1 desc;
  34. select Name AS Student_Name from students;顯示查詢的Name表頭名變爲name 
  35. 隔兩行數據向後取三行數據:
  36. select Name from students limit 2,3; 
  37. 所有同學的平均年齡:
  38. select AVG(age) from students;
  39. 顯示年齡最大的同學:
  40. select MAX(age) from students; 
  41. 顯示年齡最小的同學: 
  42. select MIN(age) from students;
  43. 顯示所有同學的年齡總和: 
  44. select SUM(age) from students;
  45. 顯示所有同學的個數:
  46. select count(age) from students; 
  47. 顯示所有男同學的平均年齡:
  48. select AVG(age) from students where Gender=’M‘;
  49. 顯示所有女同學的平均年齡: 
  50. select AVG(age) from students where Gender=’F‘; 
  51. 顯示男女同學的平均年齡:
  52. select Gender,avg(age) from students group by Gender; 
  53. 顯示選修CID1的同學 
  54. select count(CID1) AS  Persons,CID1 from students group by CID1;
  55. 顯示選修人數大於2的課程: 
  56. select count(CID1) AS  Persons,CID1 from students group by CID1 having Persons>=2;
  57.  
  58. 多表查詢 
  59. 每位同學及其他所學習的課程名稱(以下四種方式) 
  60. select students.Name,courses.Cname from students,courses where students.CID1=courses.CID;
  61. select s.Name,c.Cname from students AS s,courses AS c where s.CID1=c.CID; 
  62. select s.Name,c.Cname from students AS s left jion courses AS c on s.CID1=c.CID;(左連接) 
  63. select s.Name,c.Cname from students AS s right jion courses AS c on s.CID1=c.CID;(右連接) 
  64. 顯示各個同學與他相對應的導師: 
  65. select c.Name as student,s.Name as teacher from students as s,students as c where
  66.  s.SID=c.TID; 
  67. 顯示每一位老師及其所教授的課程;沒有教授的課程保持爲NULL: 
  68. select t.Tname,c.Cname from tutors as t left join courses as c on t.TID=c.TID; 
  69. 顯示每一個課程及其相關的老師,沒有老師教授的課程將其老師顯示爲空: 
  70. select t.Tname,c.Cname from tutors as t right jion courses as c on t.TID=c.TID; 
  71. 顯示每位同學CID1課程的課程名及其講授了相關課程的老師的名稱: 
  72. select Name,Cname,Tname from students,courses,tutors where students.CID1=courses.CID  
  73. and courses.TID=tutors.TID; 
  74. 查看同學的成績及姓名,並且按升序排列:
  75. select students.Name,scores.Score from students,scores where students.SID=scores.SID  
  76. order by scores.Score desc
  77.  
  78. 子查詢
  79. 挑選出courses表中沒有被students中的CID2學習的課程的課程名稱:
  80. select Cname from courses where CID not IN (select CID2 from students where  
  81. CID2 is not null); 
  82. 挑選出沒有教授任何課程的老師,每個老師及其所教授課程的對應關係在courses表中: 
  83. select Tname from tutors where TID not in (select distinct TID from courses); 
  84. 找出students表中CID1有兩個或兩個以上同學學習了的同一個門課程的課程名稱: 
  85. select Cname from courses where CID in (select CID1 from students group by CID1 
  86.  having count(CID1) >=2); 
  87. 年齡大於平均年齡的同學:(使用子查詢時,子查詢只能返回單個值):
  88. select Name,Age from students where Age > (select avg(age) from students);  
  89. 查詢學生和老師各自的年齡並寫在一個表中: 
  90. (select Name,Age from students) union (select Tname,Age from tutors); 

上面的就是關於MySQL的一些基礎性總結,如果其中不對的地方還請大家指出

 

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