JAVA--基礎開發MYSQL

Day01【MySql基礎&約束】

第一章 數據庫介紹

1.1 數據庫概述

  1. 什麼是數據庫??
  • 數據庫就是存儲數據的倉庫,其本質就是一個文件系統,數據按照特定的格式將數據存儲起來。用戶能夠對數據庫中的數據進行增長、刪除、修改、查詢等操做.
  1. 什麼是數據庫管理系統??
  • 數據庫管理系統,簡稱DBMS,是指操做數據庫的大型的軟件,用於創建,使用,和維護數據庫。對數據庫進行統一管理和控制,以保證數據庫的完整性和安全性,用戶經過數據庫管理系統訪問數據庫表中的數據。
  1. 數據庫與數據庫管理系統的關係:

 

 

 
 

表一java

 

 

表三mysql

表二面試

數據庫sql

數據庫數據庫

數據庫安全

數據庫管理系統DBMSspa

說明: C:\Program Files\Microsoft Office\MEDIA\CAGCAT10\j0292020.wmf

 

 

 

1.2 數據庫表

  1. 數據庫表以表爲單位的存儲數據,表相似咱們的java類,每一個字段都有所對應的數據類型。

用戶ID3d

用戶名對象

    性別ip

   年齡

1001

    李文傑

     男

    23

   1002

    桑鳳嬌

     女

    22

   1003

    張天旭

     女

    18

類---------》就是表。

類中的屬性---------》表中的字段名。

對象---------》記錄

1.3 常見的關係型數據庫

  1. 常見的數據庫管理系統:
  1. MYSQL:開源免費的數據庫,是一個小型的數據庫,已經被Oracle公司收購。
  2. Oracle:收費的大型數據庫,Oracle收購的SUM公司,也收購了MYSQL。            
  3. DB2: IBM公司的產品,是一個收費的數據庫,經常使用在銀行系統。
  4. SQLServer:Microsoft公司收費的小型的數據庫,C# ,  .Net等語言常使用。
  5. SysBase: 已經淡出了歷史舞臺。
  6. SQLite:嵌入式的小型數據庫,引用在手機端。
  7. 經常使用的數據庫:MYSQL  Oracle.
  8. 這裏使用MySQL數據庫,MySQL中能夠有多個數據庫,數據庫是真正存儲數據的地方。

第二章  MYSQL數據庫

2.1  MYSQL數據庫

  • 官網: :https://www.mysql.com
  • 下載地址:https://dev.mysql.com/downloads/mysql/
  • 安裝: 請參考MYSQL安裝圖解.doc
  • 安裝後MYSQL會以Windows服務的方式爲咱們提供數據的存儲功能,開啓和關閉服務的操做,右擊—》【計算機】——》管理—》服務—》能夠找到mysql開啓服務或者中止。

 

2.也能夠在DOS命令窗口中: 經過命令完成MYSQL服務的啓動和中止(必須以管理員身份運行cmd命令窗口)。

  • 啓動mysql的時候,使用net   start  mysql
  • 關閉mysql的時候,使用net   stop  mysql

2.2 登陸MYSQL數據庫

Mysql 數據庫是一個須要帳戶和密碼的數據庫,登陸後使用,它提供一個默認的帳號,使用安裝時設置的密碼便可登陸。

  • 切記登陸以前要配置mysql環境變量,找到mysql的bin目錄,而後複製到Path後面就能夠。

格式1:  :cmd>  mysql –u用戶名 –p密碼

例如:     mysql –uroot –proot

格式2:

格式2:cmd> mysql --host=ip地址 --user=用戶名  --password=密碼

例如: mysql --host=127.0.0.1  --user=root  --password=root

第三章  SQL語句

3.1 SQL語句的概述

  1. 數據庫是不認識java語言的,可是咱們要與數據庫交互,這時就要使用到數據庫認識的語言的SQL 語句,它是數據庫的代碼,
  2. 結構化查詢語句:簡稱SQL,是關係型數據庫管理系統都要遵循的規範,不一樣的數據庫生產廠商都支持SQL語句,可是也都有特定的內容。
  3. SQL規範:普通話。MYSQL(特有的方言),Oracle(特有的方言);

3.2 SQL 語句的分類

  1. SQL 分類:
  1. 數據定義語言:DDL,用來定義數據庫的對象:數據庫、表、列。
  • 關鍵字:create 、alter、drop
  1. 數據庫操做語言:DML,用來對數據庫表中的記錄進行更新.
  • 關鍵字: insert 、update、delete。
  1. 數據庫查詢語言: DQL,用來查詢數據庫表中的記錄。
  • 關鍵字: select 、  from、  where
  1. 數據庫控制語言:DCL ,用來定義數據庫的訪問權限和安全級別,以及建立用戶。

