資料庫常用sql 語句

weixin_34292287發表於2017-03-13

##一、資料庫操作:

** 1、檢視資料庫:

**  >SHOW DATABASES;

**  2、建立資料庫:

**  >CREATE DATABASE db_name;  //db_name為資料庫名

**  3、使用資料庫:

**  >USE db_name;

**  4、刪除資料庫:

** >DROP DATABASE db_name;

##二、建立表:

####1、建立表:

** >CREATE TABLE table_name(

** >id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,    //id值,無符號、非空、遞增——唯一性,可做主鍵。

** >name VARCHAR(60) NOT NULL

**>score TINYINT UNSIGNED NOT NULL DEFAULT 0,    //設定預設列值

**>PRIMARY KEY(id)

** >)ENGINE=InnoDB    //設定表的儲存引擎,一般常用InnoDB和MyISAM;InnoDB可靠,支援事務;MyISAM高效不支援全文檢索>DEFAULT charset=utf8;  //設定預設的編碼,防止資料庫中文亂碼如果有條件的建立資料表還可以使用   >CREATE TABLE IF NOT EXISTS tb_name(........

####2、複製表:

**>CREATE TABLE tb_name2 SELECT * FROM tb_name;

**或者部分複製:

**>CREATE TABLE tb_name2 SELECT id,name FROM tb_name;

####3、建立臨時表:

**>CREATE TEMPORARY TABLE tb_name(這裡和建立普通表一樣);

**4、檢視資料庫中可用的表:

**>SHOW TABLES;

####5、檢視錶的結構:

**>DESCRIBE tb_name;

**也可以使用:

***>SHOW COLUMNS in tb_name;     //from也可以

####6、刪除表:

**>DROP [ TEMPORARY ] TABLE [ IF EXISTS ] tb_name[ ,tb_name2.......];

**例項:

***>DROP TABLE IF EXISTS tb_name;

####7、表重新命名:

**>RENAME TABLE name_old TO name_new;

**還可以使用:

**>ALTER TABLE name_old RENAME name_new;

##三、修改表:

**1、更改表結構:

**>ALTER TABLE tb_name ADD[CHANGE,RENAME,DROP] ...要更改的內容...

**例項:

**>ALTER TABLE tb_name ADD COLUMN address varchar(80) NOT NULL;

**>ALTER TABLE tb_name DROP address;

**>ALTER TABLE tb_name CHANGE score score SMALLINT(4) NOT NULL;

##四、插入資料:

####1、插入資料:

**>INSERT INTO tb_name(id,name,score)VALUES(NULL,'張三',140),(NULL,'張四',178),(NULL,'張五',134);

**這裡的插入多條資料直接在後邊加上逗號,直接寫入插入的資料即可;主鍵id是自增的列,可以不用寫。

**2、插入檢索出來的資料:

**>INSERT INTO tb_name(name,score) SELECT name,score FROM tb_name2;

##五、更新資料:

####1、指定更新資料:

**>UPDATE tb_name SET score=189 WHERE id=2;

**>UPDATE tablename SET columnName=NewValue [ WHERE condition ]

##六、刪除資料:

####1、刪除資料:

**>DELETE FROM tb_name WHERE id=3;

##七、條件控制:

####1、WHERE 語句:

**>SELECT * FROM tb_name WHERE id=3;

####2、HAVING 語句:

**>SELECT * FROM tb_name GROUP BY score HAVING count(*)>2

**3、相關條件控制符:

** =、>、<、<>、IN(1,2,3......)、BETWEEN a AND b、NOTAND 、OR

Linke()用法中      %  為匹配任意、  _  匹配一個字元(可以是漢字)

IS NULL 空值檢測

##八、MySQL的一些函式:

####1、字串連結——CONCAT()

**>SELECT CONCAT(name,'=>',score) FROM tb_name

####2、數學函式:

**AVG、SUM、MAX、MIN、COUNT;

####3、文字處理函式:

**TRIM、LOCATE、UPPER、LOWER、SUBSTRING

####4、運算子:

**+、-、*、\

####5、時間函式:

**DATE()、CURTIME()、DAY()、YEAR()、NOW().....

##九、分組查詢:

**1、分組查詢可以按照指定的列進行分組:

**>SELECT COUNT(*) FROM tb_name GROUP BY score HAVING COUNT(*)>1;

**2、條件使用Having;

**3、ORDER BY 排序:

**ORDER BY DESC|ASC    =>按資料的降序和升序排列

##十 觸發器

**觸發器是指在進行某項指定操作時,觸發觸發器內指定的操作;

**1、支援觸發器的語句有DELETE、INSERT、UPDATE,其他均不支援

**2、建立觸發器:

**>CREATE TRIGGER trig AFTER INSERT ON ORDERS FOR EACH ROW SELECT NEW.orser_name;

**>INSERT語句,觸發語句,返回一個值

**3、刪除觸發器

**>DROP TRIGGER trig;

##十一、全文檢索——MATCH和AGAINST

**1、SELECT MATCH(note_text)AGAINST('PICASO') FROM tb_name;

**2、InnoDB引擎不支援全文檢索,MyISAM可以;

##十二、檢視

**1、建立檢視

**>CREATE VIEW name AS SELECT * FROM tb_name WHERE ~~ ORDER BY ~~;

**2、檢視的特殊作用:

**a、簡化表之間的聯結(把聯結寫在select中);

**b、重新格式化輸出檢索的資料(TRIM,CONCAT等函式);

**c、過濾不想要的資料(select部分)

**d、使用檢視計算欄位值,如彙總這樣的值。

相關文章