MYSQL總結,適合多個開發環境

MYSQL

SQL分類

  • 數據庫定義語言:DDL用來定義數據庫對象:數據庫database,表table,列column等。關鍵字:創建create,修改alter,刪除drop等(結構)
  • 數據操作語言:DML,用來對數據高庫中表的記錄進行更新。關鍵字,插入insert,刪除delete,更新update等(數據)
  • 數據查詢語言:DQL,用來查詢數據庫中表的記錄。關鍵字:select,from,where等
  • 數據控制語言:DCL用來定義數據庫的訪問權限和安全級別及創建用戶;關鍵字:grant

數據庫操作

  • 創建數據庫
    • create database 數據庫名;
    • create database 數據庫名 character set 字符集;
  • 查看數據庫
    • show databases;(查看數據庫服務器中所有的數據庫)
    • show create database 數據庫名;(查看某個數據庫的定義的信息)
  • 刪除數據庫
    • drop database 數據庫名;
  • 其他的數據庫操作命令
    • 切換數據庫:use 數據庫名;
    • 查看正在使用的數據庫:select database();

表操作

  • 創建表
    • create table 表名(字段名 類型(長度) [約束],表名(字段名 類型(長度) [約束]);
  • 單列約束
    • 主鍵約束:primary key,要求被修飾的字段:唯一和非空
    • 唯一約束:unique,要求被修飾的字段:唯一
    • 非空約束:not null,要求被修飾的字段:非空
  • 查看錶
    • 查看數據庫中的所有表:show tables;
  • 查看錶結構
    • desc 表名;
    • 查看錶的字符集:show create table 表名;
  • 刪除表
    • drop table 表名;
  • 修改表
    • 添加一列 alter table 表名 add 字段名 類型(長度)[約束];
    • 修改列的類型(長度、約束):alter table 表名 modify 要修改的字段名 類型(長度)[約束]
    • 一系列的修改
      • alter table 表名 change 舊列名 新列名 類型(長度)[約束]; 修改表的列名
      • alter table 表名 drop 列名; 刪除列
      • rename table 表名 to 新表名; 修改表名
      • alter table 表名 character set 字符集; 修改字符集
  • 查看錶數據
    • select * from 表名;

表記錄的操作

插入記錄

  • 語法
    • insert into 表 (列名1,列名2) values (值1,值2); 向表中插入某些列
    • insert into 表 values (值1,值2); 向表中插入所有列,這個必須爲每個字段設置數據
  • 注意
    1. 列名數與values後面的值的個數相等
    2. 列的順序與插入的值的順序一致
    3. 列名的類型與插入的值要一致
    4. 插入值的時候不能超過最大長度
    5. 值如果是字符串或者日期需要加引號
  • 例如
    • insert into 表 (字段) values (‘值’);

更新記錄

  • 語法
    • update 表 set 字段名=值,字段名=值; 這個修改數據庫裏面該列的所有全部修改
    • update 表 set 字段名=值,字段名=值 where 條件; 通過條件修改某一個需要修改的字段

刪除記錄

  • 語法
    • delete from 表名; 刪除所有的數據
    • delete from 表名 where 條件; 通過條件刪除某一個需要刪除的字段
      注:
  • 數據刪除後自增id不會重置
  • delete與truncate的區別
    1. delete刪除的時候是一條一條的刪除記錄的,通過回滾可以找回數據rollback;
    2. Tryncate刪除,它是將整個表刪除,會創建一張一樣的表,Tryncate刪除的數據無法找回

查詢數據

  • 語法
    • select [distinct]* | 列名 from 表名;查詢表中的指寫列或所有數據 *代表所有列
    • select [distinct]* | 列名 from 表名 where 條件; 根據條件查詢所有的數據
    • select * from 表名 as t; 使用表的別名查詢數據
      • 例:select * from table as t; 別名在多表的時候可以使用,這裏先了解下
    • select 列名 as 別名 from 表名; 使用列別名查詢數據 查詢某一列
    • select distinct(列名) from 表名; 去掉重複值,這裏只是查詢,別理解錯誤
    • select 列名,數值型數據 from 表名; 這裏是將數值類型的數據加值操作
    • 注:多個列名使用逗號隔開
    • select * from 表名 where 列名 in (條件);查詢某個範圍中的值
    • select * from 表名 where 字段 = 條件 or 字段 = 條件;
    • select * from 表名 where 字段 like ‘%條件%’;模胡查詢
    • select * from 表名 where 列名 條件 and 列名 條件; 多個條件成立
    • select * from 表名 where 列名 條件 or 列名 條件; 或條件成立,其中某一個條件成立既可

常見問題

  • 插入數據中文亂碼的問題或者是不能插入中文
    • 兩種修改方式
      • 在mysql的安裝路徑裏面有一個my.ini的配置文件裏面有一行:default-character-set=utf8和character-set-server=utf8將這裏的utf8修改成gbk,在命令行裏面重啓mysqle服務 net stop mysql關閉mysql服務net start mysql開啓mysql服務既可
      • 登陸mysql,在執行set names gbk;既可,這裏推薦使用第二種寫法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章