mysql - 基礎(chǔ)操作 (一)

1、數(shù)據(jù)庫(kù)管理

  • 1、 連接數(shù)據(jù)庫(kù)
    mysql -u root -p

  • 2 、查看所有的數(shù)據(jù)庫(kù)
    show databases;

  • 3、 創(chuàng)建數(shù)據(jù)庫(kù)
    create database xiaocai default character set utf8; -- 指定默認(rèn)字符集創(chuàng)建數(shù)據(jù)庫(kù)

  • 4、 查看數(shù)據(jù)庫(kù)字符集
    show create database xiaocai;

  • 5、 刪除數(shù)據(jù)庫(kù)
    drop database xiaocai;

  • 6、 修改數(shù)據(jù)庫(kù)字符集
    alter database xiaocai default character set gbk;

  • 7、 使用某個(gè)數(shù)據(jù)庫(kù)
    use xiaocai;

  • 8、 查看該數(shù)據(jù)庫(kù)中所有的表
    show tables;

  • 9、 創(chuàng)建表
    create table student(id int,name varchar(20),age int);

  • 10、 查看表結(jié)構(gòu)
    desc student;

  • 11、 刪除表
    drop table student;

  • 12、 添加字段
    alter table student add column gender varchar(2);

  • 13、 刪除字段
    alter table student drop column gender;

  • 14、 修改字段類型
    alter table student modify column name varchar(100);

  • 15、 修改字段名稱
    alter table student change column name nickname varchar(10);

  • 16、 修改表名稱
    alter table student rename to user;

2、增刪改

  • 1、 插入數(shù)據(jù)
    insert into student values(1,'xiaocai',25); -- 不能少字段
    insert into student(id,name) values(2,'xiaobai'); -- 插入指定數(shù)據(jù)

  • 2、 修改數(shù)據(jù)
    update student set age=21; -- 整體修改
    update student set age=25 where id = 1; -- 條件修改
    update student set age=22,name='xiaobaicai' where id = 2; -- 修改多個(gè)字段

  • 3、 刪除數(shù)據(jù)
    delete from student; -- 整體刪除
    delete from student where id = 2; -- 條件刪除

    truncate table student; -- 整體刪除
    1)不能帶條件刪除 2)即可以刪除表的數(shù)據(jù),也可以刪除表的約束 3)使用truncate table刪除的數(shù)據(jù)不能回滾
    與 delete 不同:
    delete from: 可以全表刪除 1)可以帶條件刪除 2)只能刪除表的數(shù)據(jù),不能刪除表的約束 3)使用delete from刪除的數(shù)據(jù)可以回滾(事務(wù))

3、查

  • 1、 查詢整個(gè)表所有
    select * from student;

  • 2、 查詢指定列
    select id,name from student; -- 只需要id和name的字段

  • 3、 查詢的時(shí)候添加一個(gè)「常量列」

mysql> select id,name,'hello' from student;
+------+---------+-------+
| id   | name    | hello |
+------+---------+-------+
|    1 | xiaocai | hello |
|    1 | xiaobai | hello |
+------+---------+-------+
  • 4、 查詢時(shí)合并列 (合并列只能合并數(shù)值類型的字段)
mysql> select * from student;
+------+---------+------+------+---------+
| id   | name    | age  | math | english |
+------+---------+------+------+---------+
|    1 | xiaocai |   25 |   88 |      60 |
|    2 | baicai  |   21 |   10 |      20 |
+------+---------+------+------+---------+
2 rows in set (0.00 sec)

mysql> select id,name,(math+english) as 'sum' from student;
+------+---------+------+
| id   | name    | sum  |
+------+---------+------+
|    1 | xiaocai |  148 |
|    2 | baicai  |   30 |
+------+---------+------+
  • 5、 查詢時(shí)去除重復(fù)項(xiàng)
mysql> select * from student;
+------+----------+------+------+---------+
| id   | name     | age  | math | english |
+------+----------+------+------+---------+
|    1 | xiaocai  |   25 |   88 |      60 |
|    2 | baicai   |   21 |   10 |      20 |
|    3 | qingcai  |   21 |   66 |      77 |
|    3 | dabaicai |   21 |   44 |      87 |
+------+----------+------+------+---------+
4 rows in set (0.00 sec)

mysql> select distinct age from student;
+------+
| age  |
+------+
|   25 |
|   21 |
+------+

select distinct (age) from student; -- 也是一樣的

3、復(fù)雜查詢

    1. 與或查詢:and(與) or(或)
      SELECT * FROM student WHERE id = 2 AND NAME = 'xiaobai';
    1. 數(shù)值大小查詢
    >   <   >=  <=  =  <>(不等于)     between and (等價(jià)于>= 且 <=)
    

    SELECT * FROM student WHERE age >23;
    SELECT * FROM student WHERE age >22 AND age <26;
    SELECT * FROM student WHERE age BETWEEN 23 AND 26;
    SELECT * FROM student WHERE NAME <> 'xiaocai';

    1. 判空條件
    • is null
    • is not null
    • =''
    • <>''
      SELECT * FROM student WHERE NAME IS NULL;
      SELECT * FROM student WHERE NAME IS NULL OR NAME = '';
    1. 模糊查詢 like
    • % : 表示任意個(gè)字符
    • _ : 表示一個(gè)字符

    SELECT * FROM student WHERE NAME LIKE '小%'; -- 查詢所有name為‘小’開(kāi)頭的

    id    name    age
    5 小菜  25
    7 小梁  25
    

    SELECT * FROM student WHERE NAME LIKE '_菜'; -- 查詢所有name為‘一個(gè)任意字后跟著菜字的’

    id  name    age  
    5   小菜  25   
    6   大菜  26   
    
    1. 聚合查詢(使用聚合函數(shù)的查詢)
    • sum() 總和
    • avg() 平均
    • max() 最大
    • min() 最小
    • count() 函數(shù)統(tǒng)計(jì)的數(shù)量不包含null的數(shù)據(jù)

    SELECT SUM(age) AS '年齡之和' FROM student;
    SELECT MIN(age) AS '最小年齡' FROM student;
    SELECT AVG(age) AS '平均年齡' FROM student;
    SELECT COUNT(NAME) AS '所有學(xué)生name為不空的個(gè)數(shù)(可以為NULL)' FROM student ;

    1. 分頁(yè)查詢 『limit 起始行,查詢幾行』
    • 起始行從0開(kāi)始 『(當(dāng)前頁(yè)-1)*每頁(yè)顯示多少條』
    • 分頁(yè):每頁(yè)顯示多少條

    SELECT * FROM student LIMIT (當(dāng)前頁(yè)-1)*每頁(yè)顯示多少條,每頁(yè)顯示多少條;
    例如,每頁(yè)查詢個(gè)數(shù)為3,查詢第一頁(yè)
    SELECT * FROM student LIMIT 0,3;

    id  name     age  
    1   xiaocai  25   
    2   xiaobai  21   
    3            33   
    

    每頁(yè)查詢個(gè)數(shù)為3,查詢第二頁(yè)
    SELECT * FROM student LIMIT 3,3;

    id  name    age  
    4           41   
    5   小菜  25   
    6   大菜  26   
    
    1. 查詢排序(order by )
    • asc: 順序,正序。數(shù)值:遞增,字母:自然順序(a-z)
    • desc: 倒序,反序。數(shù)值:遞減,字母:自然反序(z-a)

    SELECT * FROM student ORDER BY age DESC; -- 年齡倒敘

    查詢『年齡倒敘,當(dāng)年齡相同時(shí)id倒敘』排序
    SELECT * FROM student ORDER BY age DESC,id DESC;

    id  name     age  
    4            41   
    3            33   
    6   大菜   26   
    7   小梁   25   
    5   小菜   25   
    1   xiaocai  25   
    2   xiaobai  21   
    
    1. 分組查詢(group by)

    分組查詢學(xué)生年齡,另加一行顯示每個(gè)年齡的人數(shù)
    SELECT age AS '年齡',COUNT(*) FROM student GROUP BY age;

    年齡  count(*)  
    21      1         
    25      3         
    26      1         
    33      1         
    41      1         
    
    1. 分組查詢后篩選 (having)
      分組查詢 學(xué)生年齡和相同年齡的個(gè)數(shù) 且年齡大于 22 的

    SELECT age,COUNT(age) AS '相同年齡個(gè)數(shù)' FROM student GROUP BY age HAVING age >22;

    age  相同年齡個(gè)數(shù)  
    25   3                   
    26   1                   
    33   1                   
    41   1                   
    
    • having一般跟在group by之后,執(zhí)行記錄組選擇的一部分來(lái)工作的。
    • where則是執(zhí)行所有數(shù)據(jù)來(lái)工作的。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 什么是SQL數(shù)據(jù)庫(kù): SQL是Structured Query Language(結(jié)構(gòu)化查詢語(yǔ)言)的縮寫。SQL是...
    西貝巴巴閱讀 2,002評(píng)論 0 10
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚_t_閱讀 34,766評(píng)論 18 399
  • 50個(gè)常用的sql語(yǔ)句Student(S#,Sname,Sage,Ssex) 學(xué)生表Course(C#,Cname...
    哈哈海閱讀 1,334評(píng)論 0 7
  • 田田荷葉 一池碧荷在雨中傾聽(tīng) 天籟之聲。 黃昏的微雨過(guò)后,駕一葉蘭舟 槳櫓輕搖。 細(xì)風(fēng)在淺吟低唱 使池中蕩起纏綿的...
    鷹鷹兒閱讀 754評(píng)論 6 4
  • 昆崳樵子閱讀 275評(píng)論 0 0

友情鏈接更多精彩內(nèi)容