數據庫、表、表內容增刪改查

數據庫和表的建立

  • 用戶的增 刪 改 查

    • 增 create user '用戶名'@'192.168.16.%' identified by ‘123’;建立一個帳戶,並設置密碼,可不設密碼mysql

      • grant all on *.* to '用戶'@'地址';   #給帳戶受權
        flush privileges;     #刷新受權當即生效

        建立帳戶並受權sql

        grant all on *.* to 'eva'@'%' identified by '123'
    • 刪 drop user '用戶名'@'ip地址';數據庫

    • 改 rename user '用戶名'@'ip地址' to '新用戶名'@‘ip地址' ;ide

    • 查 select user,host from mysql.user; 查看帳戶和地址函數

  • 庫(文件夾)的增 刪 改 查

    • 增 create database 庫名 charset utf8; 增長一個庫,編碼爲utf8
    • 查 show databases; 查看全部的數據庫
    • 改 alter database 庫名 charset latin1;
    • 刪除 drop database 庫名 ; 慎用
  • 操做表(文件) 增 查 改 刪

    • 先切換到庫中
      • use 庫名 例 use db
    • 增 create table 表名 (列名 類型 約束,列名 類型 約束); 列名與列名之間用逗號隔開, **約束可不設置**post

      • 類型編碼

        • int 整數 float 小數 (經常使用)
        • date 年月日 time 時分秒 datetime 年月日時分秒
        • char 定長字符串 varchar 變長字符串
      • 約束 not null, unique , primary key , foreign key (自列名) references 約束表名(列名),auto_increment, code

        • not null 非空約束,指定某列不能爲空regexp

        • unique 惟一約束排序

        • primary key 主鍵 指定給列名的值能夠惟一地標識該記錄

        • foreign key 外鍵 指定該行記錄從屬於主表中的一條記錄,主要用於參照完整性

          • 例:foreign key (id) references class(cid)

          • foreign key(dpt_id)
            references department(id)
            on delete cascade  # 連級刪除
            on update cascade # 連級更新
        • atuo_increment 表示自增

    • 查 show tables 查庫中的全部表名

      • desc 表名 查看錶結構
      • alter table 表名 modify 原列名 新的類型 約束; 在表名中的列名改爲新的類型和約束(覆蓋掉原來的類型和約束)
      • alter table 表名 change 原列名 新列名 新的類型 約束; 將表名中的列名更換成新的列名,和新的類型,約束(**必須寫新的類型和約束,不能直接只修改列名**)
    • 刪 drop table 表名; 刪除某個表

  • 操做表(文件)內容 增 查 改 查 清空表

    • 增 insert into 表名 values (1,'egon1'),(2,'egon2');

    • 改 update 表名 set 列名=’新的類容‘ where id = 2; 須要用到主鍵做爲約束條件

      • delete from 表名 where id =1; 根據條件進行刪除某一行
    • 清空表

      • delete from 表名; 清空表中的內容,若是表中有自增id,那麼新增的數據仍然是刪除前的最後一個+1
      • truncate table 表名; 清空,有自增的也從0開始,速度比上一條快
        1. 簡單查詢

          select * from 表名; 能夠單獨查表名中的某些列名,將*號換成列名,列名與列名之間用逗號隔開

        • select id,name from student;
        1. 去重查 distinct

          select distinct 列名 from 表名; 對所查列名進行去重

          1. 經過四則運算查詢

        select 列名*12 as 別名 from 表名; 好比說月薪x12 進行查詢,as是取別名的意思,as能夠省略不寫

          1. 定義顯示格式,concat() 用於鏈接字符串相似格式化輸出

        select concat('內容',列名,'內容',列名) as 別名 from 表名

        例 select concat('姓名:',name,'年齡:',age) as user from users;

        concat_ws() 第一個參數爲分割符

        例select concat_ws(':',name,age) as user from users;

        結果爲: alex:38

          1. 結合case語句
        SELECT
                (
                    CASE
                    WHEN emp_name = 'jingliyang' THEN
                        emp_name
                    WHEN emp_name = 'alex' THEN
                        CONCAT(emp_name,'_BIGSB')
                    ELSE
                        concat(emp_name, 'SB')
                    END
                ) as new_name
            FROM
                emp;
        • where約束 where 相似if條件語句
      • between 80 and 100 值在80到100之間between 是之間的意思

        • not between 值不在80到100之間的數,
      • in(a,b,c) 表示取值爲a或b或c的數

      • is null 或者 is not null判斷某個字段是否爲空,不能用等號

      • like 'eg%' 以eg...開頭的 %表示eg後面接任意長度字符,

        • like 'eg_' 以eg後只能由一個字符 _表示任意長度爲1字符
      • 聚合函數 count(),對於數字類的列名能夠用avg(平均),min,max,等

        • select avg(salary) from employee where depart_id = 3;
      • 分組關鍵字group by 分組的意思 一般和group_concat() ,聚合函數配合使用

        • SELECT post,GROUP_CONCAT(emp_name) FROM employee GROUP BY post;#按照崗位分組,並查看組內成員名
          select post,count(id) as count from employee group by post;#按照崗位分組,並查看每一個組有多少人
      • 優先級 where >group by > having >order by

      • 單例排序 以...進行排序 order by 列名 osc;小到大,osc爲默認值,能夠不寫 或者order by 列名 desc;大到小

        • 多例排序

          • 先按照age排序,若是年紀相同,就按薪資排序

            SELECT * from employee ORDER BY age,salary DESC;
        • 限制次數 limit 顧首不顧尾,初始值爲0

          • SELECT * FROM employee ORDER BY salary DESC
                    LIMIT 0,5; #從第0開始,即先查詢出第一條,而後包含這一條在內日後查5條
            
                SELECT * FROM employee ORDER BY salary DESC
                    LIMIT 5,5; #從第5開始,即先查詢出第6條,而後包含這一條在內日後查5條
      • 正則關鍵字 regexp

        • SELECT * FROM employee WHERE emp_name REGEXP 'on$';
相關文章
相關標籤/搜索