day05 mysql基礎

mysql:

    本質是一個文件,按照必定的格式存儲數據,能夠對數據進行操做。php

歷史:java

層次結構模型 數據庫管理系統mysql

IMSsql

網狀結構模型 數據庫管理系統數據庫

IDSoracle

關係型結構 數據庫管理系統函數

後關係型(對象關係型)數據庫管理系統sqlserver

NoSql(往死裏學,高薪)學習

        關係型結構數據庫管理系統編碼


oracle    oracle   不開源收費  跨平臺   非互聯網大型公司  用的比較多

DB2       IBM      不開源收費  跨平臺

Sybase  Sybase   不開源收費  跨平臺

sqlserver   微軟   不開源收費  不跨平臺

mysql    oracle   開源 不一樣版本收費 跨平臺  互聯網公司用的比較多


RDBMS:Relationship DataBaseManagementSystem

DataBase:數據庫

table:

數據庫的安裝與卸載:

卸載

(1):記住安裝路徑

服務的啓動與關閉:

(1)計算機--右鍵管理--服務和應用程序-服務 -右鍵中止/啓動

        (2)net stop mysql

                net start mysql

   登陸mysql:

(1)mysql -uroot -proot

(2)mysql --user=root --password=root

(3)C:\Users\Administrator>mysql -uroot -p

                  Enter password: ****

 (4)用mysql自帶的命令窗口登陸

 (5)mysql --user=root --password=1234 --host=127.0.0.1 --port=3306

   退出:exit

若是密碼忘了:

重置密碼: 

                        1.打開窗口並關掉mysql的服務

2.mysqld --console --skip-grant-tables 

3.不要關閉窗口從新打開新窗口

mysql -uroot (回車)

use mysql;

update user set password=password('新密碼') where user='root';

update user set password=password('root') where user='root';

4.關閉兩個窗口

5.打開窗口 啓動服務  新密碼登錄

SQL介紹:

專門針對數據庫的語言,對數據庫進行CRUD

c:create

r:retrieve

u:update

d:delete

SQL的分類:

DDL:Database Definition Language(數據庫定義語言)

定義(建立)相應的數據庫 或者表

DML:Database Management Language(數據管理語言)

增刪改

DQL:Database Query Language(數據庫查詢語言)

查詢操做

DCL:Database Control Language(數據庫控制語言)

權限管理

數據庫的定義語言(語句結束加分號):

create(建立,定義)  alter(修改) drop(刪除)

建立數據庫:

(2)create database da2 character set utf8;

(3)create database 庫的名字  character set utf8 collate utf8_general_ci ;

庫的編碼:

查看庫的編碼:

查看能夠設置的編碼格式:show character set;

                            (3) create database 庫的名字  character set utf8 collate utf8_general_ci ;

        修改數據庫的編碼: alter database 庫名 character set 編碼

建表:

建立表:最後一行不能夠加逗號,其餘必須加

查看當前所在的庫:

                            select database();

修改標的名稱:alter table 表名  rename to 新表名;

查看當前表的結構:desc 表名;

添加字段:alter table 表名 add 字段名 類型

修改字段:alter  table  表名  change 舊字段的名字  新字段的名字  類型; 

修改字段的類型:alter table 表名  modify  字段的名字    新類型 ;

刪除字段: alter table  表名  drop  字段名;

數據類型:

整型:         

                 int    至關於java中的int  

                 tinyint   至關於java中 byte

                 smallint   至關於java中的short

                 bigint     至關於java中的long

boolean:0表示false ,非零表示true  

浮點:

                        浮點(4,2); 長度是四  小數點後佔兩位。

        float  double  decimal (金錢)  

日期類型:        

                        date 表示年月日

time  時分秒

datetime  年月日時分秒 

timestamp  時間戳  年月日時分秒  

datetime與tiemstamp的區別:

                                                    (1) datetime 範圍是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。

                                      timestamp範圍:範圍是'1970-01-01 00:00:00'到2037年 

      (2) datetime 默認爲null 

                                                                timestamp 默認爲當前時間

字符串:

必須指定長度

   char與varchar的區別:

