SQL語句

重啓mysql服務器  service mysql restart

中止mysql服務器  service mysql stop

開啓mysql服務器  service mysql restart

建立數據庫  CREATE DATABASE 數據庫名;

刪除數據庫  drop database <數據庫名>;

建立數據表  CREATE TABLE 表名(column_name column_type); 
          create table 表名 -- 表字段名 -- 表字段類型 create table students(id int unsigned primary key auto_increment not null);

查看錶結構    desc 表名;

查看錶的建立語句 show create table 表名;

查看全部表 show tables;


修改數據表名&修改數據表字段
 
 刪除表字段           ALTER TABLE  表名 DROP  字段名;    alter table students drop birthda;
 
 增長表字段(定義字段類型)    ALTER  TABLE  表名  ADD 字段名  類型;  alter table students add birthday datetim;
 
 修改字段類型          alter table 表名 modify 列名 類型及約束    alter table students modify birth date not null;
 
 修改字段名&字段類型       alter table 表名 change 原名 新名 類型及約束;  alter table students change birthday birth datetime not null;
 
 修改字段默認值          ALTER TABLE  表名  ALTER 字段名 SET DEFAULT 1000;
 
 修改表名        ALTER TABLE  原表名 RENAME TO 新表名;
 
 刪除外鍵約束      alter table tableName drop foreign key keyName;
 
 修改存儲引擎      alter table tableName engine=myisam;

刪除數據表  DROP TABLE 表名;  drop table students;

插入數據  INSERT INTO 表名( field1, field2,...fieldN ) VALUES ( value1, value2,...valueN );   
      insert into students(name,hometown,birthday) values('⻩蓉','桃花島','2016-3-2'value若爲字符串類型,需添加引號(單/雙)
     
 
      insert into 表名 values (..);       insert into students values(0,’郭靖‘,1,'蒙古','2016-1-2')
      insert into 表名 values (..),(...);   insert into classes values(0,'python1'),(0,'python2')
      insert into 表名(列1,...) values(值1,...),(值1,...)..;  insert into students(name) values('楊康'),('楊過'),('⼩⻰⼥')

修改數據  update 表名 set 列1=值1,列2=值2... where  條件;  update students set gender=0,hometown='北京' where id=5;

刪除數據  DELETE FROM 表名 [WHERE 條件]    delete from students where id=2;

刪除表中全部數據 :   
delete from 表名;  # delete至關於將mysql表中全部記錄一條一條刪除到刪完,而truncate至關於保留mysql表的結構,從新建立了這個表,全部的狀態都至關於新表
 
truncate table 表名;    # 效率上truncate比delete快,但truncate刪除後不記錄mysql日誌,不能夠恢復數據。

 

  刪除有外鍵約束的MySQL表中的數據 :     SET FOREIGN_KEY_CHECKS = 0 ;python


  操做結束後  :   SET FOREIGN_KEY_CHECKS = 1;mysql

 

查詢數據  SELECT column_name, column_name FROM table_name [WHERE Clause] [LIMIT N][ OFFSET M]

as關鍵字 select id as 序號, name as 名字, gender as 性別 from student(字段起別名)
       select s.id,s.name,s.gender from students as (表起別名)

消除重複行 select distinct 列1,... from 表名

where條件查詢   SELECT field1, field2,...fieldN FROM table_name1, table_name2... [WHERE condition1 [AND [OR]] condition2.....
              比較運算符、邏輯運算符(and or not)、模糊查詢(like %多個 _一個)、範圍查詢(bettween..and(區間內) in(指定值))、空判斷(is null is not null)

like條件查詢     SELECT field1, field2,...fieldN FROM table_name WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'

排序查詢      select 顯示字段名 from 表名 order by 排序字段名 asc|desc [,列2 asc|desc,..]   select * from students order by age desc,height des

分組查詢      SELECT column_name, function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name;
          select gender from students group by gender;  單字段分組
          select gender,group_concat(id) from students group by gender;  分組並顯示每組成員
          select gender,avg(age) from students group by gender;     分組+聚合,平均值
          select gender,count(*) from students group by gender;     分組+聚合,計總人數
          select gender,count(*) from students group by gender having count(*)>2;  分組+過濾,having過濾分組以後的結果
          select gender,count(*) from students group by gender with rollup;  分組後新增一行做爲彙總

聚合查詢      select count(字段名) from student   計總
          select max(id) from students where gender=2;  最大值
          select min(id) from students where is_delete=2;  最小值
          select sum(age) from students where gender=2;   求和
          select sum(age)/count(*) from students where gender=2; 或 select avg(id) from students where is_delete=0 and gender=2; 平均值

鏈接查詢      INNER JOIN(內鏈接,或等值鏈接):查詢的結果爲兩個表匹配到的數據。  
          select * from students inner join classes on students.cls_id = classes.id;


          LEFT JOIN(左/外鏈接)查詢的結果爲兩個表匹配到的數據和左表特有的,右表不存在數據null填充
     
     select * from students as s left join classes as c on s.cls_id = c.id;


          
RIGHT JOIN(右/外鏈接)查詢的結果爲兩個表匹配到的數據和右表特有的數據,左表不存在的數據null填充
          select * from students as s right join classes as c on s.cls_id = c.id;


自鏈接查詢    select city.* from areas as cityinner join areas as province on city.pid=province.aidwhere province.atitle='山西省';
         select dis.* from areas as disinner join areas as city on city.aid=dis.pidwhere city.atitle='廣州市';


子查詢      標量子查詢: 子查詢返回的結果是⼀個數據(一行一列) select * from students where age > (select avg(age) from students);   
         列子查詢: 返回的結果是⼀列(⼀列多行) 主查詢 where 條件 in (列子查詢)   select name from classes where id in (select cls_id from students);
         行子查詢: 返回的結果是⼀行(⼀行多列) 主查詢 where (字段1,2,...) = (行子查詢)  select * from students where (height,age) = (select max(height),max(age) from students);
         子查詢是⼀個完整的SQL


          select * from 表名 limit start=0,count  select * from students where is_delete=0 limit (n-1)*m,m
limit分頁查詢    limit 起始記錄,記錄數    
          select * from students limit 0,3; 意思是:從第下標爲0的記錄開始取,取3條
相關文章
相關標籤/搜索