天天看點

資料庫MySQL-2-資料類型、SQL語言、DDL、DML、DQL、TCL、DCLMySQL資料類型資料庫中資料的使用

MySQL資料類型

  • MySQL資料庫中支援多種資料類型:數值型、字元型、日期型
    常用的資料類型:
      1. 整型
      	int:整型,存儲整數
      	int(M):M表示預期值,與存儲大小和數值範圍無關
      	id int			10000
      	id int(3) zerofill	10000
      	zerofill 零填充		會在左側補零
      	
      2. 浮點數
      	flaot[(M, D)]: 浮點型,存儲小數
      	salary float(6, 2):表示最多6位,小數占2位,最大存儲數值為:9999.99
      	double: 浮點型,小數
      	
      3. 字元型
      	char(M):固定長度的字元串類型
      	varchar(M):可變長度的字元串類型(推薦)
      	text:大的字元串類型,4G文字
      	blob:位元組類型
      	
      4. 日期
      	date:日期類型,年月日			YYYY-MM-DD
      	time:事件類型,時分秒			HH:mm:ss
      	year:年份					YYYY格式的年份值
      	timestamp:年月日 時分秒		時間戳2037年某一時刻 YYYYMMDDHHmmss
      	datetime:年月日 時分秒		YY-MM-DD hh: mm: ss
      	
      5. 整型
      	tinyint			1		-128~127
      	smallint		2		32767/65535
      	int				4		21億
      	bigint			8		兆
      	mediumint		3		八百多萬/一千六百多萬
    
      注意:選擇合适的資料類型,是資料庫優化的一部分,short it better原則
               

資料庫中資料的使用

如何操作:程式設計語言

  • SQL概述
    • 結構化查詢語言,可以用于查詢和修改關系資料庫的語言
    • SQL語言,是資料庫的核心語言,被ISO采納為資料庫語言的國際标準,幾乎所有的資料庫都支援
  • 組成
    • 資料定義語言(Data Definition Language,DDL):用于管理和定義資料庫,包括資料庫,資料表等
      • create:建立資料庫和表
      • drop:删除表對象
      • alter:修改表結果
    • 資料操作語言(Data Manipulation Language,DML):用于操作資料庫中所包含的資料
      • insert:添加資料
      • delete:删除資料
      • update:修改資料
    • 資料查詢語言(Data Query Language,DQL):用于查詢資料庫對象中所包含的資料
      • select:查詢資料
    • 事務控制語言(Transaction Control Language,TCL):包括送出事務、事務復原
      • commit:送出事物
      • rollback:事務復原
      • savepoint:事物節點
    • 資料控制語言(Data Control Language,DCL):用來管理資料庫中,包括管理權限以及資料更改
      • grant:授權
      • revoke:收回權限

資料定義語言(DDL)

資料庫的操作

建立資料庫
  • 語言格式:
    create database [if not exists] 資料庫名稱 [character set [=] 編碼名稱];
      
      例如
      create database mk;
      create database if not exists mk;		//忽視錯誤,顯示警告
      show warnings							//檢視警告
    
      create database db character set gbk;	//建立指定字元集的資料庫
               
查詢資料庫
  • 語言格式:
    show databases; 						//檢視所有的資料庫
      show create database 資料庫名稱;		// 查詢某一個已經建立的資料庫
               
修改資料庫
  • 語言格式:
    alter database [if not exists] 資料庫名稱 [character set 新的編碼名稱];
      
      例如
      alter database db character set = utf8;
               
删除資料庫
  • 文法格式:
    drop database 資料庫名稱;
      
      例如:
      drop database db;
               

資料表的操作

建立資料表
  • 選擇一個資料庫
    use 資料庫名稱;
      eg:
      	use mk;
      	
      select database();	//檢視目前正在使用的資料庫
               
  • 建立資料表語言:
    create table 表名(
      	字段名 字段類型 限制,
      	字段名 字段類型 限制,
      	....
      );
      
      例如:建立使用者表
      create table user(
      	uid int,
      	username varchar(32),
      	password varchar(32),
      	birthday date,
      	sex enum('男','女')
      );			
               
查詢資料表
  • 文法:
    show tables;				//顯示目前資料庫中所有的表
      show columns from 表名;	//查詢某一張表表結構
      desc 表名;					//查詢某張表表結構
               
修改資料表
  • 修改表名
    alter  table 表名 rename [to | as] 新表名;
      
      eg:
      	alter table user rename us;
      alter table 舊表名 to 新表名 [, 舊表名 to 新表名........];
      
      eg:
      	alter table us to user;
               
  • 添加列
    alter table 表名 add [columns] 列名 列定義 [first | after 列名];
      
      例如:
      alter table user add sal double after paasword;	//在指定的列後面添加新的列
      alter table user add phone varchar(32);			//預設在列的最後面添加新的列
      alter table user add hobby varchar(32) first;		//在列的最前面添加新的列
               
  • 修改列定義
    alter table 表名 modify 列名 列定義 [first | after 列名];
      
      例如
      alter table user madify sex varchar(32) first;
               
  • 修改列名
    alter table 表名 change 列名 新列名 新的列定義 [first | after 列名];
      
      例如
      alter table user change hobby address varchar(20) after sal;
               
  • 删除列
    alter table 表名 drop [columns] 列名;
      
      例如:
      alter table user drop phone;
               
删除資料表
  • 文法
    drop table 表名;
      
      例如:
      drop table user;		
               

資料操作語言(DML)

插入操作

  • 文法格式
    基本的額查詢語句:select * from 表名;
    
      insert [into] 表名 [(列名1,  列名2,.........)] values|value (數值1|表達式, 數值2|表達式,......);
      
      例如:
      insert into teacher (id, note) values ('1', '先争它一個億');
      insert into teacher value (2, 'wangjianlin', 'xian zheng ta yi ge yi');
               

删除操作

  • 文法操作
    delete from 表名 [where 條件];
      
      例如:
      delete from teacher where id=1;	//指定條件删除記錄
      delete from teacher;				//不帶條件删除所有記錄
      
      擴充:
      truncate table 表名;				//清空表中所有資料
    
      面試題:
      delete删除于truncate有什麼差別??
      删除方式:
      	delete:一條一條的删除,不清空auto_increment 記錄數
      	truncate:直接将表中資料進行清空,auto_increment 自增 将被重置,重新開始
               

修改操作

  • 文法:
    update 表名 set 列名1=數值, 列名2=數值,........ where 條件;
      
      例如:
      update teacher set name='xiaosan', note='ming nian zai lai yi ge' where id=1;//修改指定記錄
      update teacher set name='xiaosi';		//不帶條件,修改表中所有資料