char:長度固定不變(效率高)

varchar:長度能夠改變

text:大文本        

                                  TINYTEXT  大長度爲255(2(8)–1)字符的TEXT列。

 TEXT[(M)] 最大長度爲65,535(2(16)–1)字符的TEXT列。

 MEDIUMTEXT 最大長度爲16,777,215(2(24)–1)字符的TEXT列。

                                  LONGTEXT  4,294,967,295或4GB(2(32)–1)字符的TEXT列

二進制BLOB:                

                                   TINYBLOB 最大長度爲255(2(8)–1)字節的BLOB列。

  BLOB[(M)]最大長度爲65,535(2(16)–1)字節的BLOB列

  MEDIUMBLOB最大長度爲16,777,215(2(24)–1)字節的BLOB列。

   LONGBLOB最大長度爲4,294,967,295或4GB(2(32)–1)字節的BLOB列

數據庫管理語言(delete update insert):

      insert:

                (1)insert  into  表名  values  (value1,。。。。。valuen);

                (2)  insert   into  表名  (字段名,。。。字段n) values (value1,。。。。。valuen);

                 若是插入數據直插入其中幾列的時候,要寫字段名,但只用寫要插入的字段名便可,後面的value值與前面的字段名對應便可。

        update:

                 update  表名  set  字段名 = 值 (更新全部的數據)

                 update  表名  set  username = 'sss' where  id=xx; (更新知足條件的)

        delete: 

                delete  from   表名  ;  (刪除全部的數據)

                delete  from   表名  where  條件 ; (刪除知足條件的數據)

truncate 與delete的區別:

                    (1)delete命令刪除的數據將存儲在系統回滾段中

                        truncate命令刪除的數據是不能夠恢復的

                (2)truncate以後的自增字段從頭開始計數

                        delete的仍保留原來的最大數值

中文問題:

(1)用sql修改編碼

           (查看相應的編碼格式) show variables like '%char%';

        set character_set_client = gbk;

                set character_set_results = gbk;

(2)修改配置文件      

                 [client]

                port=3306

                 [mysql]

                default-character-set=gbk

數據庫查詢語言:

一、as:取別名 (as能夠省略): select course as english from tal;

二、去重複:distinct     : select distinct course from stu; 

表達式的學習:

not , or  ,in , between  and ,

       select * from stu where score in (70,81,59);

        select *  from stu where not course='php';

like 與 通配符的使用:

           _:匹配一個字符。

           %:多個字符進行匹配

        select * from stu where name like '%i%';

        select *  from stu where name like  '_i__';

null不能用等號操做。要用is來操做。

         select *  from stu where score is null;

         select * from stu where score is not null;

ifnull(字段,0) (若是是字段是null的話 就用0來處理

          select id ,name ,course,ifnull(score,0) from stu;

彙集函數(彙集 函數不對null進行操做):

            對一列數據進行操做。  

                count()//統計

        sum()//求和

        max() //最大

        min()//最小

        avg()//平均

用ifnull處理空值

select min(ifnull(score,0)) from stu;

round(字段,小數點的位數);  

                    (別名)

 select  round( avg(ifnull(score,0)),2) 平均成績 from stu;

                平均成績是別名

having與where的區別:

                通常 where用於具體的某條件 ,having後面跟 函數。

                 select course,sum(score) from stu group by course having sum(score)>100; 

select *  from stu limit 開始的索引值,查詢出幾條數據; (*******)

mysql的約束():

            主鍵(惟一非空):primary key

            惟一(能夠爲空):unique

            非空:not null

            默認:default

  建立約束的三種方法:

方法一:

create table p1(
	id  int primary key,
	username varchar(32)
		);

方法二:

create table p2(
	 id  int,
	 username varchar(32),
	 primary key(id)
	);

方法三:

create table p3(
	id  int,
	username varchar(32)
		);
				
alter table p3 add primary key (id);


default 默認約束 (默認約束)  添加默認值。

            create  table  d( 

  id int ,

  username  varchar(32)  default '雞蛋' 

);


關鍵字的書寫順序: select,from,where,group by,having,order by;    
相關文章
相關標籤/搜索