3.3 SQL通用的語法

  1. SQL語句能夠單行或多行書寫,以分號結尾。
  2. 可使用空格和縮進來加強語句的可讀性。
  3. MYSQL數據庫的SQL語句不區分大寫小寫,可是關鍵字建議大寫。
  4. 一樣經過/**/方式完成註釋。

MYSQL 中經常使用的數據類型以下:

類型的名稱

           說明

int(integer)

整數類型

double

小數類型

Decimal(m,d

指定整數位與小數位長度的小數類型

date

日期類型 格式爲yyyy-MM-dd 包含年月日,不包含時分秒

datetime

日期時間類型,格式爲yyyy-MM-dd HH:MM:SS包含年月日時分秒

timestamp

日期類型,時間戳(包含時區和毫秒)

varchar(M)

文本類型,M爲0-65535之間的整數,表示內容的長度

3.4 DDL 數據庫定義

  1. 數據庫定義:database
  1. 建立數據庫

語法1: create   database   數據庫名稱

語法2:  create   database   數據庫名稱  character   set   字符集

例如:

  1. 查看數據庫

語法: show  databases;

示例:

3 查看某個數據庫的定義信息

語法:  show  create  database  數據庫名;

3.刪除數據庫

語法: drop  database  數據庫名;

  1. 使用數據庫

查看正在使用的數據庫: secect   database();

4 切換數據庫(明確數據庫)

語法:  user  數據庫名稱;

    1. DDL之表操做
  1. 建立表: table

語法: create  table  表名(

 字段名  類型(長度)[約束],

字段名  類型(長度)[約束],

…….

);

示例:

  1. 查看錶

語法: show  tables;

  1. 查看錶結構:

語法:desc  表名;

  1. 刪除表

語法: drop  table  表名;

  1. 修改表的結構

語法:   添加列:alter  table  表名  add  列名(類型)[約束];

示例:

  1. 修改表中列類型的長度及約束:

語法:  alter   table 表名 modify  列名  類型(長度)[約束];

  1. 修改列名:

語法: alter  table  表名  change 舊列名  新列名  類型(長度)[約束];

  1. 刪除列:

alter  table  表名  drop 列名;

  1. 修改表名:

語法: rename  table  表名 to  新表名;

    1. DML數據操做語言
  1. 插入表記錄:

語法:--向表中插入某些字段,這是標準的SQL的寫法

向表中插入全部的字段,插入的字段爲建立表時的字段。

操做1:  insert  into  表名(字段1,字段2,字段3…….)values(值1,值2,值3…);

操做2:  insert  into  表名 values(值1,值2,值3);

【注意】

  • 值與字段必須對應,個數相同,類型相同。
  • 值的數據大小必須在字段的長度範圍以內。
  • 除了數值類型外,其餘的字段類型必需要用引號引發來。(單引號)。
  • 若是要插入控制,則不寫字段。能夠插入null.

查詢表中的數據:

  1. 更新表記錄:update
  2. 用來修改指定條件的數據,將知足條件的記錄指定列修改成指定值
  • 更新全部記錄的指定字段;:

語法:update 表名  set   字段名=新值,字段名=新值……..;

  • 更新符合條件的記錄;

語法:  update  表名   set   字段名=新值,字段名=新值…….where  更新條件;

【注意】

  • 列名的類型與修改的值要一致。
  • 修改值的時候不能超過最大的長度。
  • 除了數值類型外,其餘字段類型的值必須使用引號引發來。

第一種:修改表的記錄:

第二種:修改表的記錄:  根據where條件修改

  1. 刪除表記錄:

語法: delete   from   meth  where  id=400;

 

【注意】:

1 若是不添加where條件,則會把表中的記錄都刪除掉。

2. 若是添加where條件,則就會根據條件進行刪除

 第四章   SQL約束

4.1 主鍵約束

  • PRIMARY  KEY [主鍵約束]:約束惟一標識數據庫表中的每一條數據。
  • 主鍵必須包含惟一的值。
  • 主鍵列不能包含null的值。
  • 每一個表都應該有一個主鍵,而且每一個表只能有一個主鍵。

4.2 添加主鍵約束

  • 方式一:

建立表時,在字段描述處,聲明指定字段爲主鍵。

 

use ab_lwj;

#添加主鍵

create  table person(

id  int  primary  key,  #主鍵惟一。

  lastName varchar(50),

  firstName varchar(50),

  address varchar(255)

);

 

 

  • 方式二:
  • 建立表時,在constraint 約束區域,聲明指定的字段爲主鍵。
  1. 格式:

[constraint  約束名稱]  primary  key(字段名);

關鍵字constraint 能夠省略,若是須要爲主鍵命名,constraint則不能省略,主鍵名稱通常沒有用。

  1. 字段名稱 須要使用小括號括起來,若是有多個字段,須要使用逗號分隔,聲明兩個以上字段爲主鍵,咱們稱爲聯合主鍵。

CREATE TABLE persons(

  p_id int,

  lastName varchar(50),

  firstName varchar(50),

  address varchar(255),

  CONSTRAINT  pk_personId  PRIMARY KEY(lastName,firstName)  #聯合主鍵

)

 

  • 方式三:建立表以後,經過修改表結構,聲明指定字段爲主鍵。

格式:  ALTER  TABLE表名 ADD  [constraint  約束名稱]   PRIMARY  KEY(字段名);

示例:

# 方式三,添加主鍵約束

#建立表以後,經過修改表結構,聲明指定字段爲主鍵

CREATE TABLE students(

  p_id int,

  lastName varchar(50),

  firstName varchar(50),

  address varchar(255)

 );

 ALTER  TABLE  students  ADD  Primary  key(lastName,firstName);

  • 刪除主鍵約束
  • 若是撤銷primary  key主鍵約束,則使用下面的SQL

語法:  ALTER  TABLE  表名  drop  PRIMARY  KEY;

4.3自動增加列

咱們一般但願在每次插入新記錄的時候,數據庫自動生成字段的值,在MYSQL中,咱們可使用AUTO_INCREMENT自動增加的關鍵字,自動增加列類型必須是整數類型,自動增加列通常都是爲主鍵。

#自動增加列auto_increment

CREATE TABLE woment(

  p_id int primary key,# 主鍵惟一。

  lastName varchar(50),

  firstName varchar(50),

  address varchar(255)

 );

 Alter  table  woment Auto_increment=100;  # 默認從1開始,能夠自定義設置

 

面試題:******記住******

問: 針對 Auto_increment,刪除表中全部的記錄使用delete  from  表名或者使用 truncate table  表名,則他們兩者有啥 區別???

答:

區別1:delete  是一條一條的刪除,不清空auto_increment記錄數。

區別2:truncate 直接將表刪除,從新建立表,auto_increment重置爲0,重新開始。

4.5 非空約束

  • NOT  NULL 約束強制列不接受null的值。
  • NOT  NULL 約束強制字段始終包含值,這就意味這,若是不向字段添加值,就沒法插入新記錄,或者更新新記錄。

# 非空約束 NOT  NULL

CREATE TABLE man(

  p_id int primary key auto_increment,# 主鍵惟一。自動增加列。

  lastName varchar(50)  NOT NULL,  #非空約束

  firstName varchar(50) NOT  NULL,

  address varchar(255) NOT NULL

 );

4.6 惟一約束

UNIque約束惟一標識數據庫表中的每條記錄,UNIQUE和Primary key 約束均爲列或者列集合提供了惟一性的保證,primary  key擁有自動定義的Unique約束,請注意,每一個表能夠有多個UNIQUE約束,可是每一個表中只能有一個primary key主鍵約束。

4.7 添加惟一約束

  • 方式1:建立表時,在字段描述處,聲明惟一。

#添加惟一約束

CREATE TABLE man(

  p_id int primary key auto_increment,# 主鍵惟一。自動增加列。

  lastName varchar(50)  NOT NULL,  #非空約束

  firstName varchar(50) NOT  NULL  nique,

  address varchar(255) NOT NULL  nique

 );

  • 方式2: 在建立表時,在約束區添加

#添加惟一約束 建立表時,在約束區添加

CREATE TABLE man(

  p_id int primary key auto_increment,# 主鍵惟一。自動增加列。

  lastName varchar(50)  NOT NULL,  #非空約束

  firstName varchar(50) NOT  NULL,

  address varchar(255) NOT NULL,

#約束區添加惟一約束

  CONSTRAINT  lwj_unique  unique(lastName,firstName)

 );

  • 建立表後,修改表結構

# 添加惟一約束 建立表後,修改表結構。

CREATE TABLE man(

  p_id int primary key auto_increment,# 主鍵惟一。自動增加列。

  lastName varchar(50)  NOT NULL,  #非空約束

  firstName varchar(50) NOT  NULL,

  address varchar(255) NOT NULL

 );

alter  table man ADD  constraint  fame unique(lastName,firstName);

4.8刪除約束

語法: Alter  Table  表名 drop  index 約束名;

相關文章
相關標籤/搜索