總覽html
http://www.cnblogs.com/wangfengming/p/8143554.html數據庫的安裝(來自老王)mysql
大綱 1.數據庫 * 1.建立 create database 庫名; 2.使用數據庫 use 庫名; 3.查詢當前庫下全部的表 show tables; show database; -- 顯示全部數據庫 *4.刪除 drop database 庫名; 2.表操做 *1.建立 create table 表名( 字段1 數據類型 約束條件, 字段1 數據類型 約束條件, ) *2.刪除 drop table t1; 3.修改表 ALTER TABLE t1 add id int not null PRIMARY key ; -- 添加字段 ALTER TABLE t1 MODIFY salary double(10,3) not null DEFAULT 10; -- 修改字段類型與約束條件 ALTER TABLE t1 CHANGE salary sal double(10,3) not null DEFAULT 10; --修改字段名稱和類型與約束條件 ALTER TABLE t1 DROP COLUMN sal; -- 刪除指定字段 RENAME table t1 to t5;-- 改變表名稱 4.查看 * select * from t1; -- 查詢表中數據 desc t1; -- 查看錶結構 show create table t1; -- 顯示錶的建立信息 5.複製表 create table t2 select * from t1; -- 複製表結構和表數據 * create table t3 LIKE t1; -- 只複製表結構 3.數據操做 1.增 INSERT into t2(name,age) VALUES('小三',11); -- 指定字段插入 INSERT into t2 VALUES('鳳',13,2.5); -- 整表字段插入 INSERT into t2 VALUES('鳳',13,2.5),('鳳',13,2.5),('鳳',13,2.5),('鳳',13,2.5),('鳳',13,2.5); --插入多條 insert into t1 SELECT id,name from t2; -- 複製表數據 2.刪 delete from t2 where age = 1113; 3.改 update t2 set name ='祝小鳳' , salary = 100 where age =13; 4.查 select * from T1; 1.簡單查詢 -- 查詢全部 select * from person; --查詢指定字段 select name,age FROM person; -- 別名+字段運算 select p.name,p.salary,p.salary+p.salary*0.1 as 'sum' from person as p -- 去重複查詢 select DISTINCT salary,name from person; 2.條件查詢 -- 邏輯運算符 < > <= >= != <> = -- is null ,is not null -- and OR () SELECT * from person where salary >5000 or ( age <=30 AND NAME =''); 3.區間查詢 SELECT * FROM person where salary >=5000 and salary<=10000; -- 推薦使用 : --ps:先後包含 SELECT * FROM person where salary between 5000 and 10000; 4.集合查詢 in not in SELECT * FROM person where age = 20 or age = 23 or age =30 ; SELECT * FROM person where age not in(20,23,30); 5.模糊查詢 like SELECT * FROM person where name LIKE '%月'; -- 以什麼結尾 SELECT * FROM person where name LIKE '月%'; -- 以什麼開頭 SELECT * FROM person where name LIKE '%月%'; -- 包含 SELECT * FROM person where name LIKE '_l%'; -- "_"表示佔位符 6.排序 select * from person ORDER BY salary ASC,age desc; -- 強制中文[排序 select * FROM person ORDER BY CONVERT(name USING GBK) ; 7.聚合函數 select MAX(salary) from person; select MIN(salary) from person; select AVG(salary) from person; select SUM(salary) from person; select COUNT(*) from person; 8.分組查詢 GROUP BY HAVING select count(id),dept_id,avg(salary) from person GROUP BY dept_id HAVING avg(salary) >=5000 ; where 與 having區別: #執行優先級從高到低:where > group by > having #1. Where 發生在分組group by以前,於是Where中能夠有任意字段,可是絕對不能使用聚合函數。 #2. Having發生在分組group by以後,於是Having中可使用分組的字段,沒法直接取到其餘字段,可使用聚合函數 9.分頁查詢 LIMIT SELECT * FROM person LIMIT 2,2 10.正則表達式 SELECT * FROM person where name REGEXP '^a'; SELECT * FROM person where name REGEXP 'n$'; SELECT * FROM person where name REGEXP '.a'; SELECT * FROM person where name REGEXP '[a,e,n]'; SELECT * FROM person where name REGEXP '[^alex]'; SELECT * FROM person where name REGEXP 'a|e'; SELECT * FROM person where name REGEXP '^w.*i$'; 11. SQL 語句關鍵字的執行順序 執行順序: FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY ->limit 4.權限 create user 'alex'@'127.0.0.1' IDENTIFIED by '123'; -- 建立用戶 grant SELECT,UPDATE,DELETE ON db1.* to 'alex'@'127.0.0.1'; GRANT all PRIVILEGES ON db1.* to 'alex'@'127.0.0.1'; -- 全部權限 FLUSH PRIVILEGES; -- 刷新權限 update mysql.user set password=password('123456') where user='root';
http://www.cnblogs.com/wangfengming/articles/8268465.html
幫助正則表達式
For developer information, including the MySQL Reference Manual, visit:sql
關於開發者信息,包括MySQL參考手冊:訪問http://dev.mysql.com/數據庫
經常使用指令安全
詳細內容ide
一.數據庫經常使用操做函數
1.查看數據庫(show databases)編碼
2.建立數據庫(CREATE DATABASE 數據庫名稱;)spa
3.查看建立好的數據庫的定義(SHOW CREATE DATABASE 數據庫名稱;)
4.使用數據庫(USE)
5.刪除數據庫(DROP DATABASE 數據庫名稱)注意:刪除是永久刪除
6.查看默認儲存引擎(SHOW ENGINES(用於查看系統默認支持的引擎));
1.innodb引擎
innodb事務型數據庫首選引擎,支持事務安全表(acid),支持行鎖定外鍵.mysql5.5.5以後做爲默認儲存引擎.
特性:
1.
7.查看庫的引擎(SHOW VARIABLES LIKE 庫名稱;)
二.表的基本操做
1.建立數據表(CREAT TABLE 數據表名稱(字段名, 數據類型 [列級別約束條件][默認值],);)
注意必須包含下列信息:1.建立表的名稱不能使用關鍵字
2.數據表每個列(字段)的名稱和數據類型,多個列要用逗號隔開.
1.1使用主鍵約束
概念:主鍵又稱主碼,是表中一列或多列的組合,主鍵約束(primary key constraint)要求主鍵列的惟一數據,而且不容許爲空.
做用:1.結合外鍵能夠加快查詢速度,2.主鍵和記錄之間關係如同人和身份證的關係是一一對應的.
1.1.1單子段主鍵(字段名 數據類型 PRIMARY KEY[默認值])
(1)定義列的同時定義主鍵
(2)定義完全部列後定義主鍵
1.1.2多字段聯合主鍵(PRIMARY KEY(字段1,字段2,...字段n);)
假設表中間沒有主鍵id,爲了惟一肯定一個員工,能夠把姓名和部門號聯合起來做爲主鍵使用.
1.1.3使用外鍵約束
外鍵用來在兩個表數據間創建連接,它能夠是一列也能夠是多列.一個表能夠有一個或多個外鍵.外鍵對應的是參照完整性,一個外鍵能夠爲空值,若不爲空值,則每一個外鍵必須於另外一個表主鍵某個值.
主表(父表):主鍵所在表
從表(子表):外鍵所在表
CONSTRAONT 外鍵名 FORENIG KEY 字段名 REFERENCES 主表名 主鍵列
1.14使用非空約束(字段名 數據類型 NOT NULL;)
字段值不能爲空
1.15使用惟一性約束(字段名 數據類型 UNIQUE;)
要求惟一,容許爲空,可是隻能有一個空值.
1.16使用默認約束(字段名 數據類型 DEFAULT 默認值)
指定記錄默認賦值
1.17使用屬性值自動增長(字段名 AUTO_INCREMENT;)
注意:1.一個表只能有一個字段使用AUTO_INCREMENT,2.且該字段必須爲主鍵的一部分.3.約束的字段能夠是任何數據類型
2.查看數據庫中的數據表(SHOW TABLES;)
3.查看數據表結構(DESCRIBE 數據表名稱)
或者用(DESC 數據表名稱)
null:爲該列是否能夠儲存的null值
key:表示該列是否已經編制索引
default:表示該列是否有默認值
extra:表示該列附加信息
4.查看錶的詳細語句結構(SHOW CREATE TABLE 表名稱;)
能夠查看建立表的詳細信息,和儲存引擎和字符編碼
5.修改數據表名(ALTER TABLE 舊錶名 RENAME TO 新表名;)
6.修改字段的數據類型(ALTER TABLE 表名 MODIFY 字段名 數據類型;)
7.修改字段名(ALTER TABLE 表名稱 CHANGE 舊字段名 新字段名 新數據類型;)
8.添加表的字段(ALTER TABLE 表名 ADD 新字段名 數據類型 [約束條件] FIRST|AFTER;)
8.1添加無完整約束性條件字段
8.2.添加有完整性約束條件的字段
8.3在表的指定列後添加一個字段
8.4在表的第一列添加字段
9.刪除字段(ALTER TABLE 表名 DROP 字段名稱;)
10.刪除數據表(DROP TABLE 表名稱;)
或者 DROP TABLE IF EXISTS 表名稱 這會判斷表是否存在
11.更改表的儲存引擎(ALTER TABLE 表名 ENGINE =更改後的儲存引擎名;)
12.刪除表的外鍵約束(ALTER TABLE 表名 DROP FOREIGN KEY 外鍵約束名;)
三.數據的基本操做
1.爲表的全部字段插入數據(INSERT INTO 表名稱(列) VALUES(列的數值);)
1.指定全部字段名
2.徹底不指定字段名
插入數據前先查看錶中的數據(SELECT * FROM 表名稱;)
3插入一條記錄
4.插入多條記錄
records:表名插入的記錄條數
duplicates:表名插入時被忽略的記錄,緣由多是記錄包含了重複的主鍵值
warnings:表名有問題的數據值,例如發生數據類型轉換
5.將查詢結果插入到表中
6.更新數據(UPDATE 字段名 SET name1=value1,name2=value2 WHERE 條件;)
7.刪除數據(DELETE FROM 表名稱 WHERE 條件)