數據庫(全部人都坐下!這是基本操做!)

 

 

總覽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 條件)

 

相關文章
相關標籤/搜索