天天看點

MySQL資料庫基礎文法總結精華總結1. 資料庫的操作2. 常用資料類型3. 表的操作4. 練習

目錄

精華總結

1. 資料庫的操作

1.1 顯示目前的資料庫

1.2 建立資料庫

2. 常用資料類型

2.1 數值類型

2.2 字元串類型

2.3 日期類型

3. 表的操作

3.1 檢視表

3.2 檢視表結構

3.3 建立表

3.4 删除表

4. 練習

精華總結

  • 操作資料庫:

show databases ;        --顯示

create database xxx ;        --建立

use xxx ;                --使用

drop database xxx ;        --删除

  • 常用資料類型:

INT:整型

DECIMAL(M, D):浮點數類型

VARCHAR(SIZE):字元串類型

TIMESTAMP:日期類型

  • 操作表:

show xxx ;        --檢視

create table 表名 (

        字段名1  類型1 ,

        字段名2  類型2 ,

) ;        --建立

drop table 表名 ;        --删除

1. 資料庫的操作

SQL不區分大小寫

1.1 顯示目前的資料庫

show databases ;

1.2 建立資料庫

create database 資料庫名 ;

文法:(大寫表示關鍵字,[]是可選項,CHARACTER SET: 指定資料庫采用的字元集,COLLATE: 指定資料庫字元集的校驗(比較)規則 )

CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specification] ...]

create_specification:

      [DEFAULT] CHARACTER SET charset_name

      [DEFAULT] COLLATE collation_name

1.3 使用資料庫

use 資料庫名 ;

1.4 删除資料庫

删除操作非常危險,在實際工作中不應該使用drop指令來删除任何資料庫!

drop database 資料庫名 ;

DROP DATABASE [IF EXISTS] db_name;

2. 常用資料類型

  • 整數:int
  • 小數:double,decimal
  • 字元串:varchar
  • 時間:datetime

2.1 數值類型

分為整型和浮點型:

資料類型 大小 說明 對應java類型
BIT[(M)] M指定位數,預設為1 二進制數,M範圍從1到64,存儲數值範圍從0到2^M-1 常用Boolean對應BIT,此時預設是1位,即隻能存0和1
TINYINT 1位元組 Byte
SMALLINT 2位元組 Short
INT 4位元組 Integer
BIGINT 8位元組 Long
FLOAT(M, D) 4位元組 單精度,M指定長度,D指定小數位數。會發生精度丢失 Float
DOUBLE(M, D) 8位元組 Double
DECIMAL(M, D) M / D最大值+2 雙精度,M指定長度,D表示小數點位數。精确數值 BigDecimal
NUMERIC(M, D) M / D最大值+2 和DECIMAL一樣 BigDecimal

decimal類型:能夠更精确的表示小數,但付出很多的時間和空間的代價。

擴充資料:

數值類型可以指定為無符号(unsigned),表示不取負數。

1位元組(bytes)= 8bit。

對于整型類型的範圍:

  1. 有符号範圍:-2^(類型位元組數*8-1)到2^(類型位元組數*8-1)-1,如int是4位元組,就是-2^31到2^31-1
  2. 無符号範圍:0到2^(類型位元組數*8)-1,如int就是2^32-1
盡量不使用unsigned,對于int類型可能存放不下的資料,int unsigned同樣可能存放不下,與其如此,還不如設計時,将int類型提升為bigint類型。

2.2 字元串類型

資料類型 大小 說明 對應java類型
VARCHAR(SIZE) 0-65,535位元組 可變長度字元串 String
TEXT 0-65,535位元組 長文本資料 String
MEDIUMTEXT 0-16 777 215位元組 中等長度文本資料 String
BLOB 0-65,535位元組 二進制形式的長文本資料 byte[]

varchar是最常用的類型,(SIZE)表示這個字元串的最大長度,機關是字元。

2.3 日期類型

資料類型 大小 說明 對應java類型
DATETIME 8位元組 範圍從1000到9999年,不會進行時區的 檢索及轉換。 java.util.Date、 java.sql.Timestamp
TIMESTAMP 4位元組 範圍從1970到2038年,自動檢索目前時 區并進行轉換。 java.util.Date、 java.sql.Timestamp

3. 表的操作

需要操作資料庫中的表時,需要先使用該資料庫:

use db_test ;

3.1 檢視表

show tables ;

3.2 檢視表結構

檢視這個表的列有哪些,以及類型。即:describe(描述)

desc 表名;
MySQL資料庫基礎文法總結精華總結1. 資料庫的操作2. 常用資料類型3. 表的操作4. 練習

3.3 建立表

文法:

列名在前,類型在後

CREATE TABLE table_name (

        field1 datatype,

        field2 datatype,

        field3 datatype

);

可以使用comment增加字段說明。示例:

create table stu_test(

    id int,

    name varchar(20) comment '姓名',

    password varchar(50) comment '密碼',

    age int,

    sex varchar(1),

    birthday timestamp,

    amout decimal(13, 2),

    resume text

);

3.4 删除表

drop table 表名 ;

drop table if exists stu_test;

4. 練習

有一個商店的資料,記錄客戶及購物情況,有以下三個表組成:

  • 商品goods(商品編号goods_id,商品名goods_name, 單價unitprice, 商品類别category, 供應商provider)
  • 客戶customer(客戶号customer_id,姓名name,住址address,郵箱email,性别sex,身份證 card_id)
  • 購買purchase(購買訂單号order_id,客戶号customer_id,商品号goods_id,購買數量nums)

SQL:

--建立資料庫
create database if not exists java101
default character set utf8;

--選擇資料庫
use java101;

--建立資料庫表
--商品
create table if not exists goods(
	good_id int,
	goods_name varchar(32),
	unitprice int,
	category varchar(12),
	provider varchar(64)
);

--客戶
create table if not exists customer(
	customer_id int,
	name varchar(20),
	address varchar(50),
	email varchar(20),
	sex varchar(5),
	card_id varchar(20)
);

--購買
create table if not exists purchase(
	order_id int,
	customer_id int,
	goods_id int,
	nums int
);