SQL語句筆記

xiasuhuei321發表於2017-12-13

前言

最近折騰的東西有點多,得多做點筆記,不然忘的太快了。以下為mysql命令模式下敲的sql語句。

常用命令

  • 使用資料庫(基於這個資料庫做增刪查改):
mysql> use techinfo;
複製程式碼
  • 檢視所有資料庫:
mysql> show databases;
複製程式碼
  • 檢視資料庫中的表:
mysql> show tables;
複製程式碼
  • 建立資料庫:
mysql> create database techinfo;
複製程式碼
  • 建立表:
mysql> create table user(username varchar(20) primary key,password varchar(20) not null);
複製程式碼
  • 刪除資料庫(表)(到跑路?):
mysql> drop database(table) dbname(tablename);
複製程式碼
  • 向表中插入一條資料:
mysql> insert into user values("asdf","123456");
複製程式碼
  • 如果未設定字符集,插入中文可能為亂碼,可以在建立資料庫的時候指定字符集:
mysql> create database mydb character set utf8;
或者:
mysql> alter database mydb character set utf8;
複製程式碼

第二種方法試了,已經存在的表中文還是亂碼,插入也不行(因為亂碼在表中顯示??,繼續插入中文還是??,而第一個是主鍵,所以無法插入),新建的表能正確顯示中文。

  • 檢視錶結構:
mysql> show columns from tablename;
mysql> desc tablename;
複製程式碼
  • 為表新增註釋:
mysql> alter table tablename comment="註釋";
複製程式碼
  • 為已有欄位新增註釋:
mysql> alter table tablename modify column uid varchar(64) comment "唯一標識";
複製程式碼

varchar(64)這個型別,根據自己的實際情況來。

  • 檢視註釋:
mysql> show create table user;
複製程式碼
  • 刪除一行:
mysql> delete from tablename where uid = 1234
複製程式碼
  • 查詢是否有重複的值:
mysql> select count(*) from user where username = 'luo';
複製程式碼

這種查詢方法並非最優的,因為一般插入會查詢是否有重複值的時候,只要有一個重複就不必再查下去了,所以可以這麼寫:

mysql> select 1 from user where username = 'luo' limit 1;
複製程式碼

相關文章