1. 程式人生 > >mySQL基本命令指令碼

mySQL基本命令指令碼

一、基本命令

1、啟動服務

    格式:net start 服務名稱;

    示例:net start mysql57;

2、停止服務

    說明:以管理員身份執行cmd

    格式:net stop 服務名稱;

    示例:net stop mysql57;

3、連線資料

    格式:mysql -u 使用者名稱 -p

    示例:mysql -u root -p

    輸入密碼

4、退出登入(斷開連線)

    quit或exit

5、檢視版本(連線後執行)

    示例:select version();

6、顯示當前時間

    示例:select now();

7、遠端連線

    格式:mysql -h ip地址 -u 使用者名稱 -p

    輸入對方mysql密碼

二、資料庫操作

1、建立資料庫

    格式:create database 資料庫名 charset=utf8;

    示例:create database William charset=utf8;

2、切換資料庫

    格式:use 資料庫名;

    示例:use William;

3、刪除資料庫

    格式:drop database 資料庫名;

    示例:drop database William;

4、檢視當前使用的資料庫

    格式:select database();

三、表操作

1、檢視資料庫中所有表

     格式:show tables;

2、建立表

    格式:create table 表名(列及型別)

    說明:auto_increment(自增長),primary key(主鍵),not null(不為空)

    示例:create table student(id int auto_increment primary key,name varchar(20) not null,age int not null,sex bit default 1,address varchar(20));

3、刪除表

    格式:drop table 表名;

    示例:drop table student;

4、查看錶結構

    格式:desc 表名;

    示例:desc student;

5、檢視建表語句

    格式:show create table 表名;

    示例:show create table student;

6、重命名錶

    格式:rename table 原表名 to 新表名;

    示例:rename table student to newstudent;

7、修改表

    格式:alter table 表名 add|change|drop 列名 型別;

    示例:alter table newstudent add isdelect bit default 0;

四、資料操作

1、增

    a、全列插入

        格式:insert into 表名 values(...);

        說明:主鍵列是自動增長的,但是在全列插入時需要佔位,通常使用0,

                   插入成功以後以實際資料為準。

        示例:insert into newstudent values(0,"william",23,1,"徐州",0);

    b、預設插入

        格式:insert into 表名(列1,列2,...) values(值1,值2,...);

        示例:insert into newstudent(name,age,address) values("王子",22,"宿遷市");

    c、同時插入多條資料

        格式:insert into 表名 values(...),(...),...;

        示例:insert into newstudent values(0,"李小",20,0,"南京",1),(0,"李鵬",23,1,"蘇州",0);

2、刪

    格式:delete from 表名 where 條件;

    說明:沒有條件是全部刪除,慎用。

    示例:delete from newstudent where id=4;

3、改

    格式:update 表名 set 列1=值1,列2=值2,...where 條件;

    說明:沒有條件是全部列修改,慎用。

    示例:update newstudent set age=30 where id=3;

4、查

    查詢表中全部資料

    格式:select * from 表名;

    示例:select * from newstudent;

五、查詢

1、基本語法

    格式:select * from 表名

    說明:from關鍵字後使表名,表示資料來源於這張表;

          select後面寫表中的列名,如果是*表示在結果集中顯示錶中的所有列;

          在select後面的列名部分,可以使用as為列面起別名,這個別名顯示在結果集中;

          如果要查詢多個列,之間使用逗號分割;

    示例:select name,age from newstudent;

               select name as a,age from newstudent;

2、消除重複行

    說明:在select後面,列前面使用distinct可以消除重複的行

    格式:select distinct 列名 from 表名;

    示例:select distinct sex from newstudent;

3、條件查詢

    a、語法

        select * from 表名 where 條件

    b、比較運算子

        等於          =

        大於          >

        小於          <

        大於等於      >=

        小於等於      <=

        不等於        !=或<>

        需求:查詢id大於4的所有資料

        示例:select * from newstudent where id>4;

    c、邏輯運算子

        and     並

        or      或

        not     非

        需求:查詢id大於4的女生

        示例:select * from newstudent where id>4 and sex=0;

    d、模糊查詢

        like

        %表示任意多個任意字元

        _表示表示一個任意字元

        需求:查詢姓李的同學

        示例:select * from newstudent where name like "李%";

    e、範圍查詢

        in  表示在一個非連續的範圍內

        between...and...    表示在一個連續的範圍內

        需求:查詢編號是5、7的學生

        示例:select * from newstudent where id in (5,7);

        需求:查詢編號為3-7的學生

        示例:select * from newstudent where id between 3 and 7;

    f、空判斷

        注意:null與""是不同的

        判斷空:is null

        判斷非空:is not null

        需求:查詢沒有地址的同學

        示例:select * from newstudent where address is null;

    g、優先順序

        小括號、not、比較運算子、邏輯運算子

        and比or的優先順序高,如果同時出現並希望先選or,需要結合()來使用

4、聚合

    為了快速得到統計資料,提供了5個聚合函式

    a、count(*)       表示計算總行數,括號中可以寫*和列名

    b、max(列)        表示求此列的最大值

    c、min(列)        表示求此列的最小值

    d、sum(列)        表示求此列的和

    e、avg(列)        表示求此列的平均值

    需求:查詢學生總數

    示例:select count(*) from newstudent;

    需求:查詢女生年齡的平均值

    示例:select avg(age) from newstudent where sex=0;

5、分組

    按照欄位分組,表示此欄位相同的資料會被放到一個集合中。

    分組後,只能查詢出相同的資料列,對於有差異的資料列無法顯示在結果集中。

    可以對分組後的資料進行統計,進行聚合運算。

    語法:select 列1,列2,聚合...from 表名 group by 列1,列2,...;

    需求:查詢男女生總數

    示例:select sex,count(*) from newstudent group by sex;

    分組後的資料篩選:

    語法:select 列1,列2,聚合...from 表名 group by 列1,列2,...having 列1,列2,...聚合

    示例:select sex,count(*) from newstudent group by sex having sex=0;

    where與having的區別:

    where是對from後面指定的表進行篩選,屬於對原始資料的篩選;

    having是對group by的結果進行篩選;

6、排序

    語法:select * from 表名 order by 列1 asc|desc,列2 asc|desc,...;

    說明:

    a、將資料按照列1進行排序,若果某些列1的值相同,則按照列2進行排序

    b、預設按照從小到大的順序排序

    c、asc降序

    d、升序

    需求:按照年齡排序

    示例:select * from newstudent order by age asc,id asc;

7、分頁

    語法:select * from limit start,count;

    說明:start索引送0開始

    示例:select * from limit 0,5;

六、關聯

    建表語句:

    1、create table class(id int auto_increment primary key,name varchar(20) not null,stuNum int not null);

   2、create table students(id int auto_increment primary key,name varchar(20) not null,sex bit default 1,classid int not null,foreign key(classid) references class(id));

    3、插入資料

    insert into class values(0,"電子2152",45),(0,"電子2151",46);

    insert into students values(0,"王子",1,1),(0,"小芳",0,2);

    需求:查詢學生所在班級

    示例:

    select students.name,class.name from class inner join students on class.id=students.classid;

    select students.name,class.name from class left join students on class.id=students.classid;

    分類:

    1、表A inner join 表B:表A與表B匹配的行會出現在結果集中。

    2、表A left join 表B: 表A與表B匹配的行會出現在結果集中,外加表A中獨有的資料,

                                        未對應的資料使用null填充。

    3、表A right join 表B:表A與表B匹配的行會出現在結果集中,外加表B中獨有的資料,

                                         未對應的資料使用null填